linux搭建一台外網使用的FTP服務器


上上個月,幫客戶搭建了一台FTP服務器。

系統環境:redhat 8,可以上外網

服務使用:vsftpd

數據:無任何數據

要求:(1)FTP用戶僅可以訪問指定的FTP文件目錄,ftp終端軟件界面中不能切換到其他目錄,ftp賬號不可以登錄系統shell界面

   (2)防火牆要開啟 

步驟一:用CRT,root賬號登錄服務器,進行配置,賬號名稱,安裝vsftpd服務

     grep ftptest /etc/passwd          確認該服務器無該賬號
     cd /
     mkdir FTP                進入根目錄, 創建FTP目錄
     useradd -d /FTP -s /sbin/nologin ftptest       指定/FTP目錄創建ftptest 用戶賬號,不能登錄   
     passwd ftptest        設置密碼
     chown -R ftptest:ftptest /FTP      設置/FTP 目錄歸屬賬號及用戶組
在FTP目錄下創建大文件
     dd if=/dev/zero of=150G_1.rar bs=1M count=150000  ----創建大文件
 
這台服務器安裝時估計沒有勾選FTP,沒有FTP服務;但確定可以連外網,因此,還是選擇聯網方式yum安裝vsftpd。
    yum install vsftpd -y
    發現問題:無法解析yum源
    再次嘗試:  ping www.baidu.com
 
    ping: www.baidu.com: Name or service not known
 
測試外網,ping百度,提示無法解析。
好吧,dns需要配一下,查找dns專有配置文件,不存在。
處理如下:
    新建resolv.conf 文件
    vi /etc/resolv.conf
    nameserver 223.5.5.5            ---加入一條阿里提供的公網可用dns服務器地址                                                                                                                                                                                                                                                                                                                       

[root@localhost etc]# ping baidu.com       
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=50 time=29.8 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=50 time=29.8 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=50 time=29.8 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=50 time=29.7 ms
 
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 29.735/29.777/29.811/0.213 ms
 
###這里注意一下:yum源需要對應服務器安裝的系統,本系統redhat8  ,找了個centos8的repo,可以用。
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/redhat.repo  https://mirrors.aliyun.com/repo/Centos-8.repo
--2020-05-27 11:59:27--  https://mirrors.aliyun.com/repo/Centos-8.repo
正在解析主機 mirrors.aliyun.com (mirrors.aliyun.com)... 116.153.35.249, 116.153.35.242, 116.153.35.245, ...
正在連接 mirrors.aliyun.com (mirrors.aliyun.com)|116.153.35.249|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:2595 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/redhat.repo”
 
/etc/yum.repos.d/redhat.repo               100%[======================================================================================>]   2.53K  --.-KB/s  用時 0s      
 
2020-05-27 11:59:28 (135 MB/s) - 已保存 “/etc/yum.repos.d/redhat.repo” [2595/2595])
 
 
###yum安裝vsftpd
[root@localhost yum.repos.d]# yum install vsftpd -y  
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
CentOS-8 - Base - mirrors.aliyun.com                                                                                                       11 MB/s | 2.2 MB     00:00    
CentOS-8 - Extras - mirrors.aliyun.com                                                                                                     72 kB/s | 6.5 kB     00:00    
CentOS-8 - AppStream - mirrors.aliyun.com                                                                                                  15 MB/s | 7.0 MB     00:00    
依賴關系解決。
==========================================================================================================================================================================
軟件包                                架構                                  版本                                          倉庫                                      大小
==========================================================================================================================================================================
安裝:
vsftpd                                x86_64                                3.0.3-28.el8                                  AppStream                                180 k
 
事務概要
==========================================================================================================================================================================
安裝  1 軟件包
 
總下載:180 k
安裝大小:359 k
下載軟件包:
vsftpd-3.0.3-28.el8.x86_64.rpm                                                                                                            1.0 MB/s | 180 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
總計                                                                                                                                      1.0 MB/s | 180 kB     00:00     
警告:/var/cache/dnf/AppStream-a5e033d33ad24141/packages/vsftpd-3.0.3-28.el8.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID 8483c65d: NOKEY
CentOS-8 - AppStream - mirrors.aliyun.com                                                                                                  47 kB/s | 1.6 kB     00:00    
導入 GPG 公鑰 0x8483C65D:
Userid: "CentOS (CentOS Official Signing Key) < security@centos.org>"
指紋: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
導入公鑰成功
運行事務檢查
事務檢查成功。
運行事務測試
事務測試成功。
運行事務
  准備中  :                                                                                                                                                           1/1
  安裝    : vsftpd-3.0.3-28.el8.x86_64                                                                                                                                1/1
  運行腳本: vsftpd-3.0.3-28.el8.x86_64                                                                                                                                1/1
  驗證    : vsftpd-3.0.3-28.el8.x86_64                                                                                                                                1/1
Installed products updated.
 
已安裝:
  vsftpd-3.0.3-28.el8.x86_64                                                                                                                                              
 
完畢!
[root@localhost yum.repos.d]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

修改vsftpd配置文件
     vi /etc/vsftpd/vsftpd.conf
    chroot_list_enable=YES 
    chroot_list_file=/etc/vsftpd/chroot_list
    最后一行,增加信息:   allow_writeable_chroot=YES
    
    保存退出,然后在當前目錄創建文件chroot_list,將ftptest賬號名增加進去 
    

    systemctl stop firewalld   關閉服務器 防火牆(先關閉,ftp測試正常再開啟)

     sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config     禁用開機自啟動selinux
     getenforce
     setenforce 0        關閉selinux
     getenforce

    systemctl start vsftpd       然后啟動vsftpd服務

    啟動狀態ok

    但發現終端不能連接成功,根據錯誤信息,網上找了類似的情況,最后是通過將    /sbin/nologin   信息增加到/etc/shells里面解決 

 

 

 

 

步驟二:開啟防火牆,加策略:增加ftp服務和21端口開放

    1.備份 /etc/firewalld/zones 下面的public.xml文件
    2.修改該文件,增加以下內容(紅框):
3.重啟防火牆
     systemctl restart firewalld
查看防火牆默認區域設置
     firewall-cmd --list-all


擴展其他:如果是防火牆開啟的狀態下:可以逐條使用命令增加策略:

先查看: firewall-cmd --list-all
臨時生效:
        firewall-cmd --add-port=21/tcp 
       firewall-cmd --add-port=21/udp 
       firewall-cmd --reload    ---這個一定要做的,不然上面2條不生效
       firewall-cmd --add-service="ftp" 
 
帶上--permanent 會存儲到配置文件/etc/firewalld/zones/public.xml
       firewall-cmd --add-port=21/tcp --permanent
       firewall-cmd --add-port=21/udp --permanent
       firewall-cmd --add-service="ftp" --permanent
 
最后,重啟防火牆  systemctl restart firewalld
 
再次FTP測試,狀態OK
動態查看網口數據交互信息: sar -n DEV 1

 

至此,完成FTP服務的搭建,如果數據上傳下載量很大,那么還需要考慮對CPU和網卡綁定優化,這里暫時不做延伸。 

 


免責聲明!

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



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