首頁  >  文章  >  運維  >  linux運維之搭建符合自己要求的vsftp服務

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

齐天大圣
齐天大圣原創
2020-11-21 17:40:561638瀏覽

當我們在伺服器上安裝好了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認證檔案

建立本機對應目錄並設定宿主目錄權限

修改設定檔。

給每個虛擬使用者弄一個單獨的設定檔

#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  <=== 虚拟用户各自配置文件和自己的用户名对应起来

# 指定家目录
local_root=/home/vsftp/ftptest1
# 允许相关权限
download_enable=yes
anon_upload_enable=yes
anon_other_write_enable=YES
anon_mkdir_write_enable=yes
anon_world_readable_only=no
# 设置最大传输速度,单位b/s
anon_max_rate=100000
###注意:目前還沒給ftptest2虛擬用於建立單獨的配置文件,那麼對於此用戶就使用主配置文件的配置(/etc /vsftpd/vsftpd.conf)######更多相關技術文章,請造訪###linux系統教學###專欄! ###

以上是linux運維之搭建符合自己要求的vsftp服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn