1. 程式人生 > >vsftpd在Suse(Enterprise Linux 10)上的安裝及配置

vsftpd在Suse(Enterprise Linux 10)上的安裝及配置

        這兩天在Suse上安裝和配置FTP時,遇到不少問題,這裡做一下總結:
        一、安裝
        Suse的圖形使用者介面做的很不錯,所以安裝過程也比較簡單。
        1、開啟Yast,Software→Software Management;
        2、剛開始使用Suse的軟體管理器非常的不習慣,找不到所需的資訊在什麼地方,可是用了一段時間之後,就感覺它的分類方式更加方便,也為使用者提供了更多的資訊。在Filter→Package Groups,在下面的樹形列表中Productivity→Networking→Ftp,也可以展開Ftp節點,選擇其中的Servers節點;
       3、在左側的軟體包列表中選擇vsftpd,然後點選下方的Accept按鈕,會提示插入光碟;
       4、插入所需的光碟後,系統會自動開始安裝,安裝完畢,可以在下面的File List選項頁中檢視vsftpd相關的所有檔案。
        二、啟動服務


        安裝完成後,vsftpd是作為一個獨立的服務啟動,不接受xinetd的管理。系統會自動在Service列表中新增名稱vsftpd的服務。啟動服務的步驟如下:
        1、Yast→System→System Services(Run level);
        2、在服務列表中選擇vsftpd,點選下方的Enable按鈕,啟動服務,Finish。
        注意,在啟動vsftpd時可能會不能啟動,有時是因為它所依賴的服務沒有啟動,如syslog,這時選中syslog,點選Enable按鈕。如果還是不能啟動,可以重新啟動xinetd服務,然後再啟動vsftpd服務。
        三、遇到的問題

        1、只允許匿名使用者登入
        現象:ftp連線過程中,提示輸入使用者名稱,輸入本機已有使用者名稱angel,得到提示:530 This FTP server is anonymous only,登入失敗。
        原因:安裝vsftpd後,其預設為匿名FTP伺服器,只允許匿名使用者登入。
        解決方法:vsftpd有三種伺服器方式:匿名方式、本地方式和虛擬使用者方式,此處需要修改vsftpd的配置將其設為本地方式。vsftpd的配置檔案位於/etc/目錄下,名稱為vsftpd.conf。關於該配置檔案在網上已經有很多高手做了詳細的分析和講解,並且該檔案內部的註釋也比較詳細,這裡就不再一一講解了。下面只說明幾處需要修改的地方:
        將local_enable=YES前的#去掉,使其可用,表示允許本地使用者登入;
        增加listen_port=21配置項,設定監聽埠為21;
        該步驟可選,不允許匿名使用者登入,將anonymous_enable=YES的值改為NO,根據實際需要設定。
        重啟vsftpd服務:service vsftpd restart。啟動後,在進行測試,使用本地使用者angel及其密碼登入,成功。
        注意:以上測試是在本機(或使用SSH登入後)進行。
        2、其他機器不能連線該伺服器

        現象:本機測試通過後,在其他機器(Windows或Redhat)上使用ftp 192.168.1.8連線該伺服器,得到Connection closed by remote host或Connection timed out提示資訊,連線失敗。
        原因:Suse的防火牆阻止了外來機器對FTP所用的埠的訪問。
        解決方法:放開防火牆對FTP所使用的20和21埠的限制,步驟如下:
        i> Yast→Security and Users→Firewall;
        ii> 在左側的列表中選擇Allowed Services,令人感到以外的是,即使安裝FTP伺服器,在Servces to Allow列表中也沒有FTP服務可供選擇,但是SSH、HTTP、HTTPS、Samba等都赫然在列,所以要使用高階設定。點選右下方法的Advanced按鈕,開啟高階設定對話方塊;
        iii> 在TCP Ports中輸入20 21,注意兩個埠號之間使用空格分開,OK;
        iv> Next→Accept,重新測試,連線成功,使用Suse系統中已有的angel及其密碼登入,成功。

        注意,雖然這裡有些問題是在Suse下遇到,但是在其他作業系統中的vsftpd的配置中依然適用。