linux vsftpd安裝以及配置文件描述

 一。介紹linux

FTP兩種模式的區別:1)PORT(主動)模式
所謂主動模式,指的是FTP服務器「主動」去鏈接客戶端的數據端口來傳輸數據,其過程具體來講就是:客戶端從一個任意的非特權端口N(N>1024)鏈接到FTP服務器的命令端口(即tcp 21端口),緊接着客戶端開始
監聽端口N+1,併發送FTP命令「port N+1」到FTP服務器。而後服務器會從它本身的數據端口(20)「主動」鏈接到客戶端指定的數據端口(N+1),這樣客戶端就能夠和ftp服務器創建數據傳輸通道了。
(2)PASV(被動)模式
所謂被動模式,指的是FTP服務器「被動」等待客戶端來鏈接本身的數據端口,其過程具體是:當開啓一個FTP鏈接時,客戶端打開兩個任意的非特權本地端口(N >1024和N+1)。第一個端口鏈接服務器的21端口,但與
主動方式的FTP不一樣,客戶端不會提交PORT命令並容許服務器來回連它的數據端口,而是提交PASV命令。這樣作的結果是服務器會開啓一個任意的非特權端口(P > 1024),併發送PORT P命令給客戶端。而後客戶端
發起從本
地端口N+1到服務器的端口P的鏈接用來傳送數據。(注意此模式下的FTP服務器不須要開啓tcp 20端口了)

兩種模式的比較:1)PORT(主動)模式模式只要開啓服務器的21和20端口,而PASV(被動)模式須要開啓服務器大於1024全部tcp端口和21端口。
(2)從網絡安全的角度來看的話彷佛ftp PORT模式更安全,而ftp PASV更不安全,那麼爲何RFC要在ftp PORT基礎再製定一個ftp PASV模式呢?其實RFC制定ftp PASV模式的主要目的是爲了數據傳輸安全角度
出發的,由於ftp port使用固定20端口進行傳輸數據,那麼做爲黑客很容使用sniffer等探嗅器抓取ftp數據,這樣一來經過ftp PORT模式傳輸數據很容易被黑客竊取,所以使用PASV方式來架設ftp server是最安
全絕佳方案。
所以:若是隻是簡單的爲了文件共享,徹底能夠禁用PASV模式,解除開放大量端口的威脅,同時也爲防火牆的設置帶來便利。 不幸的是,FTP工具或者瀏覽器默認使用的都是PASV模式鏈接FTP服務器,所以,必需要使vsftpd在開啓了防火牆的狀況下,也可以支持PASV模式進行數據訪問。

 

二。安裝與啓動命令:shell

yum -y install vsftpd            #安裝

/etc/init.d/vsftpd start         #contos 6.5啓動
systemctl start   vsftpd         #contos 7啓動

service vsftpd restart           #contos 6.5重啓
systemctl restart   vsftpd       #contos 7重啓

service vsftpd stop              #contos 6.5中止
systemctl  stop   vsftpd         #contos 7中止

chkconfig vsftpd on              #contos 6.5設置開機時自動運行
systemctl enable vsftpd.service  #contos 7設置開機時自動運行

 

 

三。配置vsftp服務器:數據庫

配置文件說明: /etc/vsftpd/vsftpd.conf              # vsftpd的核心配置文件
   /etc/vsftpd/ftpusers                 #用於指定哪些用戶不能訪問FTP服務器
   /etc/vsftpd/user_list                #指定容許使用vsftpd的用戶列表文件
   /etc/vsftpd/vsftpd_conf_migrate.sh   #是vsftpd操做的一些變量和設置腳本
   /var/ftp/                            #默認狀況下匿名用戶的根目錄


