新聞中心
FTP是一種上傳和下載用的軟件。用戶可以通過(guò)它把自己的PC機(jī)與運(yùn)行FTP協(xié)議的服務(wù)器相連,訪問(wèn)服務(wù)器上的程序和信息,本篇文章重點(diǎn)為大家分享如何在Centos中部署并加密FTP服務(wù)器。

步驟 1:安裝 FTP 服務(wù)器
1、 安裝 vsftpd 服務(wù)器很直接,只要在終端運(yùn)行下面的命令。
# yum install vsftpd
2、 安裝完成后,服務(wù)先是被禁用的,因此我們需要手動(dòng)啟動(dòng),并設(shè)置在下次啟動(dòng)時(shí)自動(dòng)啟用:
# systemctl start vsftpd
# systemctl enable vsftpd
3、 接下來(lái),為了允許從外部系統(tǒng)訪問(wèn) FTP 服務(wù),我們需要打開(kāi) FTP 守護(hù)進(jìn)程監(jiān)聽(tīng)的 21 端口:
# firewall-cmd --zone=public --permanent --add-port=21/tcp
# firewall-cmd --zone=public --permanent --add-service=ftp
# firewall-cmd --reload
步驟 2: 配置 FTP 服務(wù)器
4、 現(xiàn)在,我們會(huì)進(jìn)行一些配置來(lái)設(shè)置并加密我們的 FTP 服務(wù)器,讓我們先備份一下原始配置文件
/etc/vsftpd/vsftpd.conf
:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
接下來(lái),打開(kāi)上面的文件,并將下面的選項(xiàng)設(shè)置相關(guān)的值:
anonymous_enable=NO ### 禁用匿名登錄
local_enable=YES ### 允許本地用戶登錄
write_enable=YES ### 允許對(duì)文件系統(tǒng)做改動(dòng)的 FTP 命令
local_umask=022 ### 本地用戶創(chuàng)建文件所用的 umask 值
dirmessage_enable=YES ### 當(dāng)用戶首次進(jìn)入一個(gè)新目錄時(shí)顯示一個(gè)消息
xferlog_enable=YES ### 用于記錄上傳、下載細(xì)節(jié)的日志文件
connect_from_port_20=YES ### 使用端口 20 (ftp-data)用于 PORT 風(fēng)格的連接
xferlog_std_format=YES ### 使用標(biāo)準(zhǔn)的日志格式
listen=NO ### 不要讓 vsftpd 運(yùn)行在獨(dú)立模式
listen_ipv6=YES ### vsftpd 將監(jiān)聽(tīng) IPv6 而不是 IPv4
pam_service_name=vsftpd ### vsftpd 使用的 PAM 服務(wù)名
userlist_enable=YES ### vsftpd 支持載入用戶列表
tcp_wrappers=YES ### 使用 tcp wrappers
5、 現(xiàn)在基于用戶列表文件/etc/vsftpd.userlist來(lái)配置 FTP 來(lái)允許/拒絕用戶的訪問(wèn)。
默認(rèn)情況下,如果設(shè)置了userlist_enable=YES,當(dāng)userlist_deny選項(xiàng)設(shè)置為YES的時(shí)候,userlist_file=/etc/vsftpd.userlist中列出的用戶被拒絕登錄。
然而, 更改配置為userlist_deny=NO,意味著只有在userlist_file=/etc/vsftpd.userlist顯式指定的用戶才允許登錄。
userlist_enable=YES ### vsftpd 將從 userlist_file 給出的文件中載入用戶名列表
userlist_file=/etc/vsftpd.userlist ### 存儲(chǔ)用戶名的文件
userlist_deny=NO
這并不是全部,當(dāng)用戶登錄到 FTP 服務(wù)器時(shí),它們會(huì)進(jìn)入 chroot jail 中,這是僅作為 FTP 會(huì)話主目錄的本地根目錄。
接下來(lái),我們將介紹如何將 FTP 用戶 chroot 到 FTP 用戶的家目錄(本地 root)中的兩種可能情況,如下所述。
6、 接下來(lái)添加下面的選項(xiàng)來(lái)限制 FTP 用戶到它們自己的家目錄。
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YES意味著用戶可以設(shè)置 chroot jail,默認(rèn)是登錄后的家目錄。
同樣默認(rèn)的是,出于安全原因,vsftpd 不會(huì)允許 chroot jail 目錄可寫(xiě),然而,我們可以添加allow_writeable_chroot=YES 來(lái)覆蓋這個(gè)設(shè)置。
保存并關(guān)閉文件。
步驟 3: 用 SELinux 加密 FTP 服務(wù)器
7、現(xiàn)在,讓我們?cè)O(shè)置下面的 SELinux 布爾值來(lái)允許 FTP 能讀取用戶家目錄下的文件。請(qǐng)注意,這原本是使用以下命令完成的:
# setsebool -P ftp_home_dir on
然而,由于這個(gè) bug 報(bào)告:ftp_home_dir指令默認(rèn)是禁用的。
現(xiàn)在,我們會(huì)使用semanage命令來(lái)設(shè)置 SELinux 規(guī)則來(lái)允許 FTP 讀取/寫(xiě)入用戶的家目錄。
# semanage boolean -m ftpd_full_access --on
這時(shí),我們需要重啟 vsftpd 來(lái)使目前的設(shè)置生效:
# systemctl restart vsftpd
步驟 4: 測(cè)試 FTP 服務(wù)器
8、 現(xiàn)在我們會(huì)用useradd 命令創(chuàng)建一個(gè) FTP 用戶來(lái)測(cè)試 FTP 服務(wù)器。
# useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi
# passwd ravi
之后,我們?nèi)缦率褂胑cho 命令添加用戶 ravi 到文件/etc/vsftpd.userlist中:
# echo "ravi" | tee -a /etc/vsftpd.userlist
# cat /etc/vsftpd.userlist
9、 現(xiàn)在是時(shí)候測(cè)試我們上面的設(shè)置是否可以工作了。讓我們使用匿名登錄測(cè)試,我們可以從下面的截圖看到匿名登錄沒(méi)有被允許。
# ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : anonymous
530 Permission denied.
Login failed.
ftp>
在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)
測(cè)試 FTP 匿名登錄
10、 讓我們也測(cè)試一下沒(méi)有列在/etc/vsftpd.userlist中的用戶是否有權(quán)限登錄,下面截圖是沒(méi)有列入的情況:
# ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : aaronkilik
530 Permission denied.
Login failed.
ftp>
在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)
FTP 用戶登錄失敗
11、 現(xiàn)在最后測(cè)試一下列在 /etc/vsftpd.userlist 中的用戶是否在登錄后真的進(jìn)入了他/她的家目錄:
# ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)
用戶成功登錄
警告:使用 allow_writeable_chroot=YES有一定的安全隱患,特別是用戶具有上傳權(quán)限或 shell 訪問(wèn)權(quán)限時(shí)。
只有當(dāng)你完全知道你正做什么時(shí)才激活此選項(xiàng)。重要的是要注意,這些安全性影響并不是 vsftpd 特定的,它們適用于所有提供了將本地用戶置于 chroot jail 中的 FTP 守護(hù)進(jìn)程。
因此,我們將在下一節(jié)中看到一種更安全的方法來(lái)設(shè)置不同的不可寫(xiě)本地根目錄。
步驟 5: 配置不同的 FTP 家目錄
12、 再次打開(kāi) vsftpd 配置文件,并將下面不安全的選項(xiàng)注釋掉:
#allow_writeable_chroot=YES
接著為用戶(ravi,你的可能不同)創(chuàng)建另外一個(gè)替代根目錄,并將所有用戶對(duì)該目錄的可寫(xiě)權(quán)限移除:
# mkdir /home/ravi/ftp
# chown nobody:nobody /home/ravi/ftp
# chmod a-w /home/ravi/ftp
13、 接下來(lái),在用戶存儲(chǔ)他/她的文件的本地根目錄下創(chuàng)建一個(gè)文件夾:
# mkdir /home/ravi/ftp/files
# chown ravi:ravi /home/ravi/ftp/files
# chmod 0700 /home/ravi/ftp/files/
接著在 vsftpd 配置文件中添加/修改這些選項(xiàng):
user_sub_token=$USER ### 在本地根目錄下插入用戶名
local_root=/home/$USER/ftp ### 定義任何用戶的本地根目錄
保存并關(guān)閉文件。再說(shuō)一次,有新的設(shè)置后,讓我們重啟服務(wù):
# systemctl restart vsftpd
14、 現(xiàn)在最后在測(cè)試一次查看用戶本地根目錄就是我們?cè)谒募夷夸泟?chuàng)建的 FTP 目錄。
# ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)在 CentOS 7 中安裝、配置和安全加固 FTP 服務(wù)
FTP 用戶家目錄登錄成功
分享文章:Centos中部署并加密FTP服務(wù)器
文章出自:http://www.5511xx.com/article/dhdspjo.html


咨詢
建站咨詢
