1 先裝ftp服務 yum installvsftpd –y
設置開機啓動 chkconfig vsftpd on 啓動服務 /etc/init.d/vsftpd start
設置防火牆,讓防火牆添加此服務爲信任服務或者刷掉防火牆 iptables–F或者關閉防火牆/etc/init.d/iptables stop
查看防火牆 iptables –nL
2 新建ftp發佈目錄如下:(selinux是關閉的setenforce0)
cd /var/ftp
mkdir test
chmod 775 test/
chgrp ftp test/ 此時可以進入發佈目錄了,但不能上傳和下載,要上傳更改配置文件如下:
vi /etc/vsftpd/vsftpd.conf 更改如下:
吧anon_uploadenable=YES 的註解去掉就可以上傳了。更改完一定重啓服務 /etc/init.d/vsftpd restart
Chmod 777 /var/ftp/test 這樣纔可以上傳,要不我們登陸的默認是anonymous,對755的話對目錄沒有寫的權限,不能上傳,不改目錄權限也可以,lftp的時候加上-u ftp指明用戶,反正目錄要有對應的用戶的x權限
設置可以下載:vi/etc/vsftpd/vsftpd.conf 更改如下:
添加anon_umask=022 重啓服務後就可以下載了
3 設置其他用戶可以更改家目錄 lftp 192.168.0.191 –u lee 此時ls 看不了容易 (selinux 打開)500 錯誤
Chcon–t public_content_t test
Getsebool–a | grep ftp
Setsebool –P ftp_home_dir on 此時lee用戶可以進入test目錄了。但不可以新建文件夾
如果selinux 打開爲 setenforce 1 就不能上傳了 要更改安全上下文
Semanage fcontext -a -t public_content_rw_t ‘/var/ftp/pub(/.*)?’ 更改安全上下文
Restorecon -RFvv /var/ftp/pub/
4 setenforce 1 打開selinux
netstat –antlpe | grep vsftpd 查看ftp 的端口
Semanage fcontext -a -t public_content_rw_t ‘/var/ftp/pub(/.*)?’ 更改安全上下文
Restorecon -RFvv /var/ftp/pub/
getsebool –a | grep ftp
setsebool –P allow_ftpd_anon_write on 就可以上傳了
5 更改發佈目錄
Man5 vsftpd.conf
/root
vi /etc/vsftpd/vsftpd.conf 更改如下:
添加anon_root=/vsftpd/pub
Mkdir –p /vsftpd/pub touch/vsftpd/pub file
/etc/init.d/vsftpd restart
lftp localhost ls 查看有沒有file 但在此目錄下不能上傳和下載
chmod 775 /vsftpd -R 更改安全上下文
semanage fcontext –a –t public_content_t ‘/vsftpd/pub(/.*)?’
semanage fcontext –a –t public_content_t ‘/vsftpd(/.*)?’
restorecon –RFvv /vsftpd/
restorecon –RFvv /vsftpd/pub/
ls –Zd
vi /etc/vsftpd/vsftpd.conf 更改如下:
打開anon_upload_enable=YES
Anon_mkdir_write_enable=YES
添加anon_world_readable_only=NO
Anon_other_write_enable=YES
問題:
ls: Login failed: 500 OOPS: vsftpd:refusing to run with writable anonymous root
解決:ftp的家目錄(就是ftp進去時候默認的目錄權限不能爲777)
Chmod 775 /ftp家目錄
5 用戶登錄可以更改根目錄 vi /etv/vsftpd/vsftpd.conf 更改如下:
添加 chown_uploads=YES
Chown_username=leo
/etc/init.d/vsftpd restart
Setenforce 0
Lftp –u lee localhost
Ls 可以看到更目錄
Setenforce 1 就不能了
Getsebool –a | grep ftp
Setsebool –P ftp_home_dir on
6 編寫白名單(chroot_list_file)
Vi /etc/vsftpd/chroot_list 添加容許更改目錄的用戶姓名
Chroot_local_user=YES
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list
7虛擬用戶
Cd/etc/vsftpd
Vi user (虛擬用戶名單和密碼)
user1
user1passwd
user2
user2passwd
格式像這樣
Yum install db4-utils -y安裝加密軟件
Db_load –T –t hash –f user login.db
如果有錯誤,吧login.db刪除,在執行上面的:
Db_load –T –t hash –f user login.db
Vim /etc/vsftpd/vsftpd.conf更改如下:
在最下面添加如下:
Pam_server_name=virtual
Userlist_enable=YES
Tcp_wrappers=YES
Guest_enable=YES
Guest_username=ftp
Local_root=/var/ftp/virtual/$USER
User_sub_token=$USER
/etc/init.d/vsftpd restart
Cd /etc/pam.d/
Vim virtual更改如下:
auth required /lib64/security/pam_userdb.so(64位操作系統,32位的話/lib/security/pam_userdb.so) db=/etc/vsftpd/login
auth required /lib64/security/pam_userdb.so(64位操作系統,32位的話/lib/security/pam_userdb.so) db=/etc/vsftpd/login
lftp –u user1 localhost ls 看有沒有file1驗證
lftp –u user2 localhost ls 看有沒有file2
cd /var/ftp/
mkdir virtual/
cd virtual
mkdir user1 mkdir user2
cd uer1 touch file1
cd ../user2
touch file2
7更改接聽端口
List_port5000
/etc/init.d/vsftpd restart
Netstat –antlpe | grep ftp
Lftp localhost:5000
8 讓ftp限制內外網的上傳下載速度
先在本機上加一塊網卡:
Cd /etc/sysconfig/network-script/
Cp ifcig-eth0 ifcig-eth0:0
Vi eth0:0 更改如下:
DEVICE=“eth0:0”
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.252 NETMASK GATEWAY DNS1 DNS2 重啓網絡
Vi /etc/vsftpd/vsftpd.conf 更改如下
Listen = YES
Listen_address=192.168.0.251
Local_max_rate=102400
Anon_max_rate=10240
重啓服務
Netstat –antlpe | grep ftp 查看
Cd /etc/vsftpd
Cp vsftpd.conf vsftpd1.conf
Vi vsftpd1.conf 更改如下:
Listen = YES
Listen_address=192.168.0.252
Local_max_rate=102400
Anon_max_rate=10240
重啓服務