ftp

FTP:file transfer protocol,監聽於tcp21號端口;工做與應用層web

ftp擁有兩個tcp鏈接
  命令鏈接:一直打開,監聽tcp21號端口
  數據鏈接:按需打開,主動模式監聽於tcp20號端口,被動模式端口隨機
數據傳輸模式:基於源文件的格式傳輸
shell

   

vsftpd
  配置文件目錄:/etc/vsftpd
  服務腳本:/etc/init.d/vsftpd
  主程序:/usr/sbin/vsftpd
  文件目錄:/var/ftp
ftp用戶:
  匿名用戶
  系統用戶
  虛擬用戶
vim

/etc/pam.d/vsftpd:經過PAM模塊實現的身份認證安全

[root@localhost ~]# 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
#deny file=/etc/vsftpd/ftpusers 就是限制哪些用戶不容許使用vsftpd,都在這個文件裏

 /etc/vsftpd/ftpusers:如上,這些用戶不容許用ftp,默認爲系統用戶bash

[root@localhost ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
....
nobody

 /etc/vsftpd/user_list:一樣是限制哪些用戶能夠使用ftp,須要配置主文件中的userlist_deny=[yes|no]服務器

[root@localhost ~]# cat /etc/vsftpd/user_list
root
bin
....
nobody

 /etc/vsftpd/chroot_list:這個文件須要手動創建,意思是在這個文件內的用戶能夠瀏覽其餘用戶家目錄下的內容session

[root@localhost ~]# cat /etc/vsftpd/chroot_list
root
.... admin

 /etc/vsftpd/vsftpd.conf:主配置文件app

[root@localhost pub]# cat /etc/vsftpd/vsftpd.conf 

#與服務器環境相關的設置

connect_from_port_20=YES    #數據鏈接的端口號
listen_port=21          #命令鏈接的端口號
dirmessage_enable=YES      #進入某個目錄時是否顯示歡迎消息,消息文件爲每一個目錄下.message的文件
message_file=.message      #上面一個YES才設置
listen=YES            #能夠用自帶的腳本啓動
pasv_enable=YES          #支持數據鏈接的被動鏈接模式,必定要YES
use_localtime=YES        #使用本地時間
write_enable=YES         #開啓上傳權限
connect_timeout=60        #數據鏈接的主動模式下,發出消息60秒後無答覆,主動斷開
accept_timeout=60        #數據鏈接的被動模式下,發出消息60秒後無答覆,主動斷開
data_connection_timeout=300  #鏈接創建完成後,因爲線路問題,300秒內數據沒法完成傳輸,斷開
idle_session_timeout=600    #用戶無操做超時時間
max_clients=0          #客戶端最大的鏈接數,0不限制
max_per_ip=0           #單個ip的最大鏈接數
pasv_min_port=0         #被動模式的端口,能夠有個區間,主要是爲了防火牆放行 
pasv_max_port=0         #0表明不限制
ftpd_banner=Welcome to blah FTP service.  #歡迎信息
banner_file=文件路徑           #歡迎信息爲文件中的內容

#與本地用戶相關的設置,就是/etc/passwd裏的用戶

guest_enable=YES        #開放這個選項,任何本地帳號都會被假設稱guest
guest_username=ftp       #指定訪客的身份
local_enable=YES        #啓用本地用戶
local_max_rate=0        #本地用戶限速byte/second,0不限速
*chroot_local_user=YES     #是否限制本地用戶在本身家目錄下
*chroot_list_enable=YES     #是否將列表內用戶限制在家目錄,例外用戶
*chroot_list_file=/etc/vsftpd/chroot_list   #列表位置
#這兩個選項是互補的,list_enable的值表明是否對local_user的範圍取反。
#local_user=YES list=YES表明限制本地,不限制列表
#local_user=NO list-YES表明不限制本地,限制列表
#local=YES list=NO表明都限制
#lical=NO list=NO表明都不限制
userlist_enable=YES      #是否限制列表內用戶登錄
userlist_deny=YES       #對此列表是拒絕仍是容許
#這個deny,假如爲YES表明這個文件內的用戶都被限制,假如爲NO表明只有這個文件內的用戶不被限制
userlist_file=/etc/vsftpd/user_list    #列表位置
local_umask=022         #本地用戶建立完文件的umask

#匿名用戶相關設置

anonymous_enable=YES        #啓用匿名用戶
anon_world_readable_only=YES   #僅語序匿名用戶具備下載可讀文件的權限,默認YES
anon_other_write_enable=NO    #是否容許匿名用戶刪除文件
anon_mkdir_write_enable=YES    是否容許匿名用戶建立目錄
anon_upload_enable=NO       #是否容許匿名用戶上傳文件,容許的話上面是YES
deny_email_enable=YES      #阻擋特殊的郵件地址
banned_email_file=/etc/vsftpd/banned_emails  #拒絕郵件地址文件,一行一個郵件地址
no_anon_password=NO       #是否不檢查匿名用戶密碼,不檢查的話上面過濾郵件就沒用了
anon_max_rate=0         #匿名用戶限速,bytes/秒
anon_umask=077          #匿名用戶的umask

#系統安全設置

ascii_upload_enable=YES      #使用ASCII格式上傳文件
ascii_download_enable=YES     #使用ASCII格式下載文件
one_process_model=NO       #每創建一個鏈接都使用一個進程,耗資源
tcp_wrappers=YES          #支持tcp_wrappers
xferlog_enable=YES         #記錄用戶的操做記錄,記錄到下面的文件
xferlog_file=/var/log/vsftpd.log  #日誌文件記錄於哪裏
xferlog_std_format=YES       #日誌文件的格式
chown_uploads=YES          #用戶上傳完文件,全部者更改
chown_username=用戶名        #更改成誰

 /etc/vsftpd/user_list和/etc/vsftpd/ftpusers並不衝突,ftpusers是pam模塊決定的不能登陸的用戶,user_list能夠決定哪些用戶能夠登陸,靠的就是主配置文件中的userlist_deny這個選項,若是是YES就是拒絕表裏的用戶NO就是容許表裏的用戶tcp

 

新建個ftp服務器,能夠使用匿名用戶登陸,可是隻能下載文件,一個本地管理員登陸時不被限制,其餘本地帳號被限制在本身家目錄測試

[root@localhost vsftpd]# vim vsftpd.conf
anonymous_enable=YES             #啓用匿名
anon_world_readable_only=YES     #匿名只能下載可讀的文件
local_enable=YES          #啓用本地
write_enable=YES          #本地用戶能夠上傳
xferlog_enable=YES               #能夠用軟件分析的log
xferlog_file=/var/log/vsftpd.log #存放路徑
dual_log_enable=YES              #同時生成ftp本身的log
vsftpd_log_file=/var/log/vsftpd.log #存放路徑
connect_from_port_20=YES          #端口
xferlog_std_format=YES           #xferlog格式
pam_service_name=vsftpd          #pam
tcp_wrappers=YES          #tcpwapper

allow_writeable_chroot=YES       #鎖定家目錄以後在登陸老是出錯,加上這個
chroot_local_user=YES            #鎖定家目錄
chroot_list_enable=YES           #不鎖定家目錄的名單
chroot_list_file=/etc/vsftpd/chroot_list #名單位置

userlist_enable=YES              #用戶列表
userlist_deny=NO                 #只有這個列表的用戶才能夠登陸
userlist_file=/etc/vsftpd/user_list  #列表位置

 user_list列表

[root@localhost vsftpd]# cat user_list
anonymous   #假如這個列表對應的選項是NO,匿名用戶就沒法登陸了,因此把匿名用戶加在這裏面
admin    #下面這兩個用戶均可以登陸    
aaa
    

 chroot_list列表

[root@localhost vsftpd]# cat chroot_list
aaa            #根據上面的選項,這個文件表明哪一個用戶不限制在家目錄

 經測試,其餘人都不能夠登陸,匿名用戶和admin用戶都在限制在家目錄,匿名用戶沒法上傳文件。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息