vsftpd experiment

sgy618發表於2011-04-21

vsftpd experiment

[@more@]
vsftpd
very security file transfer protocol daemon

需求1:
你在公司需要搭一個FTP伺服器,實現檔案的共享,匿名下載。限制下載速率。

1、裝包vsftpd
yum -y install vsftpd
anon_max_rate=100000 --------100KB/s
vim /etc/vsftpd/vsftpd.conf

2、啟動服務
service vsftpd start
3、把要共享檔案放到/var/ftp目錄下(為什麼 ?)
匿名訪問FTP伺服器,實際使用的是伺服器端的名稱為ftp的使用者,於是訪問到的目錄將是此使用者的家目錄/var/ftp
[root@localhost ~]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

需求2:
能實現匿名上傳
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
]# service vsftpd restart
專門建立一個test目錄到/var/ftp下,做為匿名上傳的位置
[root@localhost ~]# mkdir /var/ftp/test
[root@localhost ~]# ls -ld /var/ftp/test/
drwxr-xr-x 2 root root 4096 04-10 16:14 /var/ftp/test/
[root@localhost ~]# chown ftp.ftp /var/ftp/test/
[root@localhost ~]# ls -ld /var/ftp/test/
drwxr-xr-x 2 ftp ftp 4096 04-10 16:14 /var/ftp/test/

總結:
如果允許寫操作,必須在配置檔案中定義可寫,並在檔案系統上定義相應的使用者可寫。
配置檔案的許可權定義
檔案系統檔案的許可權定義
!交集!

vim /etc/vsftpd/vsftpd.conf
anon_root=/ftpdir ---- /ftpdir的許可權對ftp是否可是rwx 不可以!
匿名使用者不能有w許可權,當然不具備x許可權更好

需求3:
定義非匿名方式,實現更多許可權
1、得建立非匿名帳號
vsftpd 可以直接用伺服器端useradd建立的帳號做FTP登入帳號
]# useradd -s /sbin/nologin ftpuser1
]# echo 123 | passwd --stdin ftpuser1
2、客戶端可以用ftpuser1帳號直接訪問FTP伺服器端。
]# lftp -u ftpuser1 192.168.1.254
口令: 123
將訪問到ftpuser1的家目錄
vim /etc/vsftpd/vsftpd.conf

local_max_rate=100000 ---- 100KB/s

service vsftpd restart

安全問題:使用者登入FTP後,可以切換目錄到伺服器端的/
[root@localhost ~]# grep -n ^chroot /etc/vsftpd/vsftpd.conf
95:chroot_list_enable=YES
97:chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost ~]# ls /etc/vsftpd/chroot_listls: /etc/vsftpd/chroot_list: 沒有那個檔案或目錄
[root@localhost ~]# touch /etc/vsftpd/chroot_list
[root@localhost ~]# echo ftpuser1 >> /etc/vsftpd/chroot_list
[root@localhost ~]# service vsftpd restart
關閉 vsftpd: [確定]
為 vsftpd 啟動 vsftpd: [確定]

如果設定為
chroot_local_user=YES
chroot_list_enable=YES(這行可以沒有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那麼, 凡是加在檔案vsftpd.chroot_list中的使用者都是不受限止的使用者
即, 可以瀏覽其主目錄的上級目錄.

所以, 如果不希望某使用者能夠瀏覽其主目錄上級目錄中的內容,可以如上設定, 然後在
檔案vsftpd.chroot_list中不新增該使用者即可(此時, 在該檔案中的使用者都是可以瀏覽其主目錄之外的目錄的).
或者, 設定如下
chroot_local_user=NO
chroot_list_enable=YES(這行必須要有, 否則檔案vsftpd.chroot_list不會起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然後把所有不希望有這種瀏覽其主目錄之上的各目錄許可權的使用者新增到檔案vsftpd.chroot_list(此時, 在該檔案中的使用者都是不可以瀏覽其主目錄之外的目錄的)
中即可(一行一個使用者名稱).

需求4:
匿名和ftpuser1帳號訪問的是同一共享目錄
匿名只能下載
ftpuser1可上傳下載到test目錄下

1、裝包
yum -y install vsftpd
2、配置
vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftp
95:chroot_list_enable=YES
97:chroot_list_file=/etc/vsftpd/chroot_list

mkdir /var/ftp/test 作為上傳目錄
[root@localhost ftp]# ls -ld /var/ftp/test/
drwxr-xrwx 2 root root 4096 04-10 16:38 /var/ftp/test/
或者setfacl -m user:ftpuser1:rwx /var/ftp/test

service vsftpd restart
找客戶端驗證結果


需求5:
對FTP伺服器端做黑白名單
put只能上傳檔案,不能上傳目錄
userlist_enable=YES
userlist_file為名單(/etc/vsftpd/user_list)
userlist_deny=no userlist_file為白名單(只有名單中的使用者才可登入)
userlist_deny=yes userlist_file為黑名單

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23168012/viewspace-1048965/,如需轉載,請註明出處,否則將追究法律責任。

相關文章