1.配置vsftpd.conf
# 是否容許匿名登陸FTP服務器,默認設置爲YES容許
# 用戶可以使用用戶名ftp或anonymous進行ftp登陸,口令爲用戶的E-mail地址。
# 如不容許匿名訪問則設置爲NO
anonymous_enable=NO
# 是否容許本地用戶(即linux系統中的用戶賬號)登陸FTP服務器,默認設置爲YES容許
# 本地用戶登陸後會進入用戶主目錄,而匿名用戶登陸後進入匿名用戶的下載目錄/var/ftp/pub
# 若只容許匿名用戶訪問,前面加上#註釋掉便可阻止本地用戶訪問FTP服務器
local_enable=YES
# 是否容許本地用戶對FTP服務器文件具備寫權限,默認設置爲YES容許
write_enable=YES
# 掩碼,本地用戶默認掩碼爲077
# 你能夠設置本地用戶的文件掩碼爲缺省022,也可根據我的喜愛將其設置爲其餘值
local_umask=022
# 是否激活目錄歡迎信息功能
# 當用戶用CMD模式首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息
# 默認狀況下,歡迎信息是經過該目錄下的.message文件得到的
# 此文件保存自定義的歡迎信息,由用戶本身創建
dirmessage_enable=YES
# 代表FTP服務器記錄上傳下載的狀況
xferlog_enable=YES
# 代表將記錄的上傳下載狀況寫在xferlog_file所指定的文件中,即xferlog_file選項指定的文件中
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 啓用雙份日誌。在用xferlog文件記錄服務器上傳下載狀況的同時,
# vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也將用來記錄服務器的傳輸狀況
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
# 設定 FTP 服務器將啓用 FTP 數據端口的鏈接請求 ,ftp-data 數據傳輸 ,21 爲鏈接控制端口 
connect_from_port_20=NO
#開啓被動模式
pasv_enable=YES
#被動模式最低端口
pasv_min_port=12000
#被動模式最高端口
pasv_max_port=15000
pasv_promiscuous=YES
pasv_addr_resolve=YES
pasv_address=59.151.37.141   (外網地址)
# 設定是否容許 改變 上傳文件的屬主 
chown_uploads=NO
#若是設置爲 YES , 則 vsftpd 將以獨立模式運行,由vsftpd本身監聽和處理鏈接請求
listen=YES

guest_enable=YES
guest_username=ftproot
user_config_dir=/etc/vsftpd/vuser_conf

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

ascii_upload_enable=YES
ascii_download_enable=YES
[root@pt-158 ~]# 
/etc/vsftpd/vsftpd.conf

2.先創建虛擬用戶名單文件:瀏覽器

touch /etc/vsftpd/account.txt
編輯虛擬用戶名單文件:(第一行帳號,第二行密碼,注意:不能使用root作用戶名,系統保留)
vi /etc/vsftpd/account.txt
test01
test02
user01
user02
/etc/vsftpd/account.txt

3.生成虛擬用戶數據文件:安全

db_load  -T  -t  hash   -f   /etc/vsftpd/account.txt   /etc/vsftpd/account.db
chmod 600 /etc/vsftpd/account.db  #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取
/etc/vsftpd/account.db

4.在/etc/pam.d/vsftpd的文件頭部加入如下信息(在後面加入無效):服務器

[root@pt-158 vsftpd]# cat /etc/pam.d/vsftpd
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/account
account required    /lib64/security/pam_userdb.so db=/etc/vsftpd/account
[root@pt-158 vsftpd]# 
/etc/pam.d/vsftpd

5.新建一個系統用戶vsftpd,用戶家目錄爲/data1/ftphome/ftproot, 用戶登陸終端設爲/bin/false(即便之不能登陸系統):網絡

 useradd vsftpd -d /data1/ftphome/ftproot -s /bin/false
 chown vsftpd:vsftpd /data1/ftphome/ftproot -R
/etc/pam.d/vsftpd

6.創建虛擬用戶我的Vsftp的配置文件:session

mkdir /etc/vsftpd/vuser_conf

[root@pt-158 vuser_conf]# cat test01 
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/data1/ftphome/ftproot

[root@pt-158 vuser_conf]# cat user01 
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/data1/ftphome/ftproot

[root@pt-158 vuser_conf]# 
/etc/vsftpd/vuser_conf

7.配置防火牆:併發

59.151.37.141物理機防禦牆添加,關閉192.168.7.158虛擬機的防火牆:

-A PREROUTING   -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.7.158:21
-A PREROUTING   -p tcp --dport 12000:15000 -j DNAT --to 192.168.7.158:12000-15000
示例

8.最後重啓vsftpd服務器:app

systemctl restart   vsftpd
相關文章
相關標籤/搜索