Linux搭建FTP服務器


 

 

 

  Linux下使用ftp共享文件功能相對簡單,默認情況下,啟動vsftpd服務,即可通過匿名用戶和linux系統的普通用戶進行登錄,相關權限可通過編輯/etc/vsftpd/vsftpd.conf配置文件進行……

  本文主要介紹如何用Linux搭建可供虛擬用戶(即/etc/passwd中不存在的用戶)登錄的FTP服務器

 

 

    1.基本原理圖

  2.是否安裝了vsftpd

    3.安裝vsftpd

    4.關閉selinux和iptables

    5.創建虛擬宿主用戶

    6.編輯vsftpd.conf配置文件

    7.創建虛擬賬戶文件

    8.配置vsftpd的pam賬戶認證文件

    9.配置虛擬用戶個人的配置文件

    10.測試

    11.補充介紹

 

 

 

1. 基本原理圖

 

2. 查看是否安裝了vsftpd服務

rpm -q vsftpd rpm -qa |grep vsftpd

 

3. 安裝vsftpd(以yum安裝為例)

yum install vsftpd -y

 

4. 關閉selinux和iptables(也可配置相關訪問策略,防止系統阻斷),讓vsftpd開機自啟動

# 永久關閉selinux sed -i "s#=enforcing#=disabled#g" /etc/selinux/config setenforce 0 # 永久關閉iptables etc/init.d/iptables stop chkconfig iptables off # 設置vsftpd開機自啟動 chkconfig vsftpd on

 

5. 創建虛擬宿主用戶

useradd virtuser -s /sbin/nologin echo "123456" | passwd virtuser -stdin

 

6. 備份/etc/vsftpd/vsftpd.conf配置文件並將vsftpd.conf配置文件編輯內容如下

vim /etc/vsftpd/vsftpd.conf mv /etc/vsftpd/vsftpd.conf{,.bak}

# 是否允許匿名登陸 anonymous_enable=NO # 是否允許本地用戶登陸 local_enable=YES # 是否具備寫入權限 write_enable=NO # 上傳文件的權限掩碼 local_umask=022 # 是否進行日志記錄 xferlog_enable=YES xferlog_std_format=YES xferlog_file=/var/log/vsftpd.log # FTP開啟數據傳輸端口20 connect_from_port_20=YES # 會話超時時間/秒 idle_session_timeout=600 # 數據傳輸連接超時時間 data_connection_timeout=120 # 是否允許進行異步傳輸 async_abor_enable=YES # 請求歡迎信息 ftpd_banner=Welcome to blah FTP service. # linux中FTP默認情況下允許用戶從ftp主目錄切換到linux系統的其他目錄 # 可開啟chroot_list_enable功能,通過列表文件,進行用戶限制 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_deny # 是否允許FTP用戶使用"ls -R"命令,該命令會對系統造成較大的負擔 ls_recurse_enable=NO # 設定vsftpd服務工作在standalone模式,可理解為擁有自己的守護進程 listen=YES # 設定pam服務下的vsftpd驗證配置文件名,pam驗證配置文件位於/etc/pam.d/目錄下 pam_service_name=vsftpd # 是否啟用userlist列表限制功能 userlist_enable=YES # 是否支持TCPwrappers tcp_wrappers=YES # 是否進行反向域名解析 reverse_lookup_enable=NO # 啟用虛擬用戶功能 guest_enable=YES # 指定虛擬的宿主用戶 guest_username=virtuser # 虛擬用戶權限符合它們的宿主用戶 virtual_use_local_privs=YES # 指定虛擬用戶的配置文件目錄 user_config_dir=/etc/vsftpd/vconf
vsftpd.conf配置文件

 

7. 創建可供pam服務識別的虛擬賬戶文件(虛擬用戶:test,密碼:123456)

mkdir /etc/vsftpd/vconf cd /etc/vsftpd/vconf/

echo -e "test\n123456" >password db_load -T -t hash -f password{,.db}

 

 8. 配置vsftpd的pam賬戶認證文件,加入下面兩行賬戶認證配置(一定要加在文件內容的最上面)

vim /etc/pam.d/vsftpd auth sufficient /lib64/security/pam_userdb.so   db=/etc/vsftpd/vconf/password account sufficient /lib64/security/pam_userdb.so   db=/etc/vsftpd/vconf/password

 

 9. 創建共享目錄並配置虛擬用戶的個人配置文件(配置文件位於/etc/vsftpd/vconf/目錄下,配置文件名稱要和虛擬用戶名一致)

mkdir /share chown -R virtuser /share vim /etc/vsftpd/vconf/test

#指定虛擬用戶倉庫的具路徑 local_root=/share #允許寫的操作 write_enable=YES #不允許下載操作 download_enable=NO #設定並發客戶端的訪問數量 max_clients=20 #設定客戶端的最大線程數 max_per_ip=10 #設定用戶的最大傳輸速率,單位b/s local_max_rate=102400
test虛擬用戶配置文件

 

10. 創建測試文件,啟動vsftpd

echo "testfile" >>/share/abd.txt
chown -R virtuser /share

/etc/init.d/vsftpd start ps -aux|grep vsftpd

 

11. 測試,成功!!

 

12. 補充介紹,默認情況下,登錄linux中ftp的用戶擁有切換到linux系統其它目錄的權限,可通過配置chroot_list_enable=YES進行限制

  12.1 /etc/vsftpd/vsftpd.conf文件中配置如下內容

# linux中FTP默認情況下允許用戶從ftp主目錄切換到linux系統的其他目錄
# 可開啟chroot_list_enable功能,通過列表文件,進行用戶限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_deny

  12.2 創建/etc/vsftpd/chroot_deny文件,把需要限制的用戶名加入到文件中

echo "test" >>/etc/vsftpd/chroot_deny

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM