自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

完全指南:如何在CentOS 7中安裝、配置和安全加固FTP服務

系統(tǒng) Linux
在本指南中,我們將介紹在 CentOS/RHEL7 和 Fedora 發(fā)行版中安裝、配置和保護 FTP 服務器( VSFTPD 代表 “Very Secure FTP Daemon”)的步驟。

[[191930]]

FTP(文件傳輸協(xié)議)是一種用于通過網絡在服務器和客戶端之間傳輸文件的傳統(tǒng)并廣泛使用的標準工具,特別是在不需要身份驗證的情況下(允許匿名用戶連接到服務器)。我們必須明白,默認情況下 FTP 是不安全的,因為它不加密傳輸用戶憑據(jù)和數(shù)據(jù)。

在本指南中,我們將介紹在 CentOS/RHEL7 和 Fedora 發(fā)行版中安裝、配置和保護 FTP 服務器( VSFTPD 代表 “Very Secure FTP Daemon”)的步驟。

請注意,本指南中的所有命令將以 root 身份運行,如果你不使用 root 帳戶操作服務器,請使用 sudo命令 獲取 root 權限。

步驟 1:安裝 FTP 服務器

1、 安裝 vsftpd 服務器很直接,只要在終端運行下面的命令。

  1. # yum install vsftpd 

2、 安裝完成后,服務先是被禁用的,因此我們需要手動啟動,并設置在下次啟動時自動啟用:

  1. # systemctl start vsftpd 
  2. # systemctl enable vsftpd 

3、 接下來,為了允許從外部系統(tǒng)訪問 FTP 服務,我們需要打開 FTP 守護進程監(jiān)聽的 21 端口:

  1. # firewall-cmd --zone=public --permanent --add-port=21/tcp 
  2. # firewall-cmd --zone=public --permanent --add-service=ftp 
  3. # firewall-cmd --reload 

步驟 2: 配置 FTP 服務器

4、 現(xiàn)在,我們會進行一些配置來設置并加密我們的 FTP 服務器,讓我們先備份一下原始配置文件 /etc/vsftpd/vsftpd.conf:

  1. # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig 

接下來,打開上面的文件,并將下面的選項設置相關的值:

  1. anonymous_enable=NO             ### 禁用匿名登錄 
  2. local_enable=YES        ### 允許本地用戶登錄 
  3. write_enable=YES        ### 允許對文件系統(tǒng)做改動的 FTP 命令 
  4. local_umask=022             ### 本地用戶創(chuàng)建文件所用的 umask 值 
  5. dirmessage_enable=YES           ### 當用戶首次進入一個新目錄時顯示一個消息 
  6. xferlog_enable=YES      ### 用于記錄上傳、下載細節(jié)的日志文件 
  7. connect_from_port_20=YES        ### 使用端口 20 (ftp-data)用于 PORT 風格的連接 
  8. xferlog_std_format=YES          ### 使用標準的日志格式 
  9. listen=NO               ### 不要讓 vsftpd 運行在獨立模式 
  10. listen_ipv6=YES             ### vsftpd 將監(jiān)聽 IPv6 而不是 IPv4 
  11. pam_service_name=vsftpd         ###  vsftpd 使用的 PAM 服務名 
  12. userlist_enable=YES             ### vsftpd 支持載入用戶列表 
  13. tcp_wrappers=YES        ### 使用 tcp wrappers 

5、 現(xiàn)在基于用戶列表文件 /etc/vsftpd.userlist 來配置 FTP 來允許/拒絕用戶的訪問。

默認情況下,如果設置了 userlist_enable=YES,當 userlist_deny 選項設置為 YES 的時候,userlist_file=/etc/vsftpd.userlist 中列出的用戶被拒絕登錄。

然而, 更改配置為 userlist_deny=NO,意味著只有在 userlist_file=/etc/vsftpd.userlist 顯式指定的用戶才允許登錄。

  1. userlist_enable=YES                   ### vsftpd 將從 userlist_file 給出的文件中載入用戶名列表 
  2. userlist_file=/etc/vsftpd.userlist    ### 存儲用戶名的文件 
  3. userlist_deny=NO    

