Linux FTP服務器的搭建講解

                                             FTP服務器的建立

Packagesvsftpd.i386

Daemon:vsftp(/usr/sbin/vsftpd)

Script:/etc/init.d/vsftpd

ports:21/tcp(ftp),20/tcp(ftp-data)

Configuration:

/etc/vsftpd/vsftpd.conf

/etc/vsftpd/ftpusers

/etc/pam.d/vsftpd


在Linux中,有好幾種實現ftp服務器的軟件,我們這裏使用redhat自帶的vsftp,它具有安全,輕量級的特性。

我們安裝vsftpd包後開啓服務,ftp即可訪問:

yum –y install vsftpd.i386

service vsftpd start

啓動服務我們就可以直接訪問ftp服務器了

ftp的根目錄位於/var/ftp/我們可以在這裏建立目錄

使用本地用戶登錄時,登錄到得目錄是用戶的家目錄

比如lftp –u zoe 192.168.0.3

登錄後顯示的就是/home/zoe目錄中的內容

 

在這裏我們主要介紹三方面內容:

1     ftp的各種配置(通過配置文件)

2     基於ssl的安全ftp

3     關於ftp虛擬用戶的建立

 

我們先認識一下vsftp的主配置文件/etc/vsftpd/vsftpd.conf

anonymous_enable=YES 是否允許用戶匿名登錄

local_enable=YES        是否允許本地用戶登錄

anon_upload_enable=YES允許用戶上傳文件

anon_mkdir_write_enable=YES允許上傳目錄

anon_other_write_enable=YES匿名用戶刪除文件的權限

dirmessage_enable=YES用戶訪問某個目錄是是否顯示歡迎信息

message_file=.message在用戶家目錄下建立一個.message文件,裏面寫上歡迎信息

xferlog_enable=YES 打開傳輸日誌

xferlog_file=/var/log/vsftpd 開啓傳輸日誌,定義位置

chown_loads=YES文件上傳後是否把屬主改成別的用戶

chown_username=whoever 把屬主改成誰的

idle_session_timeout=600空閒會話超時時間

data_connection_timeout=120下載超時時間

ascii_upload_enable=YES是否打開基於ascii的傳輸,一般不建議打開

ftpd_banner=Welcome to blah FTP service 歡迎信息

chroot_local_user=YES將用戶鎖定到家目錄下

如果不使用此項,用戶登錄後可以cdftp服務器所在主機的任一目錄進行查看

chroot_list_enable=YES 將下行定義的列表中的用戶鎖定只能訪問其家目錄

chroot_list_file=/etc/vsftpd/chroot_list 定義列表文件位置

chroot_local_user=YES鎖定所有

ls_recurse_enable=YES使用ls命令時是否使用遞歸顯示

listen=YES     listen是否是獨立守護

pam_service_name=vsftpd用戶登錄模式的驗證方法定義文件

userlist_enable=YES 使用 user_list定義次文件中的用戶可以登錄

userlist_deny=N0 表示僅允許user_list文件中的用戶登錄

或者是 userlist_deny=YES 表示僅拒絕user_list文件中的用戶登錄

默認爲拒絕

tcp_wrappers=YESftp是否接受tcp_wrapper的控制

 

定義在/etc/vsftpd/ftpusers中的用戶都似乎不允許登錄ftp

 

參照上列信息,我們可以更改配置文件以使ftp服務器達到我們的要求,這裏就不再舉例,就說一下幾個ftp命令:

Lftp –u fedora 192.168.0.3  使用哪個用戶身份登錄

ftp>put issue                 上傳issue文件

 

我們要匿名用戶上傳文件,則需要目錄爲ftp:ftp屬主屬組

爲了安全,我們這樣做

mkdir /var/ftp/upload

chown ftp:ftp /var/ftp/upload

上傳文件時cd到該目錄即可

lftp 192.168.48.3

>cd /upload

>lcd /etc

>put issue

>bye

 

