Proftp的幾個小問題:
1、配置Ftp允許Root登錄
修改/etc/ftpusers,去掉root
2、如果希望實現Root用戶Ftp後可以切換到/目錄
一般用戶只能切換到自己的主目錄,修改/etc/proftpd.conf文件,在DefaultRoot
一行前面增加一行
DefaultRoot / root
重新啟動proftpd服務即可。
改變匿名登錄的不想登錄到默認的 /var/ftp目錄
就要把/etc/passwd文件中的
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
中的默認目錄改變了即可。
3、Ftp具有寫入功能請在/etc/proftpd.conf文件中的<Global>段中改為如下:
<Limit STOR>
AllowAll
</Limit>
才可以。
4、Ftp改為PASV模式
在我們紅旗dc 5.0中的設置是在proftpd.conf中添加如下兩條語句即可。
MasqueradeAddress ip地址
#該參數設置在client發pasv指令時,server返回給client的pasv地址串中應該包含的連接地址,
#該地址通常是防火牆的外部地址(作rdr的地址)
PassivePorts 端口號
設置好之後重啟一下ftp服務。
FTP的連接一般是有兩個連接的,一個是客戶程和服務器傳輸命令的,另一個是數據傳送的連接。FTP服務程序一般會支持兩種不同的模式,一種是Port模式,一種是
Passive模式(PasvMode),我先說說這兩種不同模式連接方式的分別。
先假設客戶端為C,服務端為S.
*Port模式:*
當客戶端C向服務端S連接後,使用的是Port模式,那麼客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個端口N在等著你進行數據連接),當服務端S收
到這個Port命令後
就會向客戶端打開的那個端口N進行連接,這種數據連接就生成了。
*Pasv模式:*
當客戶端C向服務端S連接後,服務端S會發信息給客戶端C,這個信息是(服務端S在本地打開了一個端口M,你現在去連接我吧),當客戶端C收到這個信息後,就可以向服
務端S的M端口進行連接,連接成功後,數據連接也建立了。
從上面的解釋中,兩種模式主要的不同是數據連接建立的不同,對於Port模式,是客戶端C在本地打開一個端口等服務端S去連接建立數據連接;而Pasv模式就是服務端
S打開一個端口等待客戶端C去建立一個數據連接。
關於ftp的pasv模式,有一種情況:
如果是通過iptables轉發到內網的一台服務器,默認只能用port模式,此時,可以增加兩個iptables模塊,以實現pasv模式:
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
放入/etc/rc.local即可。(網關服務器上設置,或在配置了iptables的機器上設置)
當然,通過修改proftpd.conf,指定允許的端口也可以,但這個會有限制,就是pasv port端口是固定的,假設數量是51000-510011,則只能提供給最多11個用戶,否則就沒有端口可以分配了。但加載模塊則沒有這個問題。