阿里雲服務器配置開發環境第六章:Centos7.3安裝vsftpd

vsftpd是什麼?

簡介linux

vsftpd是「very secure FTP daemon」的縮寫,是一個徹底免費的,開放源代碼的ftp服務器軟件安全

特色服務器

vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序,小巧輕快,安全易用,支持虛擬用戶,支持帶寬限制等功能測試

vsftpd的安裝

  1. 安裝vsftpd開放源代碼

    yum -y install vsftpd
    # 1. 是否使用sodu權限執行請根據你具體環境來決定
    # 2. rpm -qa| grep vsftpd可經過這個檢查是否已經安裝vsftpd
    # 3. 默認配置文件在/etc/vsftpd/vsftpd.conf
  2. 建立虛擬用戶rest

    1. 選擇在home目錄下建立ftp文件夾 (vsftpd2.5版本後就不容許在根目錄建立文件夾有寫的權限,這個坑坑 了我好幾天)日誌

      cd /
      md ftpfile
    2. 添加匿名用戶code

      useradd ftpuser -d /ftpfile -s /sbin/nologin
    3. 修改ftpfile權限orm

      chown -R ftpuser.root /ftpfile
    4. 重設ftpuser密碼ip

      passwd ftpuser
  3. 配置vsftpd

    cd /etc/vsftpd 
    sudo vi chroot_list
    # 把剛剛新增的虛擬用戶添加到此配置文件中  寫入ftpuser保存退出
    
    sudo vi vsftpd.conf
    # 在末尾添加如下配置  注意 不可有重複配置項 不然啓動失敗
    local_root=/ftpfile # (當本地用戶登入時,將被更換到定義的目錄下,默認值爲各用戶的家目錄)
    anon_root=/ftpfile # (使用匿名登入時,所登入的目錄)
    use_localtime=YES # (默認是GMT時間,改爲使用本機系統時間)
    anonymous_enable=NO # (不容許匿名用戶登陸)
    local_enable=YES # (容許本地用戶登陸)
    write_enable=YES # (本地用戶能夠在本身家目錄中進行讀寫操做)
    local_umask=022 # (本地用戶新增檔案時的umask值)
    dirmessage_enable=YES # (若是啓動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,若是有,則會出現此檔案的內容,一般這個檔案會放置歡迎話語,或是對該目錄的說明。默認值爲開啓)
    xferlog_enable=YES # (是否啓用上傳/下載日誌記錄。若是啓用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設爲開啓。)
    connect_from_port_20=YES # (指定FTP使用20端口進行數據傳輸,默認值爲YES)
    xferlog_std_format=YES # (若是啓用,則日誌文件將會寫成xferlog的標準格式)
    ftpd_banner=Welcome to HelloWord FTP Server # (這裏用來定義歡迎話語的字符串)
    chroot_local_user=NO # (用於指定用戶列表文件中的用戶是否容許切換到上級目錄)
    chroot_list_enable=YES # (設置是否啓用chroot_list_file配置項指定的用戶列表文件)
    chroot_list_file=/etc/vsftpd/chroot_list # (用於指定用戶列表文件)
    listen=YES # (設置vsftpd服務器是否以standalone模式運行,以standalone模式運行是一種較好的方式,此時listen必須設置爲YES,此爲默認值。建議不要更改,有不少與服務器運行相關的配置命令,須要在此模式下才有效,若設置爲NO,則vsftpd不是以獨立的服務運行,要受到xinetd服務的管控,功能上會受到限制)
    pam_service_name=vsftpd # (虛擬用戶使用PAM認證方式,這裏是設置PAM使用的名稱,默認便可,與/etc/pam.d/vsftpd對應) userlist_enable=YES(是否啓用vsftpd.user_list文件,黑名單,白名單均可以
    allow_writeable_chroot=YES  # 若是啓用了限定用戶在其主目錄下須要添加這個配置
    pasv_min_port=61001 # (被動模式使用端口範圍最小值)
    pasv_max_port=62000 # (被動模式使用端口範圍最大值)
    pasv_enable=YES 
    # 若設置爲YES,則使用PASV工做模式;若設置爲NO,則使用PORT模式。默認值爲YES,即便用PASV工做模式。
    # FTP協議有兩種工做方式:PORT方式和PASV方式,中文意思爲主動式和被動式。
    # 1、PORT(主動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。 
    # 當須要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴服務器:「我打開了****端口,你過來鏈接我」。因而服務器從20端口向客戶端的****端口發送鏈接請求,創建一條數據鏈路來傳送數據。
    # 2、PASV(被動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。 
    # 當須要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:「我打開了****端口,你過來鏈接我」。因而客戶端向服務器的****端口發送鏈接請求,創建一條數據鏈路來傳送數據。 
    # 從上面能夠看出,兩種方式的命令鏈路鏈接方法是同樣的,而數據鏈路的創建方法就徹底不一樣。而FTP的複雜性就在於此。
    # 從新啓動服務
    systemctl restart vsftpd.service
    sudo vi /etc/selinux/config # 修改成SELINUX=disabled 
    # :wq! 
    # 注: 若是驗證的時候碰到550拒絕訪問請執行: sudo setsebool -P ftp_home_dir 1  而後重啓linux服務器,執行reboot命令
    # 本機測試
    yum install ftp -y
    ftp localhost
  4. 防火牆配置

    sudo vi /etc/sysconfig/iptables
    -A INPUT -p TCP --dport 61000:62000 -j ACCEPT
    -A OUTPUT -p TCP --sport 61000:62000 -j ACCEPT
    -A INPUT -p TCP --dport 20 -j ACCEPT
    -A OUTPUT -p TCP --sport 20 -j ACCEPT
    -A INPUT -p TCP --dport 21 -j ACCEPT
    -A OUTPUT -p TCP --sport 21 -j ACCEPT
    # 將以上配置添加到防火牆配置中
    # :wq保存退出
    sudo service iptables restart # 執行命令重啓防火牆
相關文章
相關標籤/搜索