這并不是全部,當用戶登錄到 FTP 服務器時,它們會進入 chroot jail 中,這是僅作為 FTP 會話主目錄的本地根目錄。

接下來,我們將介紹如何將 FTP 用戶 chroot 到 FTP 用戶的家目錄(本地 root)中的兩種可能情況,如下所述。

6、 接下來添加下面的選項來限制 FTP 用戶到它們自己的家目錄。

  1. chroot_local_user=YES 
  2. allow_writeable_chroot=YES 

chroot_local_user=YES 意味著用戶可以設置 chroot jail,默認是登錄后的家目錄。

同樣默認的是,出于安全原因,vsftpd 不會允許 chroot jail 目錄可寫,然而,我們可以添加 allow_writeable_chroot=YES 來覆蓋這個設置。

保存并關閉文件。

步驟 3: 用 SELinux 加密 FTP 服務器

7、現(xiàn)在,讓我們設置下面的 SELinux 布爾值來允許 FTP 能讀取用戶家目錄下的文件。請注意,這原本是使用以下命令完成的:

  1. # setsebool -P ftp_home_dir on 

然而,由于這個 bug 報告:https://bugzilla.redhat.com/show_bug.cgi?id=1097775,ftp_home_dir 指令默認是禁用的。

現(xiàn)在,我們會使用 semanage 命令來設置 SELinux 規(guī)則來允許 FTP 讀取/寫入用戶的家目錄。

  1. # semanage boolean -m ftpd_full_access --on 

這時,我們需要重啟 vsftpd 來使目前的設置生效:

  1. # systemctl restart vsftpd 

步驟 4: 測試 FTP 服務器

8、 現(xiàn)在我們會用 useradd 命令創(chuàng)建一個 FTP 用戶來測試 FTP 服務器。

  1. # useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi 
  2. # passwd ravi 

之后,我們如下使用 echo 命令添加用戶 ravi 到文件 /etc/vsftpd.userlist 中:

  1. # echo "ravi" | tee -a /etc/vsftpd.userlist 
  2. # cat /etc/vsftpd.userlist 

9、 現(xiàn)在是時候測試我們上面的設置是否可以工作了。讓我們使用匿名登錄測試,我們可以從下面的截圖看到匿名登錄沒有被允許。

  1. # ftp 192.168.56.10 
  2. Connected to 192.168.56.10  (192.168.56.10). 
  3. 220 Welcome to TecMint.com FTP service. 
  4. Name (192.168.56.10:root) : anonymous 
  5. 530 Permission denied. 
  6. Login failed. 
  7. ftp> 

測試 FTP 匿名登錄 

測試 FTP 匿名登錄

10、 讓我們也測試一下沒有列在 /etc/vsftpd.userlist 中的用戶是否有權限登錄,下面截圖是沒有列入的情況:

  1. # ftp 192.168.56.10 
  2. Connected to 192.168.56.10  (192.168.56.10). 
  3. 220 Welcome to TecMint.com FTP service. 
  4. Name (192.168.56.10:root) : aaronkilik 
  5. 530 Permission denied. 
  6. Login failed. 
  7. ftp> 

FTP 用戶登錄失敗 

FTP 用戶登錄失敗

11、 現(xiàn)在最后測試一下列在 /etc/vsftpd.userlist 中的用戶是否在登錄后真的進入了他/她的家目錄:

  1. # ftp 192.168.56.10 
  2. Connected to 192.168.56.10  (192.168.56.10). 
  3. 220 Welcome to TecMint.com FTP service. 
  4. Name (192.168.56.10:root) : ravi 
  5. 331 Please specify the password
  6. Password
  7. 230 Login successful. 
  8. Remote system type is UNIX. 
  9. Using binary mode to transfer files. 
  10. ftp> ls 

用戶成功登錄 

用戶成功登錄

