FTP连接
控制连接:TCP 21,用于发送FTP命令信息
数据连接:TCP 20,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从 20 端口主动向客户端发起连接
被动模式:服务端在指定范围内某个端口被动等待客户端连接
FTP 用户的类型
匿名用户: anonymous 或 ftp
本地用户: 帐号名称、密码等信息保存在 passwd、shadow 文件中
虚拟用户: 使用独立的帐号/密码数据文件
Vsftpd 软件包
主程序:/usr/sbin/vsftpd
服务名:vsftpd
用户控制列表文件 /etc/vsftpd/ftpusers /etc/vsftpd/user_list
主配置文件 /etc/vsftpd/vsftpd.conf
常用的全局配置项 listen=YES:是否以独立运行的方式监听服务 listen_address=192.168.4.1:设置监听的 IP 地址 listen_port=21:设置监听 FTP 服务的端口号 write_enable=YES:是否启用写入权限 download_enable=YES:是否允许下载文件 userlist_enable=YES:是否启用 user_list 列表文件 userlist_deny=YES:是否禁用 user_list 中的用户 max_clients=0:限制并发客户端连接数 max_per_ip=0:限制同一 IP 地址的并发连接数 常用的匿名 FTP 配置项 anonymous_enable=YES:启用匿名访问 anon_umask=022:匿名用户所上传文件的权限掩码 anon_root=/var/ftp:匿名用户的 FTP 根目录 anon_upload_enable=YES:允许上传文件 anon_mkdir_write_enable=YES:允许创建目录 anon_other_write_enable=YES:开放其他写入权 anon_max_rate=0:限制最大传输速率
匿名登录
1、准备访问目录
[root@hfj vsftpd]# chown ftp /var/ftp/pub [root@hfj vsftpd]# ls -ld /var/ftp/pub drwxr-xr-x. 2 ftp root 4096 3月 22 16:48 /var/ftp/pub
2、配置vsftpd.conf文件
配置匿名访问的主要选项如下:
anonymous_enable=YES:启用匿名访问 anon_umask=022:匿名用户所上传文件的权限掩码 anon_root=/var/ftp:匿名用户的 FTP 根目录,需要手动添加。 anon_upload_enable=YES:允许上传文件 anon_mkdir_write_enable=YES:允许创建目录 anon_other_write_enable=YES:开放其他写入权 local_enable=NO:是否启用本地系统用户
3、启动vsftpd服务:默认关闭
[root@hfj vsftpd]# systemctl start vsftpd systemctl enable vsftpd 开机启动。 [root@hfj vsftpd]# ps -ax|grep vsftpd 188828 ? Ss 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 189169 pts/3 S+ 0:00 grep --color=auto vsftpd
4、访问测试:
[root@hfj vsftpd]# netstat -anpt |grep vsftpd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 188828/vsftpd
[root@hfj vsftpd]# ftp 10.5.63.202 或者输入主机名称 Connected to 10.5.63.202 (10.5.63.202). 220 Welcome to hfj FTP service. Name (10.5.63.202:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (10,5,63,202,160,131). 150 Here comes the directory listing. drwxr-xr-x 2 14 0 4096 Mar 22 08:48 pub 226 Directory send OK. ftp> cd pub 250 Directory successfully changed.
不启用user_list的用户登录
1、打开ftp访问权限
检查selinux 中关于ftp的策略
#getsebool -a | grep ftp
打开ftp访问权限
#setsebool -P ftpd_full_access=on
2、本地用户配置文件:vsftpd.conf
anonymous_enable=NO 禁止匿名开放模式 local_enable=YES 允许本地用户模式 guest_enable=YES 开启虚拟用户模式 guest_username=virtual 指定虚拟用户账户 pam_service_name=vsftpd.vu 指定 PAM 文件 allow_writeable_chroot=YES 允许对禁锢的 FTP 根目录执行写入操作,而且不拒绝用 户的登录请求
常见错误汇总:
1、vsftpd要安装成功,ftp客户端软件要安装成功。
2、配置文件,不明白不清楚的地方不要乱改。Linux是文本配置型操作系统,配置文件不懂的千万不要乱改,修改时要小心,注释信息不要动。
3、改完配置文件后要重新启动vsftpd服务。
4、访问ftp服务,要使用正常可以登陆操作系统的普通用户,可以使用ssh远程或者用虚拟主机直接登录一下尝试一下是否能够访问。
5、关闭selinux、firewalld。