爬過無數坑搭建的ftp伺服器

2021-09-29 13:50:57 字數 3506 閱讀 2332

使用root使用者用yum安裝

1  安裝vsftpd: 

yum install -y vsftpd

2  建立乙個普通使用者 :

useradd -s /sbin/nologin virftp        指定使用者的shell為nologin,不允許登入

vsftpd軟體是允許系統使用者以ftp方式(非ssh)登入系統的,登入後會進入使用者家目錄,為了安全起見,我們使用虛擬ftp使用者對映到真實系統使用者的方式,使用ftp服務,從而避免ftp使用者直接登入系統。

3建立虛擬ftp使用者配置檔案:

vim /etc/vsftpd/vsftpd_login

寫入虛擬使用者的使用者名稱和密碼:

test1          奇數行  寫使用者名稱

123            偶數行  寫密碼

test2          多個使用者就寫多組,中間不能有空行和空格

456            test1的密碼為123,test2的密碼為456

4更改許可權:

chmod 600 /etc/vsftpd/vsftpd_login

db_load -t -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

5建立虛擬使用者的配置檔案目錄:

mkdir /etc/vsftpd/vsftpd_user_conf

cd /etc/vsftpd/vsftpd_user_conf

6建立虛擬使用者的配置檔案:

vim test1       此處的檔名必須和/etc/vsftpd/vsftpd_login檔案裡的使用者名稱一致。

加入如下內容

local_root=/home/virftp/testuser1     定義虛擬使用者的家目錄

anonymous_enable=no                  不允許匿名使用者登陸,如果允許則用yes

write_enable=yes                            寫許可權,允許

local_umask=022                             設定umask,用來控制使用者建立檔案和目錄的預設許可權

anon_upload_enable=no                不允許匿名使用者上傳

anon_mkdir_write_enable=no         不允許匿名使用者建立目錄和寫許可權

idle_session_timeout=600                空閒時限600秒,超時自動斷開

data_connection_timeout=120         資料連線(請求)時限120秒,超時會自動斷開

max_clients=10                                客戶端的最大連線數

7建立虛擬ftp使用者的家目錄,並建立測試檔案

mkdir /home/virftp/test1

touch /home/virftp/test1/1.txt

8級聯更改系統使用者virftp許可權

chown -r virftp:virftp /home/virftp

以下兩行為在ftp上建立檔案報錯時新增的許可權

chown -r virftp:virftp /var/ftp

chmod 755 -r /var/ftp

9   定義使用者驗證檔案路徑

vim /etc/pam.d/vsftpd    編輯ftp的使用者認證檔案

在最前面加上:注意區分系統是32位還是64位

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 

指定密碼驗證形式為檔案形式,並指定路徑路徑

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

指定賬戶儲存形式為檔案,並指定賬戶儲存檔案路徑

10   配置vsftp服務:

vim /etc/vsftpd/vsftpd.conf

將anonymous_enable=yes 改為 anonymous_enable=no 不允許匿名使用者登入

將#anon_upload_enable=yes 改為 anon_upload_enable=no 不允許匿名使用者上傳

將#anon_mkdir_write_enable=yes 改為 anon_mkdir_write_enable=no

不允許匿名使用者建立目錄和寫入

再增加如下內容

chroot_local_user=yes   允許切換到系統使用者

guest_enable=yes          開啟來賓使用者

guest_username=virftp    定義來賓使用者為virftp

virtual_use_local_privs=yes    允許虛擬使用者對映到系統使用者

user_config_dir=/etc/vsftpd/vsftpd_user_conf 定義使用者配置檔案目錄

#allow_writeable_chroot=yes    允許寫許可權。我的centos6.8虛擬機器不能寫這個引數,啟動會報錯

11  vsftpd服務

service vsftpd start     啟動

service vsftpd stop     停止

service vsftpd restart     重新啟動

12測試:

安裝lftp客戶端

yum install -y lftp

以test1使用者的身份訪問ftp伺服器,並輸入密碼

lftp [email protected]

回車輸入密碼

執行命令ls,看是否正常輸出

若不正常檢視日誌 /var/log/messages 和 /var/log/secure,一般在 /var/log/secure

tail -20f /var/log/secure

windows下安裝filezilla客戶端軟體,進行測試

13   報錯處理:

(1)login failed: 500 oops: bad bool value in config file for: anonymous_enable

解決方案:檢視 /etc/vsftpd/vsftpd.conf 檔案中每一行後面是否有空格,嚴格要求不能有空格

(2)unknown limit item 『noproc』

解決方案: vim /etc/security/limits.conf , 看看紅框中的引數是否有問題,我還遇到過 nofile 變成 nofil 的情況

搭建FTP伺服器

ftp 是僅基於 tcp 的服務,不支援 udp。與眾不同的是 ftp 使用兩個埠,乙個資料埠和乙個命令埠,也可叫做控制埠。通常來說這兩個埠是 21 命令埠 和 20 資料埠 由於 ftp 工作方式的不同,資料埠並不總是 20,分為 主動 ftp 和被動 ftp。1.主動 ftp 主動方式的 ftp...

ftp伺服器搭建

1.檢查是否已安裝vsftpd伺服器 rpm qa grep vsftpd 若未安裝則執行 yum install vsftpd y 2.設定開機自啟動 chkconfig vsftpd on1.執行cd etc vsftpd 用vi開啟vsftpd.conf 配置檔案 2.找到chroot lis...

搭建FTP伺服器

初次搭建ftp的過程中經過多次嘗試,總結了乙個較為簡單的ftp搭建步驟 1.首先購買乙個伺服器,個人使用的是阿里雲的ecs雲伺服器,系統選64位的centos7.2版本 阿里雲官網 2.安裝vsftp yum install vsftpd 遇到問號直接按回車 看到complete!表示已安裝完成 設...