在實際生產中我們經常用虛擬使用者來登入ftp
環境:centos7.5
避坑準備:yum install -y psmisc net-tools systemd-devel libdb-devel perl-dbi db4
yum安裝:yum -y install vsftpd
vim /etc/vsftpd/vuser_list
編輯或新建vuser_list檔案,按使用者名稱密碼一行乙個一次排列
lucy
ab123
liwang
ab456
lilei
ab789
執行db_load -t -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_listdb.db
「-f 」命令選項設定的是虛擬使用者的口令檔案,即上面新建的vuser_list,最終生成口令庫檔案vuser_list.db
執行chmod 600 /etc/vsftpd/vuser_list.db
給許可權
配置pam檔案 /etc/pam.d/vsftpd 新增如下:
虛擬使用者登入需要用到pam模組
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_listdb
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_listdb
vuser_list為剛剛生成的db檔案。去掉字尾
5.為虛擬使用者寄存的實體新增使用者 testftp 配置:
useradd testftp -g ftp -s /sbin/nologin
6. 建立虛擬使用者的配置資料夾 及配置檔案
mkdir /etc/vsftpd/vuser_conf
現在,我們要把各個使用者的配置檔案放到目錄 /etc/vsftpd/vuser_conf
虛擬使用者配置許可權如下:(許可權設定還有待討論)
如虛擬使用者lucy則:vim /etc/vsftpd/vuser_conf/lucy
建立並編輯這個檔案
local_root=/home/wwwroot/web1/http/ #設定ftp賬號根目錄(web目錄)
write_enable=yes
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
#cmds_denied=dele #禁止刪除檔案
注意新版的ftp對與使用者登入的目錄/home/wwwroot/web1/http/
有許可權現在要求
這裡我們給755許可權
chmod -r 755 /home/wwwroot/web1/http
然後再在http 下建立乙個web檔案給777 許可權,lucy就可以在web下上傳檔案了
7.更改主配置檔案 vsftpd.conf 末尾新增如下
guest_username=*** 為我們第5步中設定的實體使用者 這裡用預設的ftp使用者
####禁止匿名使用者 。這裡是修改
anonymous_enable=no #/yes 改 no
####新增虛擬使用者。這裡是末尾新增
guest_enable=yes
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
日誌檔案配置
xferlog_enable=yes
xferlog_std_format=yes
xferlog_file=/var/log/vsftpd.log
一般預設為:/var/log/vsftpd.log
設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來,並且由於這裡更改了vsftpd的服務宿主使用者為手動建立的vsftpd。必須注意給與該使用者對日誌的寫入許可權,否則服務將啟動失敗。
進一步**在實際生產中ftp主動與被動模式下iptables相關設定
1.主動模式也是就是預設模式,
主動 (預設) 模式:
1. 客戶端 ------------------>21port(收)服務端
2. 客戶端 -大於1024---------->20port(發)服務端
我們在服務端開放21 與20 埠試試,發現登入成功但是無法列出目錄
這時候我們通過設定防火牆可以解決
iptables -a input -m state --state new,related,established -j accept
那麼被動模式呢? 被動下服務端是隨機開放埠,怎麼辦?
這裡我們在被動模式中設定開放的埠
#開啟被動模式
pasv_enable=yes
#被動模式埠範圍
pasv_min_port=6000
pasv_max_port=6010
#需要加入外部ip,否則被動模式會失敗,主要正對是雲主機,本地機器可以不用,
pasv_address=39.96.38.179
pasv_addr_resolve=yes
同時在iptables中開放6000-6010埠
測試一下,發現只開21,20 埠,主動被動都可以用,這個應該是我測試有問題! 有待驗證。
阿里雲主機的被動模式, 必須在配置檔案寫上監聽機器,否者在路由上會有問題
vim /etc/vsftpd/vsftpd.conf
#開啟被動模式
pasv_enable=yes
#被動模式埠範圍
pasv_min_port=6000
pasv_max_port=6010
#需要加入外部ip,否則被動模式會失敗
pasv_address=39.96.38.179
pasv_addr_resolve=yes
參考:
登入失敗,telnet埠測試
[root@web-01 ~]# telnet 192.168.0.110 21
trying 192.168.0.110...
connected to 192.168.0.110.
escape character is '^]'.
500 oops: failed to open xferlog log file:/var/log/vsftpd.log
connection closed by foreign host.
這裡我建立了新檔案vsftpd.log 。我調整許可權和所屬組一直還是報錯,所以我這裡改回去預設的xferlog,有時間可以再研究
** 響應: 553 could not create file.**
錯誤: 嚴重檔案傳輸錯誤
經過網上查詢:修改 vim /etc/shells 新增 /sbin/nologin
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin
因為 ftp使用者的屬性是:ftp:x:14:50:ftp user:/var/ftp:/sbin/nologin
如何配置vsftp虛擬使用者登入
yum y install vsftpd 2.新增虛擬使用者口令檔案 例 vim etc vsftpd vuser.txt 3.生成虛擬使用者口令檔案 db load t t hash f etc vsftpd vuser.txt etc vsftpd vuser.db 轉化資料庫文件 若無db,請...
Vsftpd安裝與配置虛擬使用者登入
vsftpd的全名是 very secure ftp daemon 一 安裝vsftpd 1.1安裝db4 util用於生成認證檔案 root localhost yum y install db4 utils1.2安裝vsftpd root localhost yum y install vsft...
部署proftpd 並實現虛擬使用者登入
yum 安裝proftpd yum y install proftpd 修改配置檔案 etc proftpd.conf 全部配置檔案引數 tracelog var log proftpd trace.log servername proftpd server serverident on ftp s...