linux环境下搭建FTP服务

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文档

Linux系统ftp和lftp工具使用

猜你喜欢

转载自blog.csdn.net/u014270566/article/details/107307471
今日推荐