ftp模式简单介绍:
了解:
ftp主动模式,ftp被动模式(不管哪种模式,命令端口都是21)
主动模式:数据服务端端口号是20,服务端主动连接,容易被客户端防火墙墙了
被动模式:客户端主动连接,端口号不确定,随机分配
安装:
1.查询系统是否安装vsftpd软件
rpm -q vsftpd
2.安装vsftpd
yum -y install vsftpd
扩展:查看软件安装后产生了哪些文件
rpm -ql vsftpd
/etc/rc.d/init.d/vsftpd #启动脚本,红帽6
/etc/vsftpd #配置文件主目录
/etc/vsftpd/ftpusers #用户列表【黑名单】
/etc/vsftpd/user_list #用户列表【白+黑】,默认黑名单
/etc/vsftpd/vsftpd.conf #注配置文件
/usr/sbin/vsftpd #程序本身,二进制命令
/usr/share/man/man5/vsftpd.conf.5.gz #man文档
/usr/share/man/man8/vsftpd.8.gz
/var/ftp #匿名用户的数据根目录
/var/ftp/pub # #匿名用户的数据扩展目录
3.启动vsftpd
service vsftpd start
ftp简单使用,匿名用户访问,不要求用户权限:
4.此时打开浏览器ftp://ftp所在服务器IP地址,能访问匿名用户数据
下面两个目录是匿名用户默认的数据目录
/var/ftp
/var/ftp/pub
了解:
客户端通过访问服务端:
ftp 服务端IP
匿名用户登录:
非root用户登录,默认数据目录是家目录:
**
ftp高级用法:
**
5.更改配置文件,vim /etc/vsftpd/vsftpd.conf
一、禁止匿名用户访问,修改为
anonymous_enable=NO
二、指定ftp用户访问的目录,新增:
local_root=/data/kaifa #/data/kaifa为所有开发用户的数据目录
注:如果没有/data/kaifa目录要创建该目录
三、上传文件
将/data/kaifa
目录 添加其他用户写
权限
四、固定所有本地用户的默认数据用户根目录,不允许本地用户跳转到其他目录。配置文件中打开下面选项

chroot_local_user=YES
五、固定大部分人,允许少数人,基于上述第第四条
chroot_local_user=YES
chroot_list_enable=YES #开启用户列表
chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件
echo 用户名 >>/etc/vsftpd/chroot_list #添加用户
六、固定少部分人,允许大数人,基于上述第第四、五条
chroot_local_user=NO
chroot_list_enable=YES #开启用户列表
chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件
echo 用户名 >>/etc/vsftpd/chroot_list #添加用户
七、黑白名单的使用
/etc/vsftpd/ftpusers #用户列表【黑名单】
/etc/vsftpd/user_list #用户列表【白+黑】,默认黑名单
如果要将/etc/vsftpd/user_list
变为白名单,在配置文件增加选项:userlist_deny=NO
如果user_list 设置为白名单,用户既在白名单又在黑名单,那以黑名单优先
八、网络访问控制
依赖于tcp_wrappers软件实现网络访问控制
两个文件进行控制:
/etc/hosts.allow
/etc/hosts.deny
流程:网络请求先通过hosts.allow文件,如果IP存在则接受请求,如果不存在则流向hosts.deny文件,如果IP存在该文件中则拒绝请求,如果不存在则接受请求。
hosts.deny文件写法:
vsftpd:all #全部拒绝
vsftpd: all EXCEPT 192.168.0.2 #拒绝所有所有,除了192.168.0.2
vsftpd: 192.168.0.2 #拒绝单个IP地址,效果=hosts.allow文件里增加vsftpd: 192.168.0.2:deny
vsftpd: 192.168.0.0/255.255.255.0 #拒绝某个网段
vsftpd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.2 #拒绝某个网段,除了某个IP
同样:其他服务也支持也如该文件,如sshd服务
sshd:all
怎么判断服务是否支持tcp_wrappers,有两种方式:
一种:如果服务是源码包安装,只需要在./configure接一个参数如:./configure --enable-libwrap
第二种:rpm包安装
ldd /usr/sbin/svftpd | grep libwrap*
libwrap.so.0 => /lib/libwrap.so.0........ #输出此内容表示该服务支持网络访问控制
ldd /usr/sbin/sshd | grep libwrap*
libwrap.so.0 => /lib/libwrap.so.0........
其他高级用法参考man文档