1. 程式人生 > >騰訊雲伺服器centos7.3 配置FTP,每個使用者登入FTP對應不同的檔案目錄,並只能訪問設定的目錄

騰訊雲伺服器centos7.3 配置FTP,每個使用者登入FTP對應不同的檔案目錄,並只能訪問設定的目錄

VSFTPD 安裝:

-- 檢視是否已經安裝 VSftpd:

rpm -qa | grep vsftp

yum install -y vsftpd

groupadd ftpuser #建立ftpuser組 useradd -g ftpuser -s /sbin/nologin -M ftpuser #建立個ftpuser使用者並將其加入到ftpuser組,該使用者不能登陸,不能登入的意思就是

只能通過FTP登入,不能通過終端登入伺服器

-- 設定登陸FTP的密碼:

passwd ftpuser  #passwd 是命令  ftpuser是需要設定密碼的使用者

將使用者新增到user_list中

echo ftpuser >> /etc/vsftpd/user_list #也可以直接開啟user_list檔案,把使用者名稱新增進去,一個使用者名稱一行

-- 啟動vsftpd systemctl start vsftpd.service #重啟命令是systemctl restart  vsftpd.service  #停止是systemctl stop vsftpd.service #檢視狀態 systemctl status vsftpd,檢視其他程序狀態也是差不多的,只是修改一下程序名稱 ,比如 systemctl status nginx,就是檢視nginx的狀態

-- 配置檔案 /etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=000 dirmessage_enable=YES xferlog_enable=YES xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES

# chroot_local_user設定為YES時,使用者被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list檔案

# 必須與下面的設定項配合

chroot_local_user=YES

# 被列入此檔案的使用者,在登入後將不能切換到自己目錄以外的其他目錄

# 從而有利於FTP伺服器的安全管理和隱私保護。此檔案需自己建立 ,裡面存入使用者名稱,一個使用者佔一行chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=YES #允許 /etc/vsftpd/user_list 檔案中的使用者登入

user_config_dir=/etc/vsftpd/userconf#新增讀取使用者配置目錄(注:本行配置預設沒有需要手動輸入)

tcp_wrappers=YES userlist_deny=NO

#end vsftpd.conf配置檔案修改完。主要是標紅的地方,其他都是基本 都是預設的配置 -- 建立使用者FTP使用目錄

Mkdir /data/wwwroot #這裡是根據自己需求來建立(就是FTP使用者可以訪問那個目錄)

- 進入使用者配置目錄,沒有的話自己建立,注意和vsftpd.conf檔案中的對應 user_config_dir=/etc/vsftpd/userconf cd /etc/vsftpd/userconf

-- 建立一個同登入使用者名稱稱一樣的檔案(在配置userconf資料夾裡建立) vim ftpuser

-- 寫入使用者登入FTP後能訪問的目錄位置:

local_root=/www/test

-- 重啟VSftp:

/etc/init.d/vsftpd restart

#vsftpd.conf配置檔案基本和預設的差別不大,主要是標紅的地方需要注意

最後附上中文註釋的配置檔案

/etc/vsftpd/vsftpd.conf

主配置檔案

/usr/sbin/vsftpd

Vsftpd的主程式

/etc/rc.d/init.d/vsftpd

啟動指令碼

/etc/pam.d/vsftpd

PAM認證檔案(此檔案中file=/etc/vsftpd/ftpusers欄位,指明阻止訪問的使用者來自/etc/vsftpd/ftpusers檔案中的使用者)

/etc/vsftpd/ftpusers

禁止使用vsftpd的使用者列表檔案。記錄不允許訪問FTP伺服器的使用者名稱單,管理員可以把一些對系統安全有威脅的使用者賬號記錄在此檔案中,以免使用者從FTP登入後獲得大於上傳下載操作的權利,而對系統造成損壞。(注意:linux-4中此檔案在/etc/目錄下)

/etc/vsftpd/user_list

