//客戶端
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