FTP服務
FTP服務是Internet上最早應用主機之間進行數據傳輸的基本服務之一。FTP服務的一個非常重要的特點就是可以獨立於平臺,也就是說在UNIX、MAC、Windows等操作系統中都可以實現FTP的客戶端和服務器。儘管目前已經普遍採用HTTP方式傳送文件,但FTP仍然是跨平臺直接傳送文件的主要方式。FTP在文件傳輸中還支持斷點續傳功能,可以大幅度地減小CPU和網絡帶寬的開銷。
FTP的文件傳輸模式
(1) 主動模式
客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴服務器:“我打開了**端口(大於1024的隨機端口),你把數據通過我打開的這個端口發送給我”。
於是服務器從20端口向客戶端的**端口發送連接請求,建立一條數據鏈路來傳送數據。
(2)PASV(被動)方式的連接過程是:(默認是被動模式)
客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:“我打開了**端口(大於1024的隨機端口),你過來提取數據”。
於是客戶端向服務器的**端口發送連接請求,建立一條數據鏈路來傳送數據。
抉擇?:
防火牆會拒絕進來的包,所以兩種模式都有可能被拒絕掉。
折中的方法就是使用被動模式,並指定一個連接過來的端口範圍,可以針對這個範圍的端口進行一個防火牆的設置。
FTP服務的安裝及配置
(1)安裝ftp服務
yum -y install vsftpd –服務端
yum -y install ftp lftp –客戶端
FTP配置文件:
主配置文件:/etc/vsftpd/vsftpd.conf
用戶訪問控制配置文件:/etc/vsftpd/{ftpusers, user_list}
FTP的家目錄:/var/ftp
(2) 啓動服務
1.啓動服務
service vsftpd restart
關閉 vsftpd: [失敗]
爲 vsftpd 啓動 vsftpd: [確定]
2.設爲開機自啓動
chkconfig vsftpd on
netstat -ntl |grep :21 –現在是隻能看到監聽21端口
tcp6 0 0 :::21 :::* LISTEN
3.查看是否啓動成功
lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 3321 root 3u IPv4 21400 0t0 TCP *:ftp (LISTEN)
(3) 修改配置文件
vim /etc/vsftpd/vsftpd.conf
可修改如下參數
12 anonymous_enable=YES –是否允許匿名用戶登陸,yes是允許
16 local_enable=YES –允許本地用戶登陸
19 write_enable=YES –允許本地用戶寫權限
23 local_umask=022 –本地用戶上傳或創建文件時的權限
37 dirmessage_enable=YES –文件的描述
40 xferlog_enable=YES –開啓日誌(/var/log/xferlog),只上傳和下載的記錄
43 connect_from_port_20=YES –是否允許開啓主動模式,通過20端口傳輸數據
57 xferlog_std_format=YES –爲yes的話代表創建一個新的日誌文件,爲no的話,日誌放到/var/log/vsftpd.log文件裏
114 listen=YES –獨立模式,爲yes代表是用vsftpd本身腳本啓動,爲no代表要以xinetd守護進程啓動
125 pam_service_name=vsftpd –支持模塊的植入
126 userlist_enable=YES –打開用戶列表
127 tcp_wrappers=YES –通過TCP把數據打包再傳輸
27 #anon_upload_enable=YES –默認是註釋的,意爲允許匿名用戶上傳文件
31 #anon_mkdir_write_enable=YES –默認是註釋的,意爲允許匿名用戶創建文件
(4)實例
實例1 : 禁止匿名用戶登錄
12 anonymous_enable=NO –改爲NO
結果
ftp 192.168.5.10
Connected to 192.168.5.10 (192.168.5.10).
220 (vsFTPd 3.0.2)
Name (192.168.5.10:root): ftp
331 Please specify the password.
Password:
530 Login incorrect.
Login failed. –登陸失敗
實例2:匿名用戶的下載和上傳
anonymous_enable=YES
anon_upload_enable=YES –允許匿名用戶上傳文件,這行默認是註釋掉的,要把#去掉
anon_mkdir_write_enable=YES –允許匿名用戶創建目錄,這行默認是註釋掉的,要把#去掉
總結:匿名用戶只能對登錄目錄內的子目錄裏面進行上傳,並且對這個子目錄要有w權限,還要有anon_upload_enable=YES和anon_mkdir_write_enable=YES的支持就可以上傳了
實例3:關於普通用戶(系統的普通用戶)的登錄
local_enable=NO –建議使用服務的參數去禁止,但是這裏會把所有的普通用戶給禁止掉,要實現特定的用戶的控制
實例4: 白名單和黑名單
1.修改配置文件
userlist_enable=yes –打開用戶列表功能,默認就是打開的
userlist_deny=YES\NO –加上這句,啓用黑名單\白名單
2.修改用戶名單
vim /etc/vsftpd/user_list
此處的用戶當上方爲YES是就爲禁止登錄,NO則爲只允許名單裏的允許登錄。