歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 初級FTP搭建,ftp搭建

初級FTP搭建,ftp搭建

日期:2017/3/3 17:40:01   编辑:學習Linux

初級FTP搭建,ftp搭建

初級FTP搭建,ftp搭建


一:了解FTP基本知識
Vsftpd

1.什麼是FTP?
File Transfer Protocol 基於C/S結構的文件傳輸協議
2.使用什麼協議?什麼端口?
TCP 21 建立命令鏈路
TCP 20 在主動傳輸模式下服務器使用20端口向客戶端建立數據鏈路
3.FTP工作原理

--------- Client Server--------------

1031 21
1032 20

①客戶端向服務器發出連接請求,同時客戶端系統動態地打開一個大於1024的端口等候服務器連接(比如1031端口)
②若FTP服務器在端口21偵聽到該請求,則會在客戶端1031端口和服務器的21端口之間建立一個FTP會話連接
③當需要傳輸數據時,FTP客戶端動態地打開一個大於1024的端口(比如1032端口)連接到服務器的20端口,並在這兩個端口之間進行數據的傳輸。當數據傳輸完畢後,這兩個端口會自動關閉
④當FTP客戶端斷開與FTP服務器的連接時,客戶端上動態分配的端口將自動釋放

4.FTP工作模式
主動傳輸模式(Active FTP):
在主動傳輸模式下,FTP客戶端隨機開啟一個大於1024的端口N(1025)向服務器的21號端口發起連接,然後開放N+1號端口(1026)進行監聽,並向服務器發送PORT 1026命令。服務器接收到命令後,會用其本地的FTP數據端口(通常20)來連接客戶端指定的端口1026,進行數據傳輸。

被動傳輸模式(Passive FTP):
在被動傳輸模式下,FTP客戶端隨機開啟一個大於1024的端口N(1025)向服務器的21號端口發起連接,同時會開啟N+1號端口(1026),然後向服務器發送PASV 命令。通知服務器自己處於被動模式。服務器收到命令後,會開放一個大於1024端口(1521)進行監聽,然後用PORT 命令通知客戶端,自己的數據端口是1521.客戶端收到命令後會通過1026號端口連接服務器的1521,然後在兩個端口之間進行數據傳輸。
5.FTP傳輸模式
二進制模式:圖片和執行文件壓縮文件
文本模式:CGI腳本和普通HTML文件
目前服務器上面和FTP客戶端軟件能夠自動識別文件類型並選擇相應的傳輸方式
6.FTP賬戶類型
匿名用戶:ftp 或 anonymous
本地用戶:Linux服務器本機的系統用戶賬號
虛擬用戶:賬號信息存放在獨立的文件或數據庫內
7.默認安裝vsftpd特點
匿名用戶與本地用戶都可以登錄
匿名用戶登錄到/var/ftp,只能下載不能上傳
本地用戶登錄到本地用戶的家目錄,可以上傳和下載
ftp和lftp命令
get 下載
put 上傳
mget 下載多個,支持通配符
mput 上傳多個,支持通配符
!cmd 執行外面命令
lcd 切換外面路徑
9.訪問FTP地址表示方法
用戶驗證訪問
ftp://user:[email protected]
ftp://user:[email protected]/path/to/file

URL,統一資源定位器(網址)
Unified Resource Locator
協議://用戶名:密碼@服務器地址:端口/目錄路徑/文件名

10.RHEL6自帶的ftp軟件包?主配置文件是?服務啟動腳本?
vsftpd
/etc/vsftpd/vsftpd.conf
重點字段意義:anonymous_enable=YES #開啟匿名共享
local_enable=YES #開啟本地賬戶共享
write_enable=YES #本地賬戶是否可寫
anon_upload_enable=YES #匿名用戶是否可以上傳文件
anon_mkdir_write_enable=YES #匿名可創建目錄
anon_other_write_enable=YES #匿名刪除,重命名
chroot_local_user #禁锢本地賬戶
anon_root=/abc #定義匿名用戶根目錄為/abc目錄
anon_umask=022 #定義匿名用戶上傳的掩碼值

