Thursday, June 3, 2010

vsftpd雜亂小筆記

未來的裕翔

要開啟vsftpd服務, 要先安裝vsftpd套件

port 21/tcp, ftp command

port 20/tcp, ftp data

/etc/vsftpusers, 黑白名單

vsftpd可用TCPWRAPPER控管

預設是:

normal user可以上傳下載, 登入預設進入家目錄

不過selinux要開, setsebool -P ftp_home_dir=1

帳密就是/etc/passwd

如果是anonymous user登入, 就只能下載, 登入預設是/var/ftp

如果想讓anonymous user可以上傳

vsftpd.conf要先設定

anon_upload_enable=YES

建議修改上傳的檔案屬性和權限

chown_uploads=YES

chown_username=XXX, /etc/passwd要存在此使用者

anon_umask=077, 上傳後的檔案就會變成600

這樣除了XXX誰都不能讀anonymous user的檔案了

所以也就不能下載

通常會另外建一個資料夾以供上傳

mkdir incoming

chown root.ftp incoming, w和x要一組才能寫入

chmod 730 incoming, 這樣大家就看不到別人上傳的檔案

到此, 還要修改incoming資料夾的context

不然selinux預設(public_content_t)無法寫入

chcon -t public_content_rw_t incoming

最後最後, selinux還有擋一個^^

setsebool -P allow_ftpd_anon_write on

補充:

pc連到unix預設是ascii mode

可輸入bin切換到binary mode

想換到ascii mode就輸入ascii

ACTIVE MODE(server主動SYN client):

1. 當client向server的port 21送出SYN

2. client再跟server的port 21說client自己要開哪個port(隨機, >1024)

3. server用port 20跟client的那個隨機port聯絡, 用SYN

4. 然後client的那個隨機port回一個ACK給server的port 20

就可以開始傳了

不過在3可能會被client的防火牆擋住

所以需要PASSIVE MODE:

1. client SYN server的port 21

2. client跟server的port 21說client要進行PASSIVE MODE

3. server的port 21跟client說, 請聯絡server的隨機port(>1024)

4. 於是由client SYN server的隨機port

5. 然後server回一個ack給client

不過如果server也檔那個隨機port就不用玩了

所以iptables才會有那個RELATED,ESTABLISHED blabla

No comments:

Post a Comment