天天看點

vsftpd服務

1.什麼是vsftpd服務

        vsftpd 的名字代表"very secure FTP daemon", 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 伺服器設計開發的最開始的時候,高安全性就是一個目标。

        一個例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是為程式(這裡就是 vsftpd 了)單獨指定一個新的目錄,它也就不能通路那個目錄之外的程式和檔案了 --- 是以這也稱為“被鎖上的”。一個可能被潛在的攻擊者破壞的 FTP 伺服器将被從系統的其他部分獨立開來,進而避免了更大的損失。

2.什麼是ftp

    FTP Transfer Protocol 件傳輸協定的縮寫,在RFC 959中具體說明。

    FTP會話時包含了兩個通道,一個叫控制通道,一個叫資料通道。

    控制通道:控制通道是和FTP伺服器進行溝通的通道,連接配接FTP,發送FTP指令都是通過控制通道來完成的。

    資料通道:資料通道是和FTP伺服器進行檔案傳輸或者清單的通道。

FTP協定中,控制連接配接均有用戶端發起,而資料連接配接有兩種工作方式:PORT方式和PASV方式

    PORT模式(主動方式)

    FTP 用戶端首先和FTP Server的TCP 21端口建立連接配接,通過這個通道發送指令,用戶端需要接收資料的時候在這個通道上發送PORT指令。 PORT指令包含了用戶端用什麼端口(一個大于1024的端口)接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20端口發送資料。 FTP server必須和用戶端建立一個新的連接配接用來傳送資料。

    PASV模式(被動方式)

    在建立控制通道的時候和PORT模式類似,當用戶端通過這個通道發送PASV 指令的時候,FTP server打開一個位于1024和5000之間的随機端口并且通知用戶端在這個端口上傳送資料的請求,然後FTP server 将通過這個端口進行資料的傳送,這個時候FTP server不再需要建立一個新的和用戶端之間的連接配接傳送資料。

    如果從C/S模型這個角度來說,PORT對于伺服器來說是OUTBOUND,而PASV模式對于伺服器是INBOUND,這一點請特别注意,尤其是在使用防火牆的企業裡,這一點非常關鍵,如果設定錯了,那麼客戶将無法連接配接。

3.安裝ftp

先關閉selinux政策

vim /etc/sysconfig/selinux

  SELINUX=disabled

reboot

yum install vsftpd  -y

systemctl start vsftpd 

systemctl enable vsftpd 

systemctl stop firewalld  #關火牆或者添加服務到火牆識别服務

(

firewall-cmd --list-all

firewall-cmd --permanent --add-service=ftp

firewall-cmd --reload

)

setenforce 0

lftp ip                ##能登陸并且顯示,表示安裝成功

4.vsftpd檔案資訊

/var/ftp        ##預設釋出目錄

/etc/vsftpd        ##配置目錄

5.vsftpd服務的配置參數(/etc/vsftpd/vsftpd.conf)

550服務本身不允許

530使用者名或密碼錯誤,與PAM認證有關

553沒權限

500權限過大

1)匿名使用者設定

anonymous_enable=YES|NO        ##匿名使用者登陸限制

#<匿名使用者上傳>

vim /etc/vsftpd/vsftpd.conf

write_enable=YES

anon_upload_enable=YES

chgrp ftp /var/ftp/pub

chmod 775 /var/ftp/pub

#<匿名使用者家目錄修改>

anon_root=/direcotry

#<匿名使用者上傳檔案預設權限修改>

anon_umask=xxx

#<匿名使用者建立目錄>

anon_mkdir_write_enable=YES|NO

#<匿名使用者下載下傳>

anon_world_readable_only=YES|NO ##設定參數值為no表示匿名使用者可以下載下傳

#<匿名使用者删除>

anon_other_write_enable=YES|NO    

#<匿名使用者使用的使用者身份修改>

chown_uploads=YES

chown_username=student

#<最大上傳速率>

anon_max_rate=102400

#<最大連結數>

max_clients=2

2)本地使用者設定

local_enable=YES|NO        ##本地使用者登陸限制

write_enable=YES|NO        ##本地使用者寫權限限制

#<本地使用者家目錄修改>

local_root=/directory

#<本地使用者上傳檔案權限>

local_umask=xxx

#<限制本地使用者浏覽/目錄>

所有使用者被鎖定到自己的家目錄中

chroot_local_user=YES

chmod u-w /home/*

使用者黑名單建立

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

vim 

使用者白名單建立

vim /etc/vsftpd/chroot_list

student

westos

#<限制本地使用者登陸>

vim /etc/vsftpd/ftpusers        ##使用者黑名單

vim /etc/vsftpd/user_list        ##使用者臨時黑名單

使用者白名單設定  

userlist_deny=NO

/etc/vsftpd/user_list            ##參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp

6.<ftp虛拟使用者的設定>

6.1建立虛拟帳号身份

vim /etc/vsftpd/loginusers    ##檔案名稱任意

ftpuser1   ##使用者名

123        ##密碼

ftpuser2

123

ftpuser3

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

vim /etc/pam.d/ckvsftpd        ##檔案名稱任意

account        required    pam_userdb.so    db=/etc/vsftpd/loginusers

auth        required    pam_userdb.so    db=/etc/vsftpd/loginusers

pam_service_name=ckvsftpd

guest_enable=YES

guest_username=ftpuser  #虛拟帳号身份指定

chmod u-w /home/ftpuser

6.2虛拟帳号家目錄獨立設定

local_root=/ftpuserhome/$USER

user_sub_token=$USER

mkdir /ftpuserhome

chgrp ftpuser /ftpuserhome

chmod g+s /ftpuserhome

mkdir /ftpuserhome/ftpuser{1..3}

6.3虛拟帳号配置獨立

注釋

user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1

在此檔案中設定配置檔案中的所有參數,此檔案的優先級搞

本文轉自willis_sun 51CTO部落格,原文連結:http://blog.51cto.com/willis/1847008,如需轉載請自行聯系原作者