到現(xiàn)在為止,一個基本可以滿足普通使用需求的FTP服務(wù)器就已經(jīng)架設(shè)完成。
在實際應(yīng)用中,有時為了增加安全性,會將FTP服務(wù)器置于防火墻之后。如本文開頭所述,被動傳輸模式適合于帶有防火墻的情況。下面就來創(chuàng)建一個防火墻后的FTP服務(wù)器,該服務(wù)器FTP端口為2121,數(shù)據(jù)傳輸端口為2020。
執(zhí)行以下兩行指令,只允許2121和2020端口打開,其余端口關(guān)閉:
#iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT
#iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset |
修改/etc/vsftpd/vsftpd.conf文件,在文本最后添加以下兩行:
listen_port=2121
ftp_data_port=2020 |
重新啟動vsftpd:
#service vsftpd restart
有時希望直接在/etc/hosts.allow中定義允許或拒絕某一源地址,可以通過以下配置來實現(xiàn)。先確保/etc/vsftpd/vsftpd.conf中tcp_wrappers=YES,Red Hat 9.0中,這是默認值。重新啟動vsftpd
#service vsftpd restart
假設(shè)提供168.192.2.1和210.31.8.1到210.31.8.254的連接,則可對/etc/hosts.allow進行如下設(shè)定:
vsftpd : 168.192.2.1 210.31.8. : allow
ALL : ALL : DENY |
配置虛擬用戶FTP
上面配置的FTP服務(wù)器有一個特點,就是FTP服務(wù)器的用戶本身也是系統(tǒng)用戶。這顯然是一個安全隱患,因為這些用戶不僅能夠訪問FTP,也能夠訪問其它的系統(tǒng)資源。如何解決這個問題呢?答案就是創(chuàng)建一個虛擬用戶的FTP服務(wù)器。虛擬用戶的特點是只能訪問服務(wù)器為其提供的FTP服務(wù),而不能訪問系統(tǒng)的其它資源。所以,如果想讓用戶對FTP服務(wù)器站內(nèi)具有寫權(quán)限,但又不允許訪問系統(tǒng)其它資源,可以使用虛擬用戶來提高系統(tǒng)的安全性。
在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,并且配置更加靈活。
下面介紹配置過程。
1.生成虛擬用戶口令庫文件。為了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數(shù)行為用戶名,偶數(shù)行為口令:
#vi account.txt
ylg
1234
zhanghong
4321
gou
5678 |
2.生成口令庫文件,并修改其權(quán)限:
#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db |
3.新建一個虛擬用戶的PAM文件。加上如下兩行內(nèi)容:
#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account |
4.建立虛擬用戶,設(shè)置該用戶所要訪問的目錄,并設(shè)置虛擬用戶訪問的權(quán)限:
#useradd -d /ftpsite virtual_user
#chmod 700 /ftpsite |
經(jīng)過該步驟的設(shè)置,/ftpsite就是virtual_user用戶的主目錄,該用戶也是/ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執(zhí)行的權(quán)限。
5.生成一個測試文件。先切換至virtual_user用戶身份,然后在/ftpsite目錄下創(chuàng)建一個文件:
#su -virtual_user
$vi /ftpsite/mytest
This is a test file.
$su - root |
6.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內(nèi)容如下所示(去掉了注釋內(nèi)容):
anonymous_enable=NO
local_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu |
本新聞共
5頁,當(dāng)前在第
4頁
1 2 3 4 5