羅彩君
(陜西職業技術學院計算機科學系,陜西西安710100)
Linux是一個強大的網絡操作系統,具有安全、穩定、可靠等特點。Linux作為一種操作系統正在擁有越來越多的用戶,也逐漸被應用于更多的領域。隨著互聯網和計算機技術的迅猛發展,Linux在服務器領域已成為最廣泛的應用,安全和快捷的優點使其優于其它的網絡操作系統。FTP服務器在網絡應用中有著非常重要的地位,各種各樣的網絡資源大多數都放在FTP服務器中,FTP服務器能實現文件的上傳、下載,設置不同的用戶訪問權限,支持大文件的斷點續傳、多部分文件傳輸等功能[1]。在Linux操作系統中使用FTP服務器能有效地利用網絡資源,提高工作效率。
FTP是文件傳輸協議,在Internet上存在許多FTP服務器,系統管理員可以在服務器中存放大量的共享軟件和免費資源,如文本文件、圖像文件、程序文件、聲音文件和電影文件等,網絡用戶可以從服務器中下載文件,或者將客戶端上的資源上傳到服務器上。與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到主機上的FTP服務器程序,用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶發出的命令,并將執行結果返回給客戶機[2]。
FTP服務器在網絡上提供了一個中心位置,可供網絡上的客戶端存儲文件并通過網絡與其他客戶端共享文件。當某個客戶端更需要重要文件時,就可以訪問文件服務器上的文件,而不必在各自獨立的計算機之間傳送文件。如果客戶端需要訪問相同的文件和通過網絡訪問相應的應用程序,就要將該計算機配置為文件服務器[3]。
Linux系統中的FTP服務器軟件有多種,其中比較流行的有Wu-ftpd和vsftpd,vsftpd具有小巧輕快,安全易用等特點,成為了Linux系統中最受推崇的FTP服務器程序[4]。現以vsftpd為例,對FTP服務器進行配置。
1)檢測vsftpd服務器是否已經安裝
在使用或安裝vsftpd服務器之前,先要檢查在當前系統中是否已經安裝了該服務,通常情況下,如果在安裝Linux系統時選擇了安裝FTP服務,則當安裝完Linux以后,vsftpd服務器也安裝好了。如果沒有安裝該服務器,則可安裝系統自帶的vsftpd-1.1.3-8.i386.rpm軟件包。
檢查vsftpd是否安裝的命令如下:
#rpm-q vsftpd
如果顯示了相應服務的版本,則說明該服務已經安裝,否則需要進行安裝。
2)安裝vsftpd服務器
若系統沒安裝vsftpd服務,則可用下面的命令進行安裝。
#rpm-ivh/mnt/cdrom/RdeHat/RPMS/vsftpd-1.1.3.i386.rpm
3)配置vsftpd服務器
對vsftpd的配置,通過vsftpd.conf配置文件來完成,vsftpd守護進程運行時首先從vsftpd.conf文件獲取配置文件的信息,然后配合ftpusers和user_list文件決定可訪問的用戶。默認情況下,vsftpd服務器中本地用戶和匿名用戶都可以登錄。本地用戶默認進入其個人主目錄,并可切換到其他有權訪問的目錄,還可上傳和下載文件,匿名用戶只能下載/var/ftp/目錄下的文件[5]。
4)啟動vsftpd服務器
vsftpd安裝后,該服務并沒有啟動,要啟動vsftpd服務器,在終端命令窗口運行如下命令:
#/etc/rc.d/init.d/vsftpd start?
5)測試vsftpd服務器
vsftpd服務器安裝并啟動服務后,使用默認配置就可以正常工作。vsftpd默認的匿名用戶賬戶為ftp,密碼為ftp。默認情況下,vsftpd允許用戶匿名登錄,登錄后所在的FTP站點根目錄為/var/ftp。如果FTP登錄成功,則會出現FTP的命令行提示符ftp>,在命令行中,輸入FTP命令就可實現相應的操作。
實際應用中,利用vsftpd構建一個滿足用戶要求的FTP服務器,常需要進行用戶身份驗證、用戶權限、空間管理等安全設置。
1)更改FTP服務器的默認端口
為了使服務器更加安全,可更改FTP服務器的默認端口,將預設的21端口改為2121[6]。使用vi編輯器打開/etc/vsftpd/vsftpd.conf文件,命令如下:
#vi/etc/vsftpd/vsftpd.conf
在文件最后增加如下一行內容:
listen_port=2121
2)取消匿名用戶登錄的權限
在vsftpd.conf文件中找到語句“anonymous_enable=YES”,將其值改為“NO”,語句修改如下:
anonymous_enable=NO
3)允許本地用戶登錄
打開/etc/vsftpd/vsftpd.conf文件,進行如下設置:
local_enable=YES
4)設定本地用戶lily、ray不得更改目錄
打開/etc/vsftpd/vsftpd.conf文件,找到相應的語句,進行如下修改:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
編輯文件/etc/vsftpd/chroot_list,加入兩個用戶名:“lily”和“ray”。
5)限制vsftpd服務器鏈接數,以及每個IP最大的鏈接數
打開/etc/vsftpd/vsftpd.conf文件,在文件中增加以下兩行語句:
max_clients=100
max_per_ip=10
6)限制本地用戶下載的速度
打開/etc/vsftpd/vsftpd.conf文件,在文件中增加以下一行語句:
local_max_rate=60000
7)對于每一個聯機用戶都以獨立的進程來運行
打開/etc/vsftpd/vsftpd.conf文件,在文件中增加以下一行語句:
setproctitle_enable=YES
FTP服務器的應用非常廣泛,下面通過一個具體例子實現FTP服務器的構建和應用。
某公司需要建立一臺FTP服務器存放公司相關資源,具體要求為:公司FTP服務器為ftp.hakt.edu.cn,IP地址為192.168.8.8,對外訪問端口為21;用戶heven及hakt等核心賬戶設置為認證用戶,認證口令設為864635;開發匿名用戶登錄及上傳權限,對內部資源只允許內部IP端192.168.8.*的計算機下載,本地用戶heven只能訪問自己的主目錄;禁止本地用戶hakt登錄服務器。
要建立上述FTP服務器,需要對vsftpd進行配置,具體步驟如下:
1)指定IP地址
指定192.168.8.*網絡的IP地址才能訪問FTP服務器。用文本編輯器打開/etc/hosts.allow文件,在文件中加入如下語句:
vsftpd:192.168.8.*:allow
用文本編輯器打開/etc/hosts/hosts.deny文件,在文件中加入如下語句:
vsftpd:ALL:DENY
2)設置匿名用戶的權限
用文本編輯器打開/etc/vsftpd/vsftpd.conf文件進行編輯,設置允許匿名用戶登錄,匿名用戶可在/var/ftp/pub目錄中新建目錄、上傳和下載文件,代碼如下:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
connect_from_port_20=YES
listen=YES
tcp_wrappers=YES
修改/var/ftp/pub目錄的權限,允許其他用戶寫入文件,其修改命令如下:
#cd/var/ftp
#chmod 777 pub
#ls-1
顯示結果如下:
drwxrwxrwx 2 root root 4096 2012-12-10
輸入“service vsftpd restart”命令,重啟vsftpd服務。
3)指定本地用戶heven只能登錄主目錄
打開/etc/vsftpd/vsftpd.conf文件進行修改,其修改代碼如下:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
創建FTP用戶組,其命令如下:
#groupadd ftpgroup
增加FTP用戶,其命令如下:
#useradd-g ftpgroup-d/dir/to-Mheven
設置用戶口令,輸入密碼“864635”其命令如下:
#passwd heven
打開并編輯/etc/vsftpd.chroot_list文件,加入用戶“heven”。
輸入“service vsftpd restart”命令,重新啟動vsftpd服務器。
4)禁止本地用戶hakt登錄FTP服務器
編輯/etc/vsftpd/ftpusers文件,將禁止登錄的用戶名“hakt”寫入ftpusers文件中,編輯/etc/vsftpd/user_list文件,將禁止登錄的用戶名“hakt”寫入user_list文件中,修改/etc/vsftpd/vsftpd.conf文件,設置“userlist_enable=YES”和“userlist_deny=YES”,使用戶“hakt”不能訪問FTP服務器。
5)測試已建立的FTP服務器
在終端的命令提示符后輸入如下命令,啟動ftp命令工具。
#ftp ftp.hakt.edu.cn 21
輸入匿名用戶“anonymous”,出現“ftp>”提示符,在“ftp>”提示符后輸入get s1.xt命令,即可從FTP服務器上下載s1文件到本地盤中。
FTP服務器作為Internet最古老的服務之一,無論在過去還是現在都有著不可替代的作用。Internet上很多文件的共享都是采用FTP來完成。在Linux環境下利用vsftpd構建FTP服務器具有安全、快捷、穩定的優點,一直受到廣大用戶的好評。FTP服務器還在繼續發展,并且發展得比以往任何時候都要強大。
[1] 李賀華.Linux操作系統應用與安全[M].北京:中國水利水電出版社,2010.
[2] 胡耀民,厲偉.Linux系統及網絡管理[M].北京:人民郵電出版社,2012.
[3] 陳倩.嵌入式FTP服務器的設計與實現[J].電子元器件應用,2010,12(3):36-38.CHEN Qian.Design and Implementation of the embedded FTP server[J].Electronic Component&Device Applications,2010,12(3):36-38.
[4] 歐軍,吳清秀,白曉波.基于Linux的vsFTPd服務的構建[J].信息與電腦,2011(5):101-102.OU Jun,WU Qing-xiu,BAI Xiao-bo.The building of vsFTPD service based on linux[J].China Computer&Communication,2011(5):101-102.
[5] 彭潁,王方.基于LINUX的VSFTPD服務的實現[J].信息系統工程,2010(10):99-101.PENG Yin,WANG Fang.Implementation of the VSFTPD service based on LINUX[J].Information System Engineering,2011(5):99-101.
[6] 汪華.淺析Linux系統FTP服務器的安全問題[J].網絡與信息,2012(2):51.WANG Hua.Analysis of the security issues of the FTP server in Linux system[J].Network&Information,2012(2):51.