FTP的配置及故障排除
FTP
linux下ftp服务器软件
vsftpd —— Very Secure FTP Daemon 非常安全的FTP守护进程
功能
共享文件
特点
安全,配置简单(在配置文件里有选项,按照需要进行设置即可)
配置文件路径
vi /etc/vsftpd/vsftpd.conf
端口及协议号
TCP:20 负责传输数据
TCP:21 负责传输命令
FTP安装及配置
安装
服务端 vsftpd
客户端 ftp
yum install vsftpd ftp -y
修改配置文件
vi /etc/vsftpd/vsftpd.conf
local_enable=YES //允许本地用户登录
write_enable=YES //允许本地用户写操作
local_umask=022 //本地权限掩码
#anon_upload_enable=YES //默认匿名用户是不允许上传文件的
#anon_mkdir_write_enable=YES //是否允许匿名用户创建目录
dirmessage_enable=YES //显示目录信息
xferlog_enable=YES //对上传和下载记录日志
connect_from_port_20=YES //port模式使用的数据端口
#chown_uploads=YES //与上传文件的所有者相关的设置
#chown_username=whoever //上传的文件的所有者是谁,前提:该用户是真实存在的
#xferlog_file=/var/log/xferlog //默认日志记录位置
xferlog_std_format=YES //使用默认位置记录日志
#idle_session_timeout=600 //空闲会话超时时间
#data_connection_timeout=120 //数据连接超时时间
#chroot_local_user=YES 本地用户牢笼
#chroot_list_enable=YES 开启牢笼用户列表
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list //列表文件
listen=YES //是否监听
pam_service_name=vsftpd //pam验证
userlist_enable=YES //开启用户列表
#userlist_deny=YES //默认没有该行,默认是开启黑名单的
tcp_wrappers=YES //关于安全的限制
启动服务
systemctl restart vsftpd
systemctl enable vsftpd
参考
匿名登录到ftp后,默认位置在哪?普通用户登录默认的是用户的家目录
/var/ftp/
[root@web /]# grep ftp /etc/passwd
ftp\:x \:14:50:FTP User:/var/ftp:/sbin/nologin
ftp用户登录后,默认位置为家目录
牢笼
普通用户登录默认的是用户的家目录
本地用户chroot限制——牢笼限制
[root@web /]# vim /etc/vsftpd/vsftpd.conf
96 chroot_local_user=YES //开启牢笼限制,正常开启这行即可
97 chroot_list_enable=YES //97和99两行,写在99行的文件中的人是不受牢笼限制的
# (default follows)
99 chroot_list_file=/etc/vsftpd/chroot_list ——白名单
allow_writeable_chroot=YES
ftp传输方式
1)binary 二进制比特流方式传输(默认的传输方式),也是最常用的方式
2)ascii 文本方式传输
三类用户
1、匿名用户
默认只能下载,不能上传()
2、本地用户
使用useradd添加的用户
3、虚拟用户
其权限模拟的是匿名用户,其登录方式模拟的是本地用户,默认只能下载不能上传
匿名用户上传文件 (注意目录的权限问题)
[root@web /]# vim /etc/vsftpd/vsftpd.conf
27 anon_upload_enable=YES 取消注释,允许匿名用户上传文件
31 anon_mkdir_write_enable=YES 取消注释,允许匿名用户创建目录
报错信息:
[root@www ~]#systemctl start vsftpd
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
[root@www ~]#systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2017-12-06 00:15:36 CST; 50s ago
Process: 2072 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)
Dec 06 00:15:36 liye systemd[1]: Starting Vsftpd ftp daemon...
Dec 06 00:15:36 liye systemd[1]: vsftpd.service: control process exited, code=exited status=2
Dec 06 00:15:36 liye systemd[1]: Failed to start Vsftpd ftp daemon.
Dec 06 00:15:36 liye systemd[1]: Unit vsftpd.service entered failed state.
Dec 06 00:15:36 liye systemd[1]: vsftpd.service failed.
解决方法:
1.vi /etc/vsftpd/vsftpd.conf
listen_ipv6=NO 或注释掉
2.systemctl enable vsftpd
统计连接到ftp服务器的客户端的数量
netstat -antp | grep ftp | grep EST | wc -l