歡迎您光臨本站 註冊首頁

Linux FTP伺服器的搭建講解

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

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 重啟完成

啟用虛擬用戶后本地用戶將無法實現

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

本文出自 「linux之路」 博客,請務必保留此出處http://linuxzoe.blog.51cto.com/3005391/581049


[火星人 ] Linux FTP伺服器的搭建講解已經有501次圍觀

http://coctec.com/docs/linux/show-post-48355.html