//客户端
yum install ftp
//服务端
yum install vsftpd
//db 生成数据包
yum install db4-utils
新建user目录
mkdir /etc/vsftpd/user
新建chroot_list文件
touch /etc/vsftpd/chroot_list
修改配置文件
vi /etc/vsftpd/vsftpd.conf
local_enable=YES # 本地是否可
write_enable=YES # 本地是否可写
local_umask=022 # umask 码
dirmessage_enable=YES # 是否显示信息
xferlog_enable=YES # 开启log日志
connect_from_port_20=YES # 20端口转数据
pasv_enable=yes # 开启被动模式
pasv_max_port=5010 # 最大端口号
pasv_min_port=5000 # 最小端口号
xferlog_file=/var/log/vsftpd.log # log路径
xferlog_std_format=YES # log格式
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES # 是否可使用独立模式
pam_service_name=vsftpd # 认证方式
userlist_enable=NO # 是否可以使用ls
tcp_wrappers=YES # 是否支持tcp_wrappers
anon_umask=022
guest_enable=YES # 开启虚拟用户
guest_username=apache # 虚拟用户映射的本地账户(FTP文件夹必须为该用户下的权限)
user_config_dir=/etc/vsftpd/user # 虚拟用户配置目录
打开user目录
cd /etc/vsftpd/user
新建用户名
# vi zw-jd
添加配置
local_root=/var/www/html # 可使用FTP上传目录
write_enable=YES # 给ftp写权限
anon_world_readable_only=no # 其它用户不可读
anon_upload_enable=YES # 设置可以上传
anon_other_write_enable=yes # 可写
anon_mkdir_write_enable=yes # 可新建目录
anon_umask=000 # umask 码
新建ftp用户
# vi /etc/vsftpd/vftpusers
zw-jd 用户名
zw-jd 密码
把vftpusers 文件转换成数据库文件vftpusers .db
db_load -T -t hash -f /etc/vsftd/vftpusers /etc/vsftpd/vftpusers .db
vi /etc/pam.d/vsftpd
全部注释掉,增加如下认证信息:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpusers
启动ftp
# /etc/init.d/vsftpd stop 停止
# /etc/init.d/vsftpd start 启动
# /etc/init.d/vsftpd restart 重启
注意::::::::::::::
服务端的文件夹权限必须为虚拟用户对应的用户权限,即zw-jd对应apache 去访问/var/www/html,
chown apache:apache /var/www/html才能上传成功,可以查看/var/log/vsftpd.log查看每一次ftp上传成功与否。
IPTABLES
#allow all ftp incoming connections
iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# Enable active ftp transfers
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
# Enable passive ftp transfers
iptables -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT