【搭建環(huán)境】Linux (Fedora 16)
【基本實現(xiàn)】在自己的電腦上搭建ftp,實現(xiàn)同一網(wǎng)段匿名登錄,并能上傳下載文件。
【涉及技術(shù)】vsftpd,iptables
【方法】
1. 先查看自己的機子上是否已安裝vsftpd (very secure FTP Daemon),這是linux上常用的ftpd技術(shù),配置方法比較類似配置Apache。命令行輸入:
#rpm -qa | grep vsftp
若出現(xiàn)內(nèi)容,則表示已安裝;若無,則手動抓包下載:
# sudo yum install vsftpd
2 .啟動vsftpd服務(wù)。很多教程寫的是/etc/init.d/vsftpd start,但是我試了下后發(fā)現(xiàn)不行,應(yīng)該如下輸入:
# sudo service vsftpd start
相應(yīng)的,start 可換成stop,restart等,從字面意思就知道其意思。
查看是否有啟動vsftpd:
# pstree | grep vsftpd
若有則表示啟動成功。至此,可通過#ftp 主機名/localhost/127.0.0.1 來測試ftp是否正常工作。
3. 配置 相關(guān)文件。vsftpd.conf 全局配置文件放在/etc/vsftpd/下。為了防止配置錯了,先拷貝一份副本,之后進入文檔進行編輯。完成后重啟ftp即可。
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd1.conf
#sudo vim /etc/vsftpd/vsftpd.conf
為了允許匿名登錄,則anonymous_enable必須等于YES,其他相應(yīng)的配置屬性簡單列表如下:
anonymous_enable=YES 允許匿名登錄
Local_enable=YES 允許本地用戶登錄
write_enable=YES 開放本地用戶的寫權(quán)限
dirmessage_enable=YES 當切換到目錄時,顯示該目錄下的.message隱含文件的內(nèi)容
xferlog_enab1e =YES 激活上傳和下載日志
connect_from_port_20 = YES 啟用FTP數(shù)據(jù)端口的連接請求
xferlog_std_format =YES 使用標準的ftpd xferlog日志格式
pam_service_name=vsftpd 設(shè)置認證服務(wù)的配置文件名稱,該文件存放在/etc/pam.d/
userlist_enable=Y(jié)ES 激活vsftpd檢查userlist_file指定用戶是否可以訪問vsftpd服務(wù)器
4. 本機進行測試。在瀏覽器上輸入ftp://localhost或者ftp://127.0.0.1,若搭建成功,則會有相應(yīng)的文件夾,而這文件夾是默認在/var/ftp/下,當然以后你還可以進行修改。另一個方法是可以直接在命令行輸入:
#ftp 127.0.0.1
因為匿名登錄,跳過輸入用戶名和密碼后輸入:
ftp>user anonymous
再次跳過輸入密碼,此時會顯示登錄成功的字樣。
5. 關(guān)閉防火墻。此時去同一網(wǎng)段的主機訪問ftp,會發(fā)現(xiàn)一直鏈接不上。暫時了解到的是現(xiàn)在的linux系統(tǒng)為了更好地控制 IP 信息包過濾和防火墻配置,使用了iptables的東西。首先得關(guān)閉SElinux,該配置文件在/etc/selinux/下:
#vim /etc/selinux/config
找到相應(yīng)語句,將其改成:SELINUX=disabled
重啟之后,如果發(fā)現(xiàn)還不行,則暫時的辦法可以關(guān)閉整個防火墻(不推薦):
#sudo service iptables stop
到了此步則肯定能從別的主機訪問自己搭建的ftp的,只是可能還需要涉及文件夾權(quán)限問題,修改之后就能實現(xiàn)文件上傳下載了。
完畢。
【補充】
若出現(xiàn)vsftpd: refusing to run with writable anonymous root的錯誤,大概是ftp目錄權(quán)限問題,修正方法:
# chown root:root /var/ftp
# chmod 755 /var/ftp