Linux雲服務器初學之八——FTP服務

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則爲只允許名單裏的允許登錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章