我們需要關閉selinux,才能使用戶上傳文件等,那麼,我們可以可以不關閉selinux實現用戶上傳等功能呢?當然是可以的,我們主需要更改selinux策略中的選項以支持用戶上傳。

getsebool -a 顯示當前主機上所有策略支持的布爾類型的值

進行一些修改:

setsebool allow_ftpd_anon_write=1      僅對當前系統生效

或者是 setsebool -P allow_ftpd_anon_write=1    直接修改了策略庫中的值,永久生效

cd /var/ftp/

ll -Z

chcon -t public_content_rw_t upload/   爲該目錄添加讀寫權限

這樣selinux就支持了ftp的此項功能

 

-------------------------------------------SSL

 

我們登錄ftp時的密碼都是明文登錄的,這樣極不安全,所以我們可以使用基於sslftp登錄傳輸方式。

首先我們要爲ftp簽署證書;再在配置文件中添加下列內容

# SSL

ssl_enable=YES     啓用ssl

ssl_tlsv1=YES       啓用tls v1版本

ssl_sslv2=YES       啓用ssl v2版本

ssl_sslv3=YES

allow_anon_data_ssl=NO 匿名用戶一般不需要

force_local_data_ssl=YES本地用戶傳輸時是否使用ssl

force_local_logins_ssl=YES本地用戶登錄時是否使用ssl

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt   證書路徑

rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key私鑰路徑

 

然後使用window端的ftp軟件進行測試,例如Flashfxp

在登錄過程中,我們可以捕獲數據包進行分析,看使用ssl前後的登錄過程中,密碼有否被加密。

捕獲數據的簡單方法:tcpdump -i eth0 A dst host 192.168.0.3

在哪個主機上執行此命令都可以,要注意網卡是否選對。

tcpdump -D    顯示網卡列表

tcpdump -i eth0      指定監聽的網卡

A            以純文本顯示首部信息

dst host IP      目標地址IP

src host IP      源地址IP

 

-------------------------------------------------虛擬用戶的建立實例:

1 建立虛擬FTP用戶的賬號數據庫文件

2 創建FTP根目錄及虛擬用戶映射的系統用戶

3 建立支持虛擬用戶的PAM認證文件

4 vsftpd.cong文件中添加支持配置

5 在個別虛擬用戶建立獨立的配置文件以實現權限訪問

6 重啓vsftpd服務

1

vim /etc/vsftpd/vusers.list

+>gentoo

+>123

+>fedora

+>456

yum -y install  db4-utils 安裝db工具軟件包

db_load -T -t hash -f vusers.txt vuser.db 將此文件轉換成二進制

chown 600 vusers.list

2

mkdir /var/ftproot

useradd -d /var/ftproot -s /sbin/nologin vuser不允許登錄系統爲了安全

chmod 755 /var/ftproot/

chown vuser:vuser /vat/ftproot

3

vim /etc/pam.d/vsftpd.vuser

+>auth required pam_userdb.so db=/etc/vsftpd/vusers

+>account required pam_userdb.so db=/etc/vsftpd/vumsers

定義認證時使用哪一個模塊到哪裏找用戶的賬號

4

vim /etc/vsftpd/vsftpd.conf

+>guest_enable=YES    是否啓用是否啓用來賓賬號和虛擬用戶

+>guest_username=vuser      虛擬用戶的用戶名是什麼

+>pam_service_name=vsftpd.vuser 定義我們剛纔建立的vsftpd.vuser文件

5

vim /etc/vsftpd/vsftpd.conf

+>user_config_dir=/etc/vsftpd/userconfig

mkdir /etc/vsftpd/userconfig

cd /etc/vsftpd/userconfig

vim fedora

+>anon_upload_enable=NO

+>anon_mkdir_write_enable=YES

禁止fedora用戶傳文件,允許建立目錄

6

service vsftpd restart 重啓完成

啓用虛擬用戶後本地用戶將無法實現

以後我們會將兩者兼用的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章