RHEL搭建FTP服務(wù)器步驟和問(wèn)題解析
簡(jiǎn)單地說(shuō),支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器,而RHEL 4是一個(gè)系統(tǒng),要在RHEL 4中搭建FTP是一個(gè)復(fù)雜的過(guò)程,下面就來(lái)詳細(xì)的講解一下RHEL搭建FTP上的過(guò)程。
1、RHEL搭建FTP中首先修改配置文件使主機(jī)獲得***Ip地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.16.16.111
NETMASK=255.255.0.0
GATEWAY=172.16.16.1
ONBOOT=yes
TYPE=Ethernet
重啟配置文件使之生效
# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
需要關(guān)掉iptables系統(tǒng)防火墻,使用命令:
# service iptables stop
把安全級(jí)別調(diào)低
# vi /etc/selinux/config
把其中的:SELINUXTYPE=targeted改為SELINUXTYPE=disabled
在系統(tǒng)中vsftpd并沒(méi)被默認(rèn)安裝,需要使用rpm命令安裝一下
它在RHEL4的第1張光盤(pán)中,包文件的名稱是vsftpd-2.0.1-5.i386.rpm
首先需要掛載光盤(pán)
# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/RedHat/RPMS
# ls -l vsftpd*
-rw-r--r-- 25 root root 122195 Jan 6 2005 vsftpd-2.0.1-5.i386.rpm
掛載上去后,把它安裝上去
# rpm -ivh vsftpd-2.0.1-5.i386.rpm
warning: vsftpd-2.0.1-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
我們看一下vsftpd.conf的配置文件
# grep -v '#' /etc/vsftpd/vsftpd.conf(去除注釋行后的配置文件)
anonymous_enable=YES //anonymous_enable設(shè)置為yes時(shí),ftp服務(wù)器允許匿名登錄,即用戶可使用用戶名ftp或anonymous進(jìn)行ftp登錄,登錄口令為用戶E-mail地址。
local_enable=YES //local_enable設(shè)置為yes時(shí)允許本地用戶登錄,本地用戶指lunux系統(tǒng)中的用戶賬號(hào)。
write_enable=YES //write_enable設(shè)置為yes時(shí),ftp服務(wù)器開(kāi)放對(duì)本地用戶的寫(xiě)權(quán)限
local_umask=022 //local_umask設(shè)置項(xiàng)設(shè)置本地用戶的文件生成掩碼,配置文件中的設(shè)置為022。
dirmessage_enable=YES //dirmessage_enable設(shè)置為yes時(shí),當(dāng)切換到ftp服務(wù)器中的某個(gè)目錄時(shí),將顯示該目錄下的".message"隱含文件的內(nèi)容.
xferlog_enable=YES //xferlog_enable設(shè)置為yes時(shí),ftp服務(wù)器將啟用上傳和下載日志。
connect_from_port_20=YES //connect_from_port_20設(shè)置為yes時(shí),ftp服務(wù)器將啟用ftp數(shù)據(jù)端口的連接請(qǐng)求。
xferlog_std_format=YES //xferlog_std_format設(shè)置為yes時(shí),ftp服務(wù)器將使用標(biāo)準(zhǔn)的ftpd xferlog日志格式。
pam_service_name=vsftpd //pam_service_name設(shè)置PAM認(rèn)證服務(wù)的配置文件名稱,該文件保存在"/etc/pam.d/"目錄下。
userlist_enable=YES //userlist_enable設(shè)置為yes時(shí),ftp服務(wù)器將檢查userlist_file設(shè)置文件中指定的用戶是否可以訪問(wèn)vsftpd服務(wù)器;userlist_file配置項(xiàng)默認(rèn)值是"/etc/vsftpd.usr_list"文件。
listen=YES //listen設(shè)置為yes時(shí),ftp服務(wù)器將處于獨(dú)立啟動(dòng)模式。
tcp_wrappers=YES //tcp_wrappers設(shè)置為yes時(shí),ftp服務(wù)器將使用tcp_wrappes作為主機(jī)訪問(wèn)控制方式。tcp_wrappers可以實(shí)現(xiàn)linux系統(tǒng)中網(wǎng)絡(luò)服務(wù)的基于主機(jī)地址的訪問(wèn)控制,在"/etc"目錄中的hosts.allow和host.deny兩個(gè)文件用于設(shè)置tcp_wrappers的訪問(wèn)控制,hosts.allow文件設(shè)置允許訪問(wèn)記錄,host.deny文件設(shè)置拒絕訪問(wèn)記錄。
啟動(dòng)vsftpd服務(wù)器
# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
關(guān)閉可以使用:
service vsftpd stop
Shutting down vsftpd: [ OK ]
查看服務(wù)器的運(yùn)行狀態(tài)使用:
# service vsftpd status
vsftpd is stopped
添加兩個(gè)本地用戶,使用本地用戶登錄ftp
# useradd aa
# passwd aa
# useradd bb
# passwd bb
并改變目錄的屬主和屬組
# chown aa.aa /home/aa
# chown bb.bb /home/bb
# ls -l /home
total 24
drwx------ 4 aa aa 4096 May 26 12:15 aa
drwx------ 4 bb bb 4096 May 26 12:16 bb
設(shè)置宿主目錄權(quán)限
# chmod 770 /home/aa
# chmod 770 /home/bb
# ls -l /home
total 24
drwxrwx--- 4 aa aa 4096 May 26 12:15 aa
drwxrwx--- 4 bb bb 4096 May 26 12:16 bb
這時(shí)可以登錄ftp
1、使用匿名用戶登錄
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,208,47)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Oct 04 2004 pub
226 Directory send OK.
其中匿名用戶登錄使用ftp或anonymous作為ftp登錄的用戶名,在vsftpd的默認(rèn)設(shè)置時(shí)輸入任何字符串或直接回車都可以登錄,匿名用戶登錄后將以ftp服務(wù)器系統(tǒng)中的"/var/ftp"目錄作為匿名用戶的ftp根目錄。
2、使用本地用戶登錄
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): aa
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,223,86)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 19 May 26 03:48 11.txt
226 Directory send OK.
使用put命令可以將ftp客戶機(jī)中的文件上傳到ftp服務(wù)器中。
ftp> put 22.txt
local: 22.txt remote: 22.txt
227 Entering Passive Mode (172,16,16,121,86,19)
150 Ok to send data.
226 File receive OK.
30 bytes sent in 0.00086 seconds (34 Kbytes/s)
使用get命令可以將ftp服務(wù)器中的文件下載到ftp客戶機(jī)中。
ftp> get 22.txt
local: 22.txt remote: 22.txt
227 Entering Passive Mode (172,16,16,121,143,82)
150 Opening BINARY mode data connection for 22.txt (30 bytes).
226 File send OK.
30 bytes received in 0.0005 seconds (58 Kbytes/s)
不過(guò)使用本地ftp用戶賬號(hào)存在一定的安全性,首先它是系統(tǒng)賬號(hào),一旦ftp服務(wù)器出現(xiàn)安全漏洞會(huì)對(duì)整個(gè)ftp服務(wù)器所在的linux主機(jī)造成威脅;另外就是本地用戶賬號(hào)可以離開(kāi)用戶宿主目錄,轉(zhuǎn)換到系統(tǒng)中的其他目錄中,這對(duì)系統(tǒng)的安全有著一定的威脅??墒窃O(shè)置ftp本地用戶禁錮在宿主目錄中,這樣可以防止它切換到其他的目錄中。
在vsftpd服務(wù)器的配置文件vsftpd.conf中添加配置項(xiàng)chroot_local_user設(shè)置為YES,vsftpd服務(wù)器將會(huì)把本地用戶禁錮在用戶宿主目錄中。
chroot_local_user=YES,配置完后記得要重啟服務(wù),這樣ftp本地用戶就只可以訪問(wèn)自己的目錄了。
配置ftp服務(wù)器的虛擬目錄,在vsftpd服務(wù)器中支持匿名用戶、本地用戶和虛擬用戶3類用戶賬號(hào)
在前面認(rèn)識(shí)了兩種,其中匿名用戶是名為anonymous或ftp的ftp用戶,匿名ftp用戶登錄后將ftp服務(wù)器中的"/var/ftp"作為ftp根目錄。匿名用戶通常用于提供公共文件的下載。
本地用戶賬號(hào)時(shí)ftp服務(wù)器中的系統(tǒng)用戶賬號(hào),使用ftp本地用戶賬號(hào)登錄ftp服務(wù)器后,登錄目錄為本地用戶的宿主目錄。本地ftp用戶賬號(hào)通常和web服務(wù)器一起提供虛擬主機(jī)服務(wù),作為網(wǎng)頁(yè)虛擬主機(jī)更新網(wǎng)頁(yè)的途徑。
虛擬用戶賬號(hào)時(shí)為了保證ftp服務(wù)器的安全性,由vsftpd服務(wù)器提供的非系統(tǒng)用戶賬號(hào)。虛擬用戶ftp登錄后將把指定的目錄作為ftp根目錄。虛擬用戶與本地用戶具有類似的功能。
#p#
2、RHEL搭建FTP中虛擬用戶賬號(hào)的設(shè)置過(guò)程
1、建立虛擬用戶口令庫(kù)文件.
建立虛擬用戶的口令庫(kù),文件中奇數(shù)行設(shè)置虛擬用戶的用戶名,偶數(shù)行設(shè)置用戶的口令.
使用文本編輯器建立名為logins.txt的用戶口令庫(kù)文件
# vi logins.txt
ee
123
rr
456
2、生成vsftpd的認(rèn)證文件.
首先我們需要安裝一下db4-utils-4.2.52-7.1.i386.rpm,在第3張光盤(pán)中.
# cd /media/cdrom/RedHat/RPMS/
# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm
warning: db4-utils-4.2.52-7.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...########################################### [100%]
package db4-utils-4.2.52-7.1 is already installed
然后使用db_load命令生成認(rèn)證文件,"-f"命令選項(xiàng)設(shè)置的值時(shí)虛擬用戶的口令庫(kù)文件,即:logins.txt.命令的參數(shù)設(shè)置為需要生成的認(rèn)證文件名vsftpd_login.db,該文件放置在目錄"/etc/vsftpd"中.
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
設(shè)置vsftpd_login.db文件的權(quán)限只對(duì)root用戶可讀可寫(xiě).即600.
# chmod 600 /etc/vsftpd/vsftpd_login.db
[root@benet01 ~]# ls -l /etc/vsftpd/vsftpd_login.db
-rw------- 1 root root 12288 May 26 12:54 /etc/vsftpd/vsftpd_login.db
3、建立虛擬用戶所需的PAM配置文件.
在"/etc/pam.d"目錄中建立vsftpd虛擬用戶身份認(rèn)證所需的PAM配置文件,名稱為vsftpd.vu.
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
4、建立虛擬用戶及所要訪問(wèn)的目錄并設(shè)置相應(yīng)權(quán)限.
建立vsftpd虛擬用戶所需的系統(tǒng)用戶賬號(hào),賬號(hào)為zhen,指定用戶的宿主目是"/home/ftpsite/",設(shè)置宿主目錄的權(quán)限是700(vsftpd服務(wù)器中的所有虛擬用戶賬號(hào)登錄后都將在"/home/ftpsite"目錄中)
# useradd -d /home/ftpsite zhen
# chmod 700 /home/ftpsite
5、設(shè)置vsftpd.conf配置文件
在對(duì)vsftpd.conf配置文件修改前,先將它原來(lái)的文件備份,以便出現(xiàn)配置錯(cuò)誤時(shí)可進(jìn)行恢復(fù).
# cd /etc/vsftpd
# cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf配置文件添加虛擬用戶的配置項(xiàng):
guest_enable=yes
guest_username=zhen
pam_service_name=vsftpd.vu
所有配置完成后,重新啟動(dòng)vsftpd服務(wù)程序
# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
可以對(duì)不同的用戶設(shè)置不同的權(quán)限.
3、RHEL搭建FTP中vsftpd服務(wù)器中的虛擬用戶可以靈活的針對(duì)不同的用戶賬號(hào)設(shè)置不同的用戶權(quán)限:
1、設(shè)置主配置文件
在vsftpd配置文件中添加user_config_dir配置項(xiàng),并設(shè)置用戶配置文件的保存路徑
user_config_dir=/etc/vsftpd_user_conf(設(shè)置在"/etc/vsftpd_user_conf"目錄中保存虛擬用戶的配置文件.)
2、建立用戶配置文件目錄
# mkdir /etc/vsftpd_user_conf
3、為虛擬目錄建立單獨(dú)的配置文件
為用戶建立獨(dú)立的配置文件,配置文件名稱和用戶名相同,并給他相應(yīng)的權(quán)限.
# vi /etc/vsftpd_user_conf/rr
anon_world_readable_only=no //表示用戶可以瀏覽ftp目錄和下載文件.
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): rr
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,250,156)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 29 May 26 05:27 44.txt
-rw-r--r-- 1 0 0 0 May 26 05:30 55.txt
-rw-r--r-- 1 503 503 0 May 26 05:24 afile
-rw-r--r-- 1 503 503 0 May 26 06:10 file01
以上就是RHEL搭建FTP上的一個(gè)過(guò)程,以及虛擬用戶賬號(hào)的設(shè)置的簡(jiǎn)單過(guò)程,希望可以給大家對(duì)RHEL搭建FTP有所幫助。
【編輯推薦】