vsftpd服務

 

1、vsftpd簡單介紹
vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特點是小巧輕快,安全易用。vsftpd 的名字代表"very secure FTP daemon", 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 服務器設計開發的最開始的時候,高安全性就是一個目標。ftp 是文件服務器,工作於應用層,與平臺無關、而nfs只能在linux之間傳輸數據,vsftpd可在windows與linux之間傳遞數據。ftp是一種比http協議還早的文件傳輸入協議,ftp工作需要兩個端口,一種是命令連接tcp/21,一種是數據連接tcp/20。而數據連接又有兩種模式,分別是主動模式、被動模式。
     PORT(主動)是:客戶端向服務器的FTP21端口發送連接請求,服務器接受連接,建立一條命令鏈接。當需要傳送數據時,客戶端在命令鏈路上用主動命令告訴服務器:“我打開了XX端口,你過來連接我”。於是服務器從20端口向客戶端的XX端口發送連接請求,建立一條數據傳輸鏈路。  
     PASV(被動)是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XX端口,你過來連接我”。於是客戶端向服務器的XX端口發送連接請求,建立一條數據鏈路來傳送數據。
2、賬號介紹
用戶賬號類型:
匿名用戶:—>(ftp)home dir
系統用戶:操作系統存在 ->home dir
虛擬用戶:有賬號和密碼,但賬號不能用於登錄系統,可訪問ftp服務
用戶賬號驗證可用如下方式:file,kerberos,LDAP,mysql,nis
authentication 認證:合法用戶(用戶名/密碼),生物識別(指紋)
authorization  授權:使用那些資源
audition       審計:記錄授權下用戶動作
隨時換認證機制
操作系統爲用戶提供了公共調用PAM(sum)認證框架framework可方便支持n種認證機制
認證需要用的配置文件/etc/pam.d下面,而依賴的庫文件在/lib/security/下面
ftp服務器
WU-ftpd 很早,但模式單一,安全欠佳
proftpd web 功能多時用,對不同用戶有不同權限
vsftpd:very secure功能單一,權限嚴格,最安全,ssl,虛擬用戶
c/s 客戶端
filezilla(linux|windows)
flashfxp 多線程
cuteftp
瀏覽器
linux gftp
命令行
ftp
lftp
linux vsftpd 主要文件清單
  /etc/sbin/vsftpd:服務文件。r/etc/rc.d/init.d/vsftpd
  /etc/vsftpd.conf:配置文件。/etc/vsftpd/vsftpd.conf
  /etc/vsftpd.ftpusers:不能用於ftp登錄的用戶。
  /var/ftp:默認的匿名用戶(anonymous或ftp,無密碼)登錄的目錄。
3、安裝vsftpd服務
  下載地址:http://mirrors.sohu.com
  這裏用yum源安裝
  yum -y install vsftpd
  查看安裝了那些文件
  rpm -ql vsftpd
  啓動vsftpd:
service vsftpd start
查看是否啓動:
netstat -tunlp | grep :21
ll -d /var/ftp
權限信息不能隨便改,改了能登錄,但不能執行操作。
4、配置文件介紹
  anonymous_enable=YES #允許匿名用戶訪問
  local_enable=YES #允許本地用戶訪問,本地用戶id>=500
  write_enable=YES #本地用戶有寫權限
  local_umask=022 #本地用戶創建文件或目錄的掩碼
  connect_from_port_20=YES #開啓20端口
    anon_upload_enable=YES   允許匿名用戶具有上傳
  anon_mkdir_write_enable=YES 允許匿名用戶具有創建目錄
   anon_other_write_enable=yes 匿名用戶刪除文件或重命
   anon_world_readable_only=yes 僅能下載全局可讀的文件 ugo
   chroot_local_user=yes|no 是否鎖定本地所有用戶 ***yes屏蔽本地所有用戶瀏覽其他目錄的權限
    chroot_local_user=no  //屏蔽部分本地用戶瀏覽其他目錄的權限
   chroot_list_enable=yes 鎖定到家目錄 鎖定特定本地用戶 ****
   chroot_list_file=/etc/vsftpd/chroot_list 一行一用戶
    idle_session_timeout=600
  data_connection_timeout=120
  local_max_rate=50000 #本地用戶的最高速率
  anon_max_rate=30000 #匿名用戶的最高速率
    ftpd-banner 歡迎信息
    userlist_enable=yes 文件列表,
    userlist_deny=yes|no yes拒絕 no僅允許列在此文件的表表
    /etc/vsftp/user_list
service httpd start
 netstat -tunlp | grep :443
用tcpdump可在網卡混雜模式下抓包,進行分析,如果是明文傳輸可能抓取到用戶名和密碼不安全,需要啓用ssl功能
   tcpdump -X -i eth0 -nn -p host 172.16.100.1 and tcp port 21
 tcpdump [options] [expression]補包格式
-i 那個接口
-n 不反解主機數字
-nn 地址\端口不反解
-X  tcp是ascii 16進程和ascii
-p 設定網卡混雜模式 是否本機都發來一份非交換網絡,交換機設置竟像模式
-v
ssl與vsftp結合更加安全:
第一步 給自己建CA
cd /etc/pki/CA
 vim ../tls/openssl.cnf
 (umask 077;openssl genrsa 1024>private/cakey.pem)
 openssl req -new -x509 -key private/cakey.pem -out cacert.pem
 mkdir newcerts certs crl
 touch index.txt
 echo 01>serial
 echo 01>crlnumber
第二步 給web證書
 cd /etc/vsftpd/ssl
 mkdir ssl
 cd ssl
 (umask 077;openssl genrsa 1024>ftp.key)
 openssl req -new -key ftp.key -out ftp.csr
 openssl ca -in ftp.csr -out ftp.crt
第三步
編緝/etc/vsftpd/vsftpd.conf
添加如何內容:
ssl_enable=yes
ssl_tlsv1=yes
ssl_sslv2=yes
ssl_sslv3=yes
allow_anon_ssl=No
force_local_data_ssl=yes
force_local_logins_ssl=yes
rsa_cert_file=/etc/vsftpd/ssl/ftp.crt
rsa_private_key_file=/etc/vsftpd/ssl/ftp.key
第四步:驗證
可使用ftp客戶端進行驗證
 
vsftpd與Tcp_wrapper結合
  1.編輯/etc/vsftpd/vsftpd.conf
  tcp_wrapper=yes
  2.編輯/etc/hosts.deny
  vsftpd: 172.16. EXECPT 172.16.23.1
  
  3.效果 172.16網段中只有172.16.23.1能訪問此ftp

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