ftp服务的搭建

来源:互联网 发布:姜海seo 编辑:程序博客网 时间:2024/04/30 20:08

1.实验环境准备
redhat7.2系统平台
selinux关闭
配置好yum源

Linux 下我们使用vsftp来作为我们的ftp server.

一,部署ftp服务器;
[root@ftp ~]# yum install -y vsftpd
[root@ftp ~]# systemctl start vsftpd
[root@ftp ~]# systemctl enable vsftpd
[root@ftp ~]# firewall-cmd –permanent –add-service=ftp
[root@ftp ~]# firewall-cmd –reload
接下来就可以部署ftp服务器了,请看ftp服务器的基本信息:
软件安装包:vsftpd
默认发布目录L:/var/ftp
协议接口:21
服务的配置文件:/etc/vsftpd/vsftod.conf
二,ftp服务器的管理:
1,匿名用户管理:
anonymous_enable=YES}NO
控制匿名用户是否可以登陆,YES为允许,NO为不允许,默认值为YES。
write_enable=YES|NO
匿名用户具有可写权限

anon_upload_enable=YES
匿名用户可以上传文件,默认是注释的。
上两个需要同时为YES才可以实现匿名用户上传。

anon_root=/ftp
设置匿名用户的登陆ftp服务器的家目录

no_anon_password=YES|NO
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。

anon_umask=022
设置匿名用户上传文件的权限为644

anon_mkdir_write_enable=YES
设置匿名用户创建目录。只有在write_enable设置为 YES时有效。且匿名用户对上层目录有写入的权限。且anon_world_readable_only=YES时才可以实现匿名用户新建目录。

anon_world_readable_only=YES
设置匿名用户可以有根多的文件操作i权限,如删除,新建目录等

chown_uploads=YES
chown_username=student
设置匿名用户上传和上传的身份

anon_max_rate=204800
设置上传的速率,默认时无限制。

max_clients=2
设置链接数为两个,默认时不限制
2。本地用户管理:
local_enable=YES}NO
控制本地用户登陆权限,YES为允许,NO为不允许,默认为YES。

loacl_root=/ftp
设置本地用户默认登陆ftp服务器的目录,此项设置后,即是使用指定用户登陆ftp服务器,依然时这里指定的目录。

chroot_local_user=YES
设置本地用户登陆后是否可以切换到家目录以外的其他目录,YES是不可以,NO是可以,默认可以切换到其他目录。

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
本地用户白名单的建立

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
本地用户黑名单的建立

userlist_enable=YES
本地用户临时黑名单

userlist_enable=YES
userlist_deny=NO
本地临时白名单
* 验证上两个需要在/etc/vsftpd/user_list文件里添加索要设置权限的用户名。

vim /etc/vsftpd/ftpusers
本地用户永久黑名单设置,需要在文件里添加想要设置的用户名,在此文件里添加的用户名即使在/etc/vsftpd/user_list/里以白名单的身份出现,依然不可登陆,/etc/vsftpd/ftpusers拥有最高的限制黑名单的权限。

3,ftp虚拟用户的设定:
为什么要创建虚拟用户?
因为服务器端不会让每个人成为本地用户,即不可能每个人都在服务器端创建身份帐号,之所以能登陆上,是因为通过了虚拟用户帐号的验证,虚拟用户并不是在服务器端正真的存在,仅仅是为了用户登陆验证时使用。

创建虚拟帐号身份:
vim vim /etc/vsftpd/loginuser ##记录虚拟帐号的文件,文件名称任意
user1
123
user2
123
user3
123

[root@ftp vsftpd]# db_load -T -t hash -f /etc/vsftpd/loginuser loginuser.db
将记录虚拟帐号的文件转化为’.db’文件,-T表示转化,-t表示指定加密方式
[root@ftp vsftpd]# vim /etc/pam.d/policy #编辑验证用户登陆的文件,文件名字随意取
account required pam_userdb.so db=/etc/vsftpd/loginuser
auth required pam_userdb.so db=/etc/vsftpd/loginuser

vim /etc/vsftpd/vsftpd.conf
pam_service_name=policy
guest_enable=YES
第一项意思是指定验证访问的文件
第二项意思是允许虚拟用户登陆
guest_username=lee
chmod u-w /home/lee
第一项意思是登陆ftp的虚拟主机可以以本地用户‘lee‘的身份出现,默认是ftp。修改lee家目录的权限,防止出现500的错误。

4,设置ftp服务中的虚拟用户可以登陆到指定的目录中去:
[root@ftp vsftpd]# mkdir /user{1..3}
[root@ftp vsftpd]# touch /user1/file1
[root@ftp vsftpd]# touch /user2/file2
[root@ftp vsftpd]# touch /user3/file3

[root@ftp vsftpd]# vim /etc/vsftpd/vsftpd.conf
修改和添加以下条目:
pam_service_name=policy
126 guest_enable=YES
127 local_root=/USER128usersubtoken=USER
[root@ftp vsftpd]# systemctl restart vsftpd.service
测试:
[root@ftp vsftpd]# lftp 172.25.254.91 -u user1
Password:
lftp user1@172.25.254.91:~> ls
-rw-r–r– 1 0 0 0 Nov 15 12:55 file1
[root@ftp vsftpd]# lftp 172.25.254.91 -u user2
Password:
lftp user2@172.25.254.91:~> ls
-rw-r–r– 1 0 0 0 Nov 15 12:55 file2
lftp user3@172.25.254.91:~> ls
-rw-r–r– 1 0 0 0 Nov 15 12:55 file3
可以看见对应用户访问指定的目录

5,如何设置指定用户拥有特定权限:
如user2可以上传,user3不可以上传
mkdir /user{1..3}/pub
chgrp ftp /user{1..3}/pub
chmod 775 /user{1..3}/pub
vim /etc/vsftpd/vsftpd.conf
anno_upload_enable=NO #开启后所有用户可以上传
现在指定用户权限,即使用户通过访问不同的配置文件实现
添加:user_config_dir=/etc/vsftpd/confdir

mkdir /etc/vsftpd/confdir
vim /etc/vsftpd/confdir/user2
anon_upload_enable=YES
systemctl restart vsftpd
设置完成后user2有上传权限,其他用户没有
当然也可以设置特定用户不可上传,其他用户可以上传。或者限制其他的权利。

6,ftp服务器搭建时遇到的错误码类型及解析
553 本地文件系统权限过小
500 文件系统权限过大
530 用户认证失败
550 表示服务本身拒绝

原创粉丝点击