linux運維之搭建出符合自己要求的vsftp服務

當我們在服務器上安裝好了vsftpd這個軟件后,并且已經理解該軟件的主配置文件/etc/vsftpd/vsftpd.conf后,我們就可以搭建出自己想要的ftp服務了。

指定端口等

listen_port=21 設置監聽的端口

download_enable=YES 允許下載文件

max_clients=100 限制并發客戶端連接數

max_per_ip=100 限制統一ip的并發鏈接數

禁止匿名、實體用戶登陸

首先把匿名用戶登陸給關了,不給匿名用戶瀏覽權限。

anonymous_enable=NO

那么為什么不允許實體用戶登陸呢?因為實體用戶本就可以用更安全的sftp登陸,所以,就不用使用ftp協議登陸了。另外,因為ftp是明文傳輸協議,如果賬號密碼被截獲了,那就不好了。

如何禁止實體用戶登陸呢?在文章下面配置虛擬用戶的第三步驟會講到,把/etc/pam.d/vsftpd下的所有內容都注釋掉。

主動連接、被動連接設置

我們想要搭建既要支持主動連接模式也支持被動連接,那么設置如下:

主動連接模式的端口設置

connect_from_port_20=YES

設置防火墻,將21端口放行,另外不用開啟20端口,直接對于主機主動向外請求的而響應的數據包允許進入本機(establish/related)。

iptables?-A?INPUT?-p?tcp?--dport?21?-j?ACCEPT?#?FTP服務 iptables?-A?INPUT??-m?state?--state?ESTABLISHED,RELATED?-j?ACCEPT

開啟被動模式,被動連接的端口限定為10001~11000中的任意一個。

pasv_enable=YES pasv_min_port=10001 pasv_max_port=11000

設置防火墻,允許10000~11000之間的端口開放。

iptables?-A?INPUT?-p?tcp?--dport?10001::11000?-j?ACCEPT?#?ftp被動連接端口

配置虛擬用戶

配置虛擬用戶的步驟如下:

  1. 建立虛擬用戶口令文件

  2. 生成虛擬用戶口令認證文件

  3. 編輯vsftpd的PAM認證文件

  4. 建立本地映射目錄并設置宿主目錄權限

  5. 修改配置文件。

  6. 給每一個虛擬用戶弄一個單獨的配置文件

1.建立虛擬用戶的口令文件,該文件的格式為奇數行為用戶名,偶數行為密碼。下面建立一個這樣的文件/etc/vsftpd/vusers,內容如下:

ftptest1 111111 ftptest2 222222

2.生成虛擬用戶口令認證文件,執行如下命令:

db_load?-T?-t?hash?-f??/etc/vsftpd/vusers??/etc/vsftpd/login.db

當命令正確執行后,就會出現 /etc/vsftpd/login.db文件。為了安全起見,我們將該文件的權限設置為600.

chmod?600?login.db

3.編輯虛擬用戶所需的PAM配置文件

vim?/etc/pam.d/vsftpd

將之前的內容全部給注釋掉,并新加入兩行

auth????required????/lib64/security/pam_userdb.so??db=/etc/vsftpd/login? account???required????/lib64/security/pam_userdb.so??db=/etc/vsftpd/login

注意,如果是32位的去掉lib后面64,另外login后面不用加入后綴的。這樣操作之后,實體用戶就不能登陸ftp服務了。

4.建立本地映射目錄并設置宿主目錄權限。

建立虛擬用戶的宿主用戶

#?useradd?-d?/home/vsftp?-s?/sbin/nologin?ftpuser

修改目錄權限為755

#?chmod?755?/home/vsftp/

5.修改配置文件。

把下面幾行配置信息寫入到/etc/vsftpd/vsftpd.conf配置文件中。

#?開啟虛擬用戶登陸功能 guest_enable=YES  #?將虛擬用戶與宿主用戶對應 guest_username=ftpuser  #?pam認證文件(該配置默認存在) pam_service_name=vsftpd  #?vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了,所以要加入下面配置 allow_writeable_chroot=YES

6.給每一個虛擬用戶建立單獨的配置文件。

若想給每一個虛擬用戶都建立單獨的配置文件,則需要在主配置文件中加入

user_config_dir=/etc/vsftpd/config

指定虛擬用戶的配置文件路徑。接下來給兩個虛擬用戶建立各自的配置文件:

#?ftptest1虛擬用戶的配置文件  #?創建虛擬用戶家目錄 #?mkdir?/home/vsftp/ftptest1 #?chown?ftpuser:ftpuser?/home/vsftp/ftptest1/  #?建立配置文件 #?mkdir?/etc/vsftpd/config? #?vim?/etc/vsftpd/config/ftptest1??<p>注意:目前還沒給ftptest2虛擬用于建立單獨的配置文件,那么對于此用戶就使用主配置文件的配置(/etc/vsftpd/vsftpd.conf)</p><p>更多相關技術文章,請訪問<a href="https://www.php.cn/linux.html" target="_blank">linux系統教程</a>欄目!</p>

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享