一、vsftpd安装

1、查看是否安装了ftp相关的安装包
[root@test~]# rpm -qa | grep vsftpd
查看系统中是否安装了vsftpd服务,如果没有安装,先安装下服务
[root@test~]# yum -y install vsftpd //这里如果没有配置 yum源,也可以直接用rpm的方式安装
查看一下是否安装成功
[root@test~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-24.e16.x86_64 //看到这个文件,说明安装成功了
2、启动服务并设置开机自动启动
[root@test~]# service vsftpd start //启动服务
[root@test~]# service vsftpd stop //关闭服务
[root@test~]# service vsftpd restart // 重启服务
[root@test~]#chkconfig --level 3 5 vstpd on //设置自启
[root@test~]#chkconfig --list vsftpd //查看是否设置成功
vsftpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
3、配置vsftpd文件
vsftpd 主要有三个配置文件,都位于/etc/vsftpd目录下:
ftpusers //是用户控制文件,在这个文件里面的用户,默认是不可以使用vsftpd服务的
user_list //默认功能和第一个一样,但是通过配置,我们可以让只有在第二个文件里的用户才能使用vsftpd服务,这样新加入的用户就不会自动拥有vsftp的使用权,这样可以让vsftpd服务器更加安全
vsftpd.conf //ftp服务器的主配置文件

二、匿名访问(可上传可下载)

vsftpd 安装好,启动,默认匿名用户就是可以访问的 ,只是不能上传(如果不行,可以试着关闭防火墙[root@test~]#service iptables stop)接下主要介绍的匿名用户上传权限

匿名用户上传需要注意三个地方:

A、上传目录的写入权限

B、服务器的配置支持上传

C、selinux支持上传

1、设置目录写入权限

[root@test~]# cd /var/ftp //切换到ftp目录下

[root@test ftp]# mkdir upftp //新建一个upftp目录

[root@test ftp]#chown ftp upftp //更改目录所有者(默认是root,更改成ftp,目录默认权限是755)

2、配置vftpd的配置文件

[root@test~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak //备份配置文件(个人习惯)

[root@test~]# vi /etc/vsftpd/vsftpd.conf

#anon_upload_enable=YES //匿名上传

#anon_mkdir_write_enable=YES //匿名写入

取消上面两行的注释(也就是去掉这两行前面的#号)

保存退出

3、修改selinux

[root@test~]#getsebool -a | grep ftp //显示ftp所有的boo值,通过管道

centos vsftp21端口如何封 vsftpd端口配置_centos vsftp21端口如何封


[root@test~]#setsebool -P allow_ftpd_anon_write on //打开匿名写入管道

centos vsftp21端口如何封 vsftpd端口配置_重启_02


修改上下文

[root@test~]#ls -Zd /var/ftp/upftp

[root@test~]#chcon -t public_content_rw_t /var/ftp/upftp

centos vsftp21端口如何封 vsftpd端口配置_重启_03

准备就绪,只待重启服务器

[root@test~]#reboot

重启后,匿名应该就可以直接访问上传下载了

三、基本用户访问

基本用户的访问控制,需要注意两个方面:

A、配置文件的修改

B、selinux的修改

1、修改vsftpd的配置文件

[root@test~]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO //禁止匿名访问

anon_upload_enable=YES // 注释这行(也就是在这行前面加#号)

anon_mkdir_write_enable=YES // 注释这行(也就是在这行前面加#号)

保存退出

2、修改selinux

[root@test~]#getsebool -a | grep ftp //显示ftp所有的boo值,通过管道

[root@test~]#setsebool -P allow_ftpd_anon_write off //关闭匿名上传通道(之前打开的)

[root@test~]#setsebool -P ftp_home_dir on

centos vsftp21端口如何封 vsftpd端口配置_centos vsftp21端口如何封_04


3、创建虚拟用户

[root@test~]#useradd user1 //添加用户user1

[root@test~]#usermod -s /sbin/nologin user1 //禁止用户user1登录系统

[root@test~]#passwd user1 //设置密码

重启vsftpd服务,然后测试

PS1:上面这样配置,风险很大,危险性较高;连接上的FTP用户,不仅可以访问自己的家目录,还可以自由切换到其他目录下

centos vsftp21端口如何封 vsftpd端口配置_上传_05


因些,下面需要使用chroot功能

[root@test~]# vi /etc/vsftpd/vsftpd.conf

#chroot_list_enable=YES

#chroot_list_file=/etc/vsftpd/chroot_list

取消上面两行的注释(也就是去掉这两行前面的#号)

保存退出

chroot list默认是不存在的,需要我们手动建立,把user1这个用户加到这个文件中,重启vsftpd服务

再测试,可以发现用户锁定在了自己的家目录下,不能切换

还有一点,提醒大家,匿名用户登陆,默认是choot了的

PS2:系统添加一个用户也默认有ftp的登陆权限,也存在一定的风险,所以我们要制定更严格的ftp用户策略,我们将通过下面的配置,使只有在user_list文件中的用户才能登录系统

[root@test~]# vi /etc/vsftpd/vsftpd.conf

userlist_enable=YES //这行系统默认存在

userlist_deny=NO //这行需要自己手动添加

userlist_file=/etc/vsftpd/user_list //这行需要自己手动添加(可以在文未添加)

保存,退出,重启vsftpd服务

再测试,会发现此时user1用户已经无法再登录了

然后把user1用户加入到user_list文件中,重启服务,这样user1用户就可以访问了

注意:优先权 ftpusers(拒绝)>user_list(系统用户,虚拟用户)>chroot_list(虚拟用户)

如果ftp用户存在ftpusers文件中,无论是否加入其它两个文件,都是无法访问ftp服务的;

如果ftp用户只存在chroot_list中,也是无法访问ftp服务的;

虚拟用户即要加入chroot_list(锁定在自家目录下)文件中,也需要加入user_list(访问ftp服务权限)文件中