在公司的业务中,有一些常用的软件是公开使用的,比如XSHELL这一些常用的,用的时候总不能在去下载吧!!!
所以公司中就会搭建一些共享服务器等,本次介绍的就是VSFTPD的用法
(本次要求,将vsftpd做出来,实现匿名用户可以上传)
客户机可以从服务器上上传下载
192.168.1.100 ----------》 192.168.1.1
pc客户机----------------------------ftp服务器
第一步,安装软件包
本次采用yum的方式安装,也可以用rpm或者源码包安装,顺带关闭掉防火墙
[[email protected] 桌面]# yum -y install vsftpd
第二步,然后等待安装完毕,安装完毕之后,就要修改主配置文件来让它实现匿名用户可以访问
主配置文件的路径在/etc/vsftpd/vsftpd.conf
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd
vsftpd.conf vsftpd_conf_migrate.sh
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd.conf
...
27 anon_upload_enable=YES #是否允许匿名用户上传,默认是NO
...
31 anon_mkdir_write_enable=YES #是否允许匿名用户创建目录,默认是NO #这里为了简单,就直接用set nu 来显示行号进行配置的修改了
32 anon_other_write_enable=YES #是否允许匿名用户进行其他所有的写入操作
...
第三步,修改完毕后,保存退出,接下来设置acl权限
[[email protected] ~]# setfacl -m u:ftp:rwx /var/ftp/pub/
[[email protected] ~]# getfacl /var/ftp/pub/
getfacl: Removing leading ‘/‘ from absolute path names
# file: var/ftp/pub
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x
第四步,接下来就启动服务,并将服务设置为开机自动启动,用客户端来进行访问
[[email protected] ~]# service vsftpd restart
[[email protected] ~]# chkconfig vsftpd on
接着就用匿名用户上传下载来试试吧
实现结果是成功的,但是随着使用,问题也出现了,因为匿名用户可以上传下载,传上去的东西还是可以删除的
所以安全这一块不太好,细心的还能发现能进入到服务器的根目录,这样子简直太不安全了
接下来要对安全这一方面改进一下,开启防火墙,禁止匿名用户访问,将访问用户囚禁在家目录
接着上个实现做的使用
[[email protected] 桌面]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=NO #拒绝匿名用户登录
97 chroot_local_user=YES #将访问用户囚禁在家目录
然后重启服务,开启防火墙
[[email protected] ftp]# service vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
[[email protected] ftp]# service iptables start
iptables:应用防火墙规则: [确定]
首先清空防火墙规则,
[[email protected] ftp]# iptables -F
[[email protected] ftp]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
然后来对防火墙规则进行写入
[[email protected] ftp]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允许通过21号端口
[[email protected] ftp]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
将防火墙规则保存起来
下面还有一个有趣的验证,叫vsftpd黑白名单
创建几个用户
[[email protected] ~]# useradd lily
[[email protected] ~]# useradd mike
[[email protected] ~]# useradd kaka
[[email protected] ~]# echo "123456" | passwd --stdin lily
Changing password for user lily.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# echo "123456" | passwd --stdin mike
Changing password for user mike.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# echo "123456" | passwd --stdin kaka
Changing password for user kaka.
passwd: all authentication tokens updated successfully.
这里为了简单,就将密码设置为123456了
然后分别写入/etc/vsftpd/ftpusers黑名单 /etc/vsftpd/user_list 白名单,默认为黑名单
[[email protected] ~]# grep lily /etc/vsftpd/ftpusers #测试黑名单
lily
[[email protected] ~]# grep mike /etc/vsftpd/user_list #测试白名单
mike
然后重启服务进行验证,发现只有kaka用户能访问进去,但是很多然不明白了,为什么白名单内的访问不进去呢,看下面
[[email protected] ~]# grep userlist_deny /etc/vsftpd/vsftpd.conf
userlist_deny=NO #只允许user_list里面的用户访问FTP
因为白名单是默认没有开启的,所以作用同等于黑名单,下面将白名单开启
[[email protected] ftp]# vim /etc/vsftpd/vsftpd.conf
119 userlist_enable=YES #是否启用user_list名单
120 userlist_deny=NO #是否允许user_list名单中的进行访问还是拒绝
然后重启服务,进行验证