11.配置文件:/etc/vsftpd/vsftpd.conf(主配置)
/etc/vsftpd/ftpusers(黑名單)
/etc/vsftpd/user_list(黑/白名單)
在字段userlist_enable=YES或NO //是否開啟user_list文件
在字段userlist_deny=NO時user_list是白名單
12.其他常用選項
listen_port=端口號
listen_address=IP地址

14.並發連接和速度:
max_clients=最大並發連接數
max_per_ip=同一IP地址的最大並發連接數
anon_max_rate=匿名用戶訪問速度(字節/秒)
local_max_rate=本地用戶訪問速度(字節/秒)

安裝 FTP
1.安裝軟件包

關掉防火牆和selinux,不然需要提前配好
yum -y install vsftpd


2.啟動服務
service vsftpd restart
chkconfig vsftpd on
netstat -anptu | grep vsftpd

3.創建測試文件
ls -l /etc/* > /var/ftp/pub/anon.txt
[root@svr5 ~]# useradd lisi
[root@svr5 ~]# echo 123456 | passwd --stdin lisi
[root@svr5 ~]# ls -l /etc/* > ~lisi/lisi.txt
4.驗證:(客戶端測試)
浏覽器測試:
ftp://192.168.4.5/
ftp://lisi:[email protected]/ 用戶密碼登錄方式
命令行測試:
[root@pc205 ~]# yum -y install ftp lftp
[root@pc205 ~]# ftp 192.168.4.5
ftp> cd pub
ftp> ls
ftp> get anon.txt
ftp> !ls
ftp> put install.log
ftp> quit
[root@pc205 ~]# lftp 192.168.4.5
lftp 192.168.4.5:~> user lisi
口令:
[root@pc205 ~]# yum -y install wget
[root@pc205 ~]# wget ftp://lisi:[email protected]/lisi.txt 下載文件測試


實驗總結:
匿名用戶與本地用戶都可以登錄
匿名用戶登錄到/var/ftp,只能下載不能上傳
本地用戶登錄到本地用戶的家目錄,可以上傳和下載 用戶家目錄

實驗三:
禁锢本地用戶在自己家目錄
實驗步驟:
先在客戶端測試默認結果
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
...
ftp> pwd
257 "/home/lisi"
在服務器端配置
[root@svr5 ~]# cd /etc/vsftpd/
[root@svr5 vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@svr5 vsftpd]# vim vsftpd.conf
...
96 chroot_local_user=YES
...
[root@svr5 vsftpd]# service vsftpd restart
在客戶端測試:
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
230 Login successful.
ftp> pwd
257 "/"

實驗四:用戶訪問控制(黑白名單)
通過ftpusers阻止mike訪問
將user_list設為白名單
允許lisi、mike訪問
分別測試匿名訪問、lisi和mike訪問
將ftp加入白名單,再測試匿名訪問
[root@svr5 ~]# useradd mike
[root@svr5 ~]# echo 123456 | passwd --stdin mike
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
mike
[root@svr5 ~]# service vsftpd restart
測試:用mike訪問ftp
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
121 userlist_deny=NO
...
[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
[root@svr5 ~]# tail -n 2 /etc/vsftpd/user_list
lisi
mike
測試:
分別使用mike與lisi登錄測試
實驗完畢,請將主配置文件121 userlist_deny=NO注釋,將user_list和ftpusers裡面添加的賬戶去掉

實驗五:
最多100個並發,每IP地址最多2個並發
限制匿名下載速度為50KB/s
限制用戶下載速度為500KB/s
通過 ftp、wget 驗證上述限制

[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
122 max_clients=100
123 max_per_ip=2
124 anon_max_rate=50000
125 local_max_rate=500000

[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# dd if=/dev/zero of=/var/ftp/pub/anon.tgz bs=1M count=1000
[root@svr5 ~]# dd if=/dev/zero of=/home/lisi/local.tgz bs=1M count=1000
測試:
[root@pc205 ~]# wget ftp://192.168.4.5/pub/anon.tgz
[root@pc205 ~]# wget ftp://lisi:[email protected]/local.tgz

補充:
匿名用戶登錄對共享根目錄(/var/ftp)禁止有寫入權限,否則禁止匿名賬戶登錄!

http://xxxxxx/Linuxjc/1186727.html TechArticle

Copyright © Linux教程網 All Rights Reserved