當我們在伺服器上安裝好了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.建立虛擬使用者的口令檔,該檔案的格式為奇數行為用戶名,偶數行為密碼。下面建立一個這樣的檔案/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服務了。 ######建立虛擬使用者的宿主使用者###
# 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中文網其他相關文章!