介紹
本章主要介紹在Linux中搭建FTP服務(wù)器的過(guò)程,需要掌握的要點(diǎn)是配置文件的合理配置。
知識(shí)點(diǎn)
在linux中使用的FTP是vsftp
FTP可以有三種登入方式分別是:
- 匿名登錄方式:不需要用戶(hù)密碼
- 本地用戶(hù)登入:使用本地用戶(hù)和密碼登入
- 虛擬用戶(hù)方式:也是使用用戶(hù)和密碼登入,但是該用戶(hù)不是linux中創(chuàng)建的用戶(hù)
安裝FTP
使用YUM安裝
yum -y install vsftpd
文件配置
安裝完之后在/etc/vsftpd/路徑下會(huì)存在三個(gè)配置文件。
vsftpd.conf: 主配置文件
ftpusers: 指定哪些用戶(hù)不能訪問(wèn)FTP服務(wù)器,這里的用戶(hù)包括root在內(nèi)的一些重要用戶(hù)。
user_list: 指定的用戶(hù)是否可以訪問(wèn)ftp服務(wù)器,通過(guò)vsftpd.conf文件中的userlist_deny的配置來(lái)決定配置中的用戶(hù)是否可以訪問(wèn),userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 這三個(gè)配置允許文件中的用戶(hù)訪問(wèn)FTP。
查看主配置文件的默認(rèn)配置
cat /etc/vsftpd/vsftpd.conf |grep -v '^#';
anonymous_enable=YES #允許匿名用戶(hù)
local_enable=YES #允許使用本地用戶(hù)賬號(hào)登陸
write_enable=YES #允許ftp用戶(hù)寫(xiě)數(shù)據(jù)
connect_from_port_20=YES #通過(guò)20端口傳輸數(shù)據(jù)
anonymous_enable=YES
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=YES
pam_service_name=vsftpd
tcp_wrappers=YES
chroot_local_user=yes
其它的一些參數(shù)說(shuō)明包括:
ftpd_banner=welcome to ftp service :設(shè)置連接服務(wù)器后的歡迎信息
idle_session_timeout=60 :限制遠(yuǎn)程的客戶(hù)機(jī)連接后,所建立的控制連接,在多長(zhǎng)時(shí)間沒(méi)有做任何的操作就會(huì)中斷(秒)
data_connection_timeout=120 :設(shè)置客戶(hù)機(jī)在進(jìn)行數(shù)據(jù)傳輸時(shí),設(shè)置空閑的數(shù)據(jù)中斷時(shí)間
accept_timeout=60 設(shè)置在多長(zhǎng)時(shí)間后自動(dòng)建立連接
connect_timeout=60 設(shè)置數(shù)據(jù)連接的最大激活時(shí)間,多長(zhǎng)時(shí)間斷開(kāi),為別人所使用;
max_clients=200 指明服務(wù)器總的客戶(hù)并發(fā)連接數(shù)為200
max_per_ip=3 指明每個(gè)客戶(hù)機(jī)的最大連接數(shù)為3
local_max_rate=50000(50kbytes/sec) 本地用戶(hù)最大傳輸速率限制
anon_max_rate=30000匿名用戶(hù)的最大傳輸速率限制
pasv_min_port=端口
pasv-max-prot=端口號(hào) 定義最大與最小端口,為0表示任意端口;為客戶(hù)端連接指明端口;
listen_address=IP地址 設(shè)置ftp服務(wù)來(lái)監(jiān)聽(tīng)的地址,客戶(hù)端可以用哪個(gè)地址來(lái)連接;
listen_port=端口號(hào) 設(shè)置FTP工作的端口號(hào),默認(rèn)的為21
local_root=path 無(wú)論哪個(gè)用戶(hù)都能登錄的用戶(hù),定義登錄帳號(hào)的主目錄, 若沒(méi)有指定,則每一個(gè)用戶(hù)則進(jìn)入到個(gè)人用戶(hù)主目錄;
chroot_local_user=yes/no 是否鎖定本地系統(tǒng)帳號(hào)用戶(hù)主目錄(所有);鎖定后,用戶(hù)只能訪問(wèn)用戶(hù)的主目錄/home/user;
chroot_list_enable=yes/no 啟用不鎖定用戶(hù)在主目錄的名單
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO 是否加載用戶(hù)列表文件;
userlist_deny=YES 表示上面所加載的用戶(hù)允許登錄;
userlist_file=/etc/vsftpd/user_list 指定列表文件
創(chuàng)建FTP連接用戶(hù)
創(chuàng)建用戶(hù)ftpuser
useradd ftpusr
設(shè)置用戶(hù)只能ftp不能登入
usermod -s /sbin/nologin ftpuser
設(shè)置用戶(hù)密碼
passwd ftpusr
用戶(hù)的默認(rèn)的家目錄在/home下,當(dāng)前用戶(hù)就只能訪問(wèn)家目錄。
修改用戶(hù)的家目錄位/mnt
usermod -d /mnt ftpuser
啟動(dòng)FTP服務(wù)
service vsftpd start
測(cè)試
在/mnt目錄下創(chuàng)建一個(gè)測(cè)試文件
touch /mnt/test
連接ftp
解決普通的FTP無(wú)法登入問(wèn)題
linux默認(rèn)是帶安全機(jī)制,使用普通的ftp 21端口無(wú)法連接到ftp服務(wù)器,使用sftp就可以。這個(gè)時(shí)候需要關(guān)閉selinux,修改配置文件需要重啟服務(wù)器。
vim /etc/sysconfig/selinux
改成selinux=disabled
不重啟服務(wù)器的方法:
setenforce 0
setenforce 1 :設(shè)置SELinux 成為enforcing模式
setenforce 0 :設(shè)置SELinux 成為permissive模式
查看SELinux狀態(tài)
/usr/sbin/sestatus -v
總結(jié)
還有其他的一些配置方法在這里就暫時(shí)不列舉,有興趣的可以去深入研究一下。