警告:使用 allow_writeable_chroot=YES 有一定的安全隱患,特別是用戶具有上傳權限或 shell 訪問權限時。

只有當你完全知道你正做什么時才激活此選項。重要的是要注意,這些安全性影響并不是 vsftpd 特定的,它們適用于所有提供了將本地用戶置于 chroot jail 中的 FTP 守護進程。

因此,我們將在下一節(jié)中看到一種更安全的方法來設置不同的不可寫本地根目錄。

步驟 5: 配置不同的 FTP 家目錄

12、 再次打開 vsftpd 配置文件,并將下面不安全的選項注釋掉:

  1. #allow_writeable_chroot=YES 

接著為用戶(ravi,你的可能不同)創(chuàng)建另外一個替代根目錄,并將所有用戶對該目錄的可寫權限移除:

  1. # mkdir /home/ravi/ftp 
  2. # chown nobody:nobody /home/ravi/ftp 
  3. # chmod a-w /home/ravi/ftp 

13、 接下來,在用戶存儲他/她的文件的本地根目錄下創(chuàng)建一個文件夾:

  1. # mkdir /home/ravi/ftp/files 
  2. # chown ravi:ravi  /home/ravi/ftp/files 
  3. # chmod 0700 /home/ravi/ftp/files/ 

接著在 vsftpd 配置文件中添加/修改這些選項:

  1. user_sub_token=$USER         ### 在本地根目錄下插入用戶名 
  2. local_root=/home/$USER/ftp   ### 定義任何用戶的本地根目錄 

保存并關閉文件。再說一次,有新的設置后,讓我們重啟服務:

  1. # systemctl restart vsftpd 

14、 現(xiàn)在最后在測試一次查看用戶本地根目錄就是我們在他的家目錄創(chuàng)建的 FTP 目錄。

  1. # ftp 192.168.56.10 
  2. Connected to 192.168.56.10  (192.168.56.10). 
  3. 220 Welcome to TecMint.com FTP service. 
  4. Name (192.168.56.10:root) : ravi 
  5. 331 Please specify the password
  6. Password
  7. 230 Login successful. 
  8. Remote system type is UNIX. 
  9. Using binary mode to transfer files. 
  10. ftp> ls 

FTP 用戶家目錄登錄成功 

FTP 用戶家目錄登錄成功

就是這樣了!在本文中,我們介紹了如何在 CentOS 7 中安裝、配置以及加密的 FTP 服務器,使用下面的評論欄給我們回復,或者分享關于這個主題的任何有用信息。

建議閱讀: 在 RHEL/CentOS 7 上安裝 ProFTPD 服務器

在下一篇文章中,我們還將向你介紹如何在 CentOS 7 中保護使用 SSL/TLS連接的 FTP 服務器,再此之前,請繼續(xù)關注 TecMint。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2017-03-21 15:51:57

LinuxCentOS 7MariaDB 10

2017-05-15 22:20:49

2017-03-17 14:05:48

LinuxUbuntuFTP服務器

2010-03-26 18:52:36

CentOS FTP服

2015-12-11 13:16:10

CentOS 7Redis服務器

2017-03-09 13:26:33

2010-03-24 15:53:09

2014-12-01 11:27:54

CentOS 7Docker

2019-11-21 08:50:54

CentOS 8Postfix郵件服務器

2019-10-14 15:00:12

Centos 8 RHEL 8VNC

2017-04-11 13:20:06

CentOSRHELFedora

2017-03-17 16:30:23

2017-05-03 14:00:00

LinuxCentOSElastic Sta

2010-05-18 14:25:11

IIS服務器

2010-04-01 16:04:26

CentOS系統(tǒng)

2010-04-06 11:15:23

2016-12-26 09:19:38

CentOS 7RabbitMQ服務

2015-02-03 03:00:51

CentOSJetty

2019-11-14 09:20:15

CentOS 8RHEL 8Nagios Core

2011-02-23 10:18:51

CentosProFTPD
點贊
收藏

51CTO技術棧公眾號