一、了解ftp
1.定义:ftp是一种建立在TCP上的文件传输协议,可以使主机间共享文件,使用TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。
2.工作模式:(相对于ftp-server根据数据传输通道连接由谁发起)
主动模式:命令端口:21 数据端口:20
防火墙要求:大于1024的端口和21、20 可以通信
被动模式:命令端口:21 数据端口:随机
二、安装(yum)
1.服务器安装
yum install vsftpd
2.客户端安装
yum install ftp
三、配置
配置文件所在目录: /etc/vsftpd/vsftpd.conf
1.原配置文件
anonymous_enable=YES #允许匿名用户登录 改为anonymous_enable=NO
local_enable=YES #允许本地登录
write_enable=YES #允许写,如需上传,则必须
local_umask=022 #设置本地用户生成文件的掩码为022
dirmessage_enable=YES #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。
xferlog_enable=YES #打开日志记录
connect_from_port_20=YES #启用FTP数据端口的连接请求
xferlog_std_format=YES #标准日志格式
listen=YES #监听/被动模式
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
新添加(原文件注销的内容)
idle_session_timeout=600 #空闲连接超时
anon_upload_enable=YES #允许虚拟用户和匿名用户上传
data_connection_timeout=120 #连接超时
ftpd_banner=Welcome to ChinaRise FTP service #欢迎信息
chroot_local_user=YES
chroot_list_enable=YES #设置本地用户登录后不能切换到自家目录以外的别的目录
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虚拟用户名单保存在文
2.新添加可以登录的用户
方法一:/usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin 用户名(eg:test)
方法二:useradd(adduser) 用户名(eg:test)
查看方法:more /etc/passwd
3.设置密码
passwd 用户名(eg:test)
4.在配置文件里面配置的chroot_list_file=/etc/vsftpd/vsftpd.chroot_list里面加入用户名
vim /etc/vsftpd/vsftpd.chroot_list(空文件) 加入一行用户名(eg:test)
四、配置被动模式(pasv模式)
pasv_enable=yes 开启pasv模式
pasv_min_port=10000 pasv最小端口号
pasv_max_port=10010 pasv最大端口号
注意:配置后记得重启应用:/etc/init.d/vsftpd restart
五、防火墙配置
在防火墙内加入要用到的端口:
-A INPUT -p tcp -m tcp --dport 10000:10010 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
注意:配置后记得重启应用:/etc/init.d/iptable restart