1. 程式人生 > >ftp服務器搭建(二)

ftp服務器搭建(二)

關閉 匿名訪問 cpp chown 相關 side xferlog conf 道理

1.已經安裝好了vsftpd 進入到根目錄下的/etc目錄 ls查看一下

技術分享圖片

2.拷貝一下上面的兩個配置文件 我拷貝到了我新建的目錄中了

3.查看現在的網絡連接方式——我的是-net方式 當然其他方式也行 但有些區別 這個我打算再另寫一篇有關計算機網絡方面的我的看法 好了 再繼續看這個ftp 先保證本機與虛擬機的網能ping的通 如圖:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

正好在一個網段內 能ping通

4.接下來就開始配置吧

在/etc的目錄下vim vsftpd.conf

技術分享圖片

先來說明一下這些參數的作用

listen=YES/NO(YES)
設置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置為YES,此為默?認值。建議不要更改,有很多與服務器運行相關的配置命令,需要在此模式下才有效。若設置為NO,則vsftpd不是以獨立的服務運行,要受到xinetd?服務的管控,功能上會受到限制。

listen_ipv6=YES/NO (YES)

設置傳輸協議

anonymous_enable=YES/NO

設置是否為匿名登錄 YES為匿名登錄

anon_upload_enable=YES

設置匿名用戶是否能上傳 YES為匿名能上傳

anon_mkdir_write_enable=YES

匿名用戶是否能創建目錄 YES為匿名能創建

anon_other_write_enable=YES

修改文件名和刪除文件 YES為匿名能刪除

local_enable=YES

是否允許本地用戶登錄

local_umask=022

umask 默認755 這個是用戶權限設置 即:777-022=755

write_enable=YES 是否本地用戶有寫權限 YES為本地有寫權限

chroot_local_user=YES

本地用戶禁錮在宿主目錄中

chroot_list_enable=YES

是否將系統用戶限止在自己的home目錄下

chroot_list_file=/etc/vsftpd.chroot_list

列出的是不chroot的用戶的列表

chown_upload=YES

是否改變上傳文件的屬主

chown_username=username

如果是需要輸入一個系統用戶名

userlist_enable=YES

userlist_deny=NO


ftpd_banner=Welcome to chenlf FTP service.

設置歡迎信息

dirmessage_enable=YES

是否顯示目錄說明文件, 需要收工創建.message文件

message_file=

設置訪問一個目錄時獲得的目錄信息文件的文件名,默認是.message

xferlog_enable=YES

是否記錄ftp傳輸過程

xferlog_file=/var/log/vsftpd.log

ftp傳輸日誌的路徑和名字

connect_from_port_20=YES

是否確信端口傳輸來自20(ftp-data)

nopriv_user=ftpsecure

運行vsftpd需要的非特權系統用戶默認是nobody

async_abor_enable=YES

是否允許運行特殊的ftp命令async ABOR.

5.我暫時的配置

listen=NO 一開始改為YES 運行服務器自行退出 error 不清楚什麽原因

userlist等參數沒加 本地用戶hello沒加入到vsftpd.chroot_list中

其他基本沒變

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

測試我有沒有讀寫權限

我能進入到上一層目錄 即:我能進入到父目錄下 因為chroot沒加入這個名單

只能在/home家目錄下有創建讀寫權限

如果把hello寫入到chroot中 就登不上了

技術分享圖片

我不清楚為什麽chroot_local_user=NO and chroot_list_enable=NO 或者chroot_local_user=YES and chroot_list_enable=YES 則chroot_list_file的目錄的文件的用戶照樣能返回上一層目錄 而這兩個參數都不一樣時 則遠程主機關閉連接 不清楚為什麽 按道理說這兩個參數第一個是是否啟用root 第二個參數是root_file的名單是否能返回上一層目錄的 可實現的結果卻不一樣

我現在把匿名參數改為了YES 增加了一個匿名訪問參數anon_root=/var 如圖:

技術分享圖片

關於userlist=YES 表示在userlist_file=/目錄文件的名單不能訪問ftp服務器 NO表示允許訪問

userlist_deny=NO

userlist_file=/

註意:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
500 OOPS: priv_sock_get_cmd

當出現這個時,說明chroot列表裏沒有這個用戶名 同時將訪問的家目錄改為沒有寫的權限目錄

我先回答上面的 因為我安裝的是最新版本的 可能有些變化

chroot_local_user=YES chroot_list_enable=NO 然後root_list列表添加hello用戶 並且在/home改變hello的權限變為r-x就可以了 這樣訪問不了父目錄

至於有沒有其他原因 目前暫時不清楚 歡迎大家來評論補充

我再補充一下:

之前local_root=/var/CPPC

發現登陸不了 總是遠程機子關閉連接

原因是local_root=/var/CPPC的訪問目錄的讀寫權限問題 將訪問目錄的讀寫權限改為沒有“寫”的權限就行了

技術分享圖片

6.現在我們創建一個虛擬用戶 CPPCPP 密碼為CPPCPP

useradd -s /bin/sh CPPCPP

passwd:

chmod 755 /var/CPPC

chown CPPCPP:CCC /var/CPPC

usermod -g CCC CPPCPP

usermod -g CCC hello

或者 usermod -G CCC hello

重啟vsftpd服務

總結問題:

1.之前為什麽新建的用戶不能登陸的原因在這裏

之前不能登陸的原因是因為CPPCPP的密碼為! 禁用了

在/etc/shadow /etc/passwd可以看到

解禁 usermod -U CPPCPP 或者passwd -u CPPCPP 或者 直接passwd CPPCPP 輸入密碼就行了

但是現在遇到了另一個問題:

C:\Users\CPP>ftp 192.168.93.149
連接到 192.168.93.149。
220 Welcome to blah FTP service.
200 Always in UTF8 mode.
用戶(192.168.93.149:(none)): CPPCPP
331 Please specify the password.
密碼:
500 OOPS: cannot change directory:/home/CPPCPP
500 OOPS: priv_sock_get_cmd
遠程主機關閉連接。

我在網上找了一下:有需要setsebool -P ftpd_disable_trans 1 但是我感覺不太對 我沒有安裝這個selinux 怎麽會有這個問題呢?後來我在/home創建這個用戶CPPCPP 發現沒有這個問題了

現在又遇到一個問題了:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

具體解決方法:

在vsftpd.conf配置文件添加這一項allow_writeable_chroot=YES

還是需要感謝百度 Google 博客園和博客們的總結分享 我這裏做一下我遇到的問題的總結和心得 O(∩_∩)O哈哈~

ftp服務器搭建(二)