禁止或允許使用vsftpd的使用者列表檔案。這個檔案中指定的使用者預設情況(即在/etc/vsftpd/vsftpd.conf中設定userlist_deny=YES)下也不能訪問FTP伺服器,在設定了userlist_deny=NO時,僅允許user_list中指定的使用者訪問FTP伺服器。(注意:linux-4中此檔案在/etc/目錄下)

/var/ftp

匿名使用者主目錄;本地使用者主目錄為:/home/使用者主目錄,即登入後進入自己家目錄

/var/ftp/pub

匿名使用者的下載目錄,此目錄需賦權根chmod 1777 pub(1為特殊許可權,使上載後無法刪除)

/etc/logrotate.d/vsftpd.log

Vsftpd的日誌檔案

# 是否允許匿名登入FTP伺服器,預設設定為YES允許

# 使用者可使用使用者名稱ftp或anonymous進行ftp登入,口令為使用者的E-mail地址。

# 如不允許匿名訪問則設定為NO

anonymous_enable=YES

# 是否允許本地使用者(即linux系統中的使用者帳號)登入FTP伺服器,預設設定為YES允許

# 本地使用者登入後會進入使用者主目錄,而匿名使用者登入後進入匿名使用者的下載目錄/var/ftp/pub

# 若只允許匿名使用者訪問,前面加上#註釋掉即可阻止本地使用者訪問FTP伺服器

local_enable=YES

# 是否允許本地使用者對FTP伺服器檔案具有寫許可權,預設設定為YES允許

write_enable=YES

# 掩碼,本地使用者預設掩碼為077

# 你可以設定本地使用者的檔案掩碼為預設022,也可根據個人喜好將其設定為其他值

#local_umask=022

# 是否允許匿名使用者上傳檔案,須將全域性的write_enable=YES。預設為YES

#anon_upload_enable=YES

# 是否允許匿名使用者建立新資料夾

#anon_mkdir_write_enable=YES

# 是否啟用目錄歡迎資訊功能

# 當用戶用CMD模式首次訪問伺服器上某個目錄時,FTP伺服器將顯示歡迎資訊

# 預設情況下,歡迎資訊是通過該目錄下的.message檔案獲得的

# 此檔案儲存自定義的歡迎資訊,由使用者自己建立

#dirmessage_enable=YES

# 是否讓系統自動維護上傳和下載的日誌檔案

# 預設情況該日誌檔案為/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定

# 預設值為NO

xferlog_enable=YES

# Make sure PORT transfer connections originate from port 20 (ftp-data).

# 是否設定FTP伺服器將啟用FTP資料埠的連線請求

# ftp-data資料傳輸,21為連線控制埠

connect_from_port_20=YES

# 設定是否允許改變上傳檔案的屬主,與下面一個設定項配合使用

# 注意,不推薦使用root使用者上傳檔案

#chown_uploads=YES

# 設定想要改變的上傳檔案的屬主,如果需要,則輸入一個系統使用者名稱

# 可以把上傳的檔案都改成root屬主。whoever:任何人

#chown_username=whoever

# 設定系統維護記錄FTP伺服器上傳和下載情況的日誌檔案

# /var/log/vsftpd.log是預設的,也可以另設其它

#xferlog_file=/var/log/vsftpd.log

# 是否以標準xferlog的格式書寫傳輸日誌檔案

# 預設為/var/log/xferlog,也可以通過xferlog_file選項對其進行設定

# 預設值為NO

#xferlog_std_format=YES

# 以下是附加配置,新增相應的選項將啟用相應的設定

# 是否生成兩個相似的日誌檔案

# 預設在/var/log/xferlog和/var/log/vsftpd.log目錄下

# 前者是wu_ftpd型別的傳輸日誌,可以利用標準日誌工具對其進行分析;後者是vsftpd型別的日誌

#dual_log_enable

# 是否將原本輸出到/var/log/vsftpd.log中的日誌,輸出到系統日誌

#syslog_enable

# 設定資料傳輸中斷間隔時間,此語句表示空閒的使用者會話中斷時間為600秒

# 即當資料傳輸結束後,使用者連線FTP伺服器的時間不應超過600秒。可以根據實際情況對該值進行修改

