40 openEuler搭建FTP服務(wù)器-配置vsftpd40.1 vsftpd配置文件介紹40.2 默認(rèn)配置說明40.3 配置本地時(shí)間40.3.1 概述40.3.2 設(shè)置方法40.4 配置歡迎信息40.5 配置系統(tǒng)帳號(hào)登錄權(quán)限40.6 驗(yàn)證FTP服務(wù)是否搭建成功40.7 配置防火墻
40 openEuler搭建FTP服務(wù)器-配置vsftpd
40.1 vsftpd配置文件介紹
用戶可以通過修改vsftpd的配置文件,控制用戶權(quán)限等坯沪。vsftpd的主要配置文件和含義如表1所示抚笔,用戶可以根據(jù)需求修改配置文件的內(nèi)容夜牡。更多的配置參數(shù)含義可以通過man查看。
表 1 vsftpd配置文件介紹
配置文件 | 含義 |
---|---|
/etc/vsftpd/vsftpd.conf | vsftpd進(jìn)程的主配置文件浓利,配置內(nèi)容格式為“參數(shù)=參數(shù)值”鹉勒,且參數(shù)和參數(shù)值不能為空拐格。vsftpd.conf 的詳細(xì)介紹可以使用如下命令查看:man 5 vsftpd.conf |
/etc/pam.d/vsftpd | PAM(Pluggable Authentication Modules)認(rèn)證文件,主要用于身份認(rèn)證和限制一些用戶的操作俭缓。 |
/etc/vsftpd/ftpusers | 禁用使用vsftpd的用戶列表文件克伊。默認(rèn)情況下,系統(tǒng)帳號(hào)也在該文件中尔崔,因此系統(tǒng)帳號(hào)默認(rèn)無法使用vsftpd答毫。 |
/etc/vsftpd/user_list | 禁止或允許登錄vsftpd服務(wù)器的用戶列表文件。該文件是否生效季春,取決于主配置文件vsftpd.conf中的如下參數(shù):userlist_enable:是否啟用userlist機(jī)制洗搂,YES為啟用,此時(shí)userlist_deny配置有效载弄,NO為禁用耘拇。userlist_deny:是否禁止user_list中的用戶登錄,YES為禁止名單中的用戶登錄宇攻,NO為允許命令中的用戶登錄惫叛。例如userlist_enable=YES,userlist_deny=YES逞刷,則user_list中的用戶都無法登錄嘉涌。 |
/etc/vsftpd/chroot_list | 是否限制在主目錄下的用戶列表。該文件默認(rèn)不存在夸浅,需要手動(dòng)建立仑最。它是主配置文件vsftpd.conf中參數(shù)chroot_list_file的參數(shù)值。其作用是限制還是允許帆喇,取決于主配置文件vsftpd.conf中的如下參數(shù):chroot_local_user:是否將所有用戶限制在主目錄警医,YES為啟用,NO禁用。chroot_list_enable:是否啟用限制用戶的名單预皇,YES為啟用侈玄,NO禁用。例如chroot_local_user=YES吟温,chroot_list_enable=YES序仙,且指定chroot_list_file=/etc/vsftpd/chroot_list時(shí),表示所有用戶被限制在其主目錄下鲁豪,而chroot_list中的用戶不受限制诱桂。 |
/usr/sbin/vsftpd | vsftpd的唯一執(zhí)行文件。 |
/var/ftp/ | 匿名用戶登錄的默認(rèn)根目錄呈昔,與ftp帳戶的用戶主目錄有關(guān)挥等。 |
40.2 默認(rèn)配置說明
[圖片上傳失敗...(image-7a1e68-1678976002475)] 說明: 文檔中的配置內(nèi)容僅供參考,請(qǐng)用戶根據(jù)實(shí)際情況(例如安全加固需要)進(jìn)行修改堤尾。
openEuler系統(tǒng)中 肝劲,vsftpd默認(rèn)不開放匿名用戶,使用vim命令查看主配置文件郭宝,其內(nèi)容如下:
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n35" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES</pre>
其中各參數(shù)含義如表2所示辞槐。
表 2 參數(shù)說明
參數(shù) | 含義 |
---|---|
anonymous_enable | 是否允許匿名用戶登錄,YES為允許匿名登錄粘室,NO為不允許榄檬。 |
local_enable | 是否允許本地用戶登入,YES 為允許本地用戶登入衔统,NO為不允許鹿榜。 |
write_enable | 是否允許登錄用戶有寫權(quán)限,YES為啟用上傳寫入功能锦爵,NO為禁用舱殿。 |
local_umask | 本地用戶新增檔案時(shí)的umask值。 |
dirmessage_enable | 當(dāng)用戶進(jìn)入某個(gè)目錄時(shí)险掀,是否顯示該目錄需要注意的內(nèi)容沪袭,YES為顯示注意內(nèi)容,NO為不顯示樟氢。 |
xferlog_enable | 是否記錄使用者上傳與下載文件的操作冈绊,YES為記錄操作,NO為不記錄埠啃。 |
connect_from_port_20 | Port模式進(jìn)行數(shù)據(jù)傳輸是否使用端口20死宣,YES為使用端口20,NO為不使用端口20霸妹。 |
xferlog_std_format | 傳輸日志文件是否以標(biāo)準(zhǔn)xferlog格式書寫十电,YES為使用該格式書寫知押,NO為不使用叹螟。 |
listen | 設(shè)置vsftpd是否以stand alone的方式啟動(dòng)鹃骂,YES為使用stand alone方式啟動(dòng),NO為不使用該方式罢绽。 |
pam_service_name | 支持PAM模塊的管理畏线,配置值為服務(wù)名稱,例如vsftpd良价。 |
userlist_enable | 是否支持/etc/vsftpd/user_list文件內(nèi)的賬號(hào)登錄控制寝殴,YES為支持,NO為不支持明垢。 |
tcp_wrappers | 是否支持TCP Wrappers的防火墻機(jī)制蚣常,YES為支持,NO為不支持痊银。 |
listen_ipv6 | 是否偵聽IPv6的FTP請(qǐng)求抵蚊,YES為偵聽,NO為不偵聽溯革。listen和listen_ipv6不能同時(shí)開啟贞绳。 |
40.3 配置本地時(shí)間
40.3.1 概述
openEuler系統(tǒng)中,vsftpd默認(rèn)使用GMT時(shí)間(格林尼治時(shí)間)致稀,可能和本地時(shí)間不一致冈闭,例如GMT時(shí)間比北京時(shí)間晚8小時(shí),請(qǐng)用戶改為本地時(shí)間抖单,否則服務(wù)器和客戶端時(shí)間不一致萎攒,在上傳下載文件時(shí)可能引起錯(cuò)誤。
40.3.2 設(shè)置方法
在root權(quán)限下設(shè)置vsftpd時(shí)間為本地時(shí)間的操作步驟如下:
- 打開配置文件vsftpd.conf矛绘,將參數(shù)use_localtime的參數(shù)值改為YES躺酒。命令如下:
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n89" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># vim /etc/vsftpd/vsftpd.conf</pre>
配置內(nèi)容如下:
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n91" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">use_localtime=YES</pre>
- 重啟vsftpd服務(wù)。
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n95" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># systemctl restart vsftpd</pre>
- 設(shè)置vsftpd服務(wù)開機(jī)啟動(dòng)蔑歌。
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n99" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># systemctl enable vsftpd</pre>
40.4 配置歡迎信息
正常使用vsftpd服務(wù)羹应,需要存在歡迎信息文件。在root權(quán)限下設(shè)置vsftp的歡迎信息welcome.txt文件的操作步驟如下:
- 打開配置文件vsftpd.conf次屠,加入歡迎信息文件配置內(nèi)容后保存退出园匹。
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n105" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># vim /etc/vsftpd/vsftpd.conf</pre>
需要加入的配置行如下:
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n107" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">banner_file=/etc/vsftpd/welcome.txt</pre>
- 建立歡迎信息。即打開welcome.txt文件劫灶,寫入歡迎信息后保存退出裸违。
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n111" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># vim /etc/vsftpd/welcome.txt</pre>
歡迎信息舉例如下:
<pre class="md-fences mock-cm md-end-block" spellcheck="false" lang="bash" cid="n113" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: pre-wrap; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Welcome to this FTP server!</pre>
40.5 配置系統(tǒng)帳號(hào)登錄權(quán)限
一般情況下,用戶需要限制部分帳號(hào)的登錄權(quán)限本昏。用戶可根據(jù)需要進(jìn)行配置供汛。
限制系統(tǒng)帳號(hào)登錄的文件有兩個(gè),默認(rèn)如下:
/etc/vsftpd/ftpusers:受/etc/pam.d/vsftpd文件的設(shè)置影響,由PAM模塊掌管怔昨。
/etc/vsftpd/user_list:由vsftpd.conf的userlist_file設(shè)置雀久,由vsftpd主動(dòng)提供。
兩個(gè)文件的必須同時(shí)存在且內(nèi)容相同趁舀,請(qǐng)參考/etc/passwd文件赖捌,將UID小于500的帳號(hào)寫入這兩個(gè)文件,每一行代表一個(gè)帳號(hào)矮烹。
如果用戶需要限制系統(tǒng)帳號(hào)登錄越庇,需要在root權(quán)限下將對(duì)應(yīng)帳號(hào)添加到/etc/vsftpd/ftpusers和/etc/vsftpd/user_list。
打開user_list可以查看當(dāng)前文件中包含的帳號(hào)信息奉狈,命令和回顯如下:
<pre class="md-fences mock-cm md-end-block" spellcheck="false" lang="bash" cid="n125" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: pre-wrap; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># vim /etc/vsftpd/user_list
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody</pre>
40.6 驗(yàn)證FTP服務(wù)是否搭建成功
可以使用openEuler自帶的FTP客戶端進(jìn)行驗(yàn)證卤唉。命令和回顯如下,根據(jù)提示輸入用戶名(用戶為系統(tǒng)中存在的用戶)和密碼仁期。如果顯示Login successful搬味,即說明FTP服務(wù)器搭建成功。
<pre class="md-fences mock-cm md-end-block" spellcheck="false" lang="bash" cid="n129" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: pre-wrap; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># ftp localhost
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220-Welcome to this FTP server!
220
Name (localhost:root): USERNAME
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.</pre>
[圖片上傳失敗...(image-662736-1678976002475)] 說明: 如果沒有ftp命令蟀拷,可以在root權(quán)限下執(zhí)行dnf install ftp命令安裝后再使用ftp命令碰纬。
40.7 配置防火墻
如果要將FTP開放給Internet使用,需要在root權(quán)限下對(duì)防火墻和SElinux進(jìn)行設(shè)置问芬。
<pre class="md-fences mock-cm md-end-block" spellcheck="false" lang="bash" cid="n135" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: pre-wrap; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># firewall-cmd --add-service=ftp --permanent
success
firewall-cmd --reload
success
setsebool -P ftpd_full_access on</pre>
?? 點(diǎn)贊悦析,你的認(rèn)可是我創(chuàng)作的動(dòng)力!
?? 收藏此衅,你的青睞是我努力的方向强戴!
?? 評(píng)論,你的意見是我進(jìn)步的財(cái)富挡鞍!