Vsftp ftp的虛擬使用者登入模式配置

2021-10-24 14:09:17 字數 3952 閱讀 1867

在實際生產中我們經常用虛擬使用者來登入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...