#idle_session_timeout=600

# 設定資料連線超時時間,該語句表示資料連線超時時間為120秒,可根據實際情況對其個修改

#data_connection_timeout=120

# 執行vsftpd需要的非特權系統使用者,預設是nobody

#nopriv_user=ftpsecure

# 是否識別非同步ABOR請求。

# 如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啟用

# 而一般此設定並不安全,所以通常將其取消

#async_abor_enable=YES

# 是否以ASCII方式傳輸資料。預設情況下,伺服器會忽略ASCII方式的請求。

# 啟用此選項將允許伺服器以ASCII方式傳輸資料

# 不過,這樣可能會導致由"SIZE /big/file"方式引起的DoS攻擊

#ascii_upload_enable=YES

#ascii_download_enable=YES

# 登入FTP伺服器時顯示的歡迎資訊

# 如有需要,可在更改目錄歡迎資訊的目錄下建立名為.message的檔案,並寫入歡迎資訊儲存後

#ftpd_banner=Welcome to blah FTP service.

# 黑名單設定。如果很討厭某些email address,就可以使用此設定來取消他的登入許可權

# 可以將某些特殊的email address抵擋住。

#deny_email_enable=YES

# 當上面的deny_email_enable=YES時,可以利用這個設定項來規定哪些郵件地址不可登入vsftpd伺服器

# 此檔案需使用者自己建立,一行一個email address即可

#banned_email_file=/etc/vsftpd/banned_emails

# 使用者登入FTP伺服器後是否具有訪問自己目錄以外的其他檔案的許可權

# 設定為YES時,使用者被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list檔案

# 必須與下面的設定項配合

#chroot_list_enable=YES

# 被列入此檔案的使用者,在登入後將不能切換到自己目錄以外的其他目錄

# 從而有利於FTP伺服器的安全管理和隱私保護。此檔案需自己建立

#chroot_list_file=/etc/vsftpd/chroot_list

# 是否允許遞迴查詢。預設為關閉,以防止遠端使用者造成過量的I/O

#ls_recurse_enable=YES

# 是否允許監聽。

# 如果設定為YES,則vsftpd將以獨立模式執行,由vsftpd自己監聽和處理IPv4埠的連線請求

listen=YES

# 設定是否支援IPV6。如要同時監聽IPv4和IPv6埠,

# 則必須執行兩套vsftpd,採用兩套配置檔案

# 同時確保其中有一個監聽選項是被註釋掉的

#listen_ipv6=YES

# 設定PAM外掛模組提供的認證服務所使用的配置檔名,即/etc/pam.d/vsftpd檔案

# 此檔案中file=/etc/vsftpd/ftpusers欄位,說明了PAM模組能抵擋的帳號內容來自檔案/etc/vsftpd/ftpusers中

#pam_service_name=vsftpd

# 是否允許ftpusers檔案中的使用者登入FTP伺服器,預設為NO

# 若此項設為YES,則user_list檔案中的使用者允許登入FTP伺服器

# 而如果同時設定了userlist_deny=YES,則user_list檔案中的使用者將不允許登入FTP伺服器,甚至連輸入密碼提示資訊都沒有

#userlist_enable=YES/NO

# 設定是否阻扯user_list檔案中的使用者登入FTP伺服器,預設為YES

#userlist_deny=YES/NO

# 是否使用tcp_wrappers作為主機訪問控制方式。

# tcp_wrappers可以實現linux系統中網路服務的基於主機地址的訪問控制

# 在/etc目錄中的hosts.allow和hosts.deny兩個檔案用於設定tcp_wrappers的訪問控制

# 前者設定允許訪問記錄,後者設定拒絕訪問記錄。

# 如想限制某些主機對FTP伺服器192.168.57.2的匿名訪問,編緝/etc/hosts.allow檔案,如在下面增加兩行命令:

# vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY

# 表明限制IP為192.168.57.1/192.168.57.9主機訪問IP為192.168.57.2的FTP伺服器

# 此時FTP伺服器雖可以PING通,但無法連線

tcp_wrappers=YES