ftp ftps 詳解

主動方式:

clip_image002

1.客戶端從自己的任意一個非特權端口x (x>1024)向ftp服務器的命令端口21 發送syn請求。併發送active 和port x+1指令,向ftp服務器指明使用主動方式,並告訴ftp服務器自己的端口爲x+1 .

2.服務器端收到syn請求後,從自己的21端口發送syn+ack 迴應。

3.然後ftp服務器主動使用自己的20 端口向客戶端的x+1端口發送syn請求。

4.客戶端 的x+1端口向ftp服務器的20 端口做出迴應

5.ftp客戶端的x+1端口和ftp 服務器端的20 端口開始傳遞數據。

被動方式:

clip_image004

1. .客戶端從自己的任意一個非特權端口x (x>1024)向ftp服務器的命令端口21 發送syn請求。併發送pasv指令,告訴ftp服務器採用被動方式。

2.ftp服務器收到syn請求後,用21端口向客戶端的x端口做出迴應。併發送port y告訴ftp客戶端自己的接口y.

3.客戶端使用自己的接口x+1來向服務器端的y端口發送連接請求。

4.y端口做出迴應。

5.然後兩端通過x+ 1接口和 y接口進行數據傳輸。

FTP服務器的搭建

1.新建掛載點,掛載光盤

[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

2.安裝vdftpd 軟件包

[root@localhost ~]# rpm -ivh /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm

3.打開vdftpd的配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 允許匿名用戶登錄

local_enable=YES 允許本地用戶登錄

write_enable=YES 站點可以上傳文件(還需要修改本地權限)

local_umask=022 本地賬戶上傳文件或目錄的權限屏蔽碼

anon_upload_enable=YES 匿名用戶可以上傳文件

anon_mkdir_write_enable=YES 匿名用戶可以創建文件夾

anon_other_write_enable =YES 匿名用戶別的寫權限(重命名、刪除配合sticky位)

匿名用戶上傳的文件所有者爲ftp,權限爲600,目錄權限爲700,其他用戶無法讀取該文件 ,進而將無法下載文件。只需給上傳的文件添加read權限即可下載。

或者修改anon_umask=073 即可

dirmessage_enable=YES 切換目錄時,信息提示。在目錄下創建.message文件

xferlog_enable=YES 開啓日誌功能

xferlog_file=/var/log/xferlog 日誌文件位置

xferlog_std_format=YES 日誌格式爲標準

idle_session_timeout=600 會話超時

data_connection_timeout=120 連接超時

deny_email_enable=YES 拒絕使用郵箱作爲密碼登陸

banned_email_file=/etc/vsftpd/banned_emails 該文件中的郵箱將無法作爲密碼登錄

listen=YES 表明vsftpd 爲獨立守護進程

chroot_list中的賬戶將被鎖定:

chroot_list_enable=YES

#chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

chroot_list中的賬戶不被鎖定,文件外的賬戶被鎖定

chroot_list_enable=YES

chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

文件內的賬戶被鎖定

chroot_list_enable=YES

chroot_local_user=NO

chroot_list_file=/etc/vsftpd/chroot_list

userlist_enable=YES

userlist_deny=YES (默認)

ftpusers中的用戶輸入密碼後登錄失敗

user_list中用戶在輸入密碼前禁止登錄

userlist_enable=YES

userlist_deny=NO

只有在user_list中用戶在輸入密碼後可以登錄

ftpusers 中的和不在ftpsuers中的用戶依舊不可以登錄

tcp_wrappers=YES

支持簡易防火牆 /etc/hosts.allow /etc/hosts.deny

ldd /usr/sbin/vsftpd 查看動態鏈接庫是否支持tcp_wrappers

/etc/hosts.deny /etc/hosts.allow 語法:

服務名:來源:動作

在/etc/hosts.deny中設置拒絕所有

all:all:deny

在/etc/hosts.allow中設置只允許特定的ip訪問ftp服務

vsftpd:192.168.101.1:allow

在/etc/hosts.allow中設置只禁止特定的ip訪問ftp服務

vsftpd:192.168.101.1:deny

vsftpd:all:allow

windows ftp 命令:

dir 列出遠程目錄下的文件

!dir 列出本地目錄下的文件

cd 遠程切換目錄

lcd 本地切換目錄

get 下載

mget 一次下載多個:mget f1*

put 上傳

mput 一次上傳多個

bin 設置類型爲二進制

ascii 設置類型爲ascii

FTPS

ftp 採用明文傳輸,在網絡傳輸過程中容易被抓包抓到有價值信息

1.安裝wireshark 抓包工具

[root@localhost Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm

[root@localhost Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm

2. user1 登錄ftp服務器

[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

clip_image006

3.搭建ca證書服務器

[root@localhost ~]# vim /etc/pki/tls/openssl.cnf

clip_image008

clip_image010

4.創建三個目錄,兩個文件

[root@localhost ~]# cd /etc/pki/CA/

[root@localhost CA]# mkdir certs newcerts crl

[root@localhost CA]# touch index.txt serial

[root@localhost CA]# echo "01" >serial

5.CA服務器產生自己的證書

[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem

6.CA服務器產生證書

[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem

7.ftp服務器產生自己的私鑰

[root@localhost CA]# mkdir /etc/vsftpd/certs

[root@localhost CA]# cd /etc/vsftpd/certs/

[root@localhost certs]# openssl genrsa 1024 >vsftpd.key

8.ftp服務器產生請求

[root@localhost certs]# openssl req -key vsftpd.key -out vsftpd.csr

9.CA 服務器頒發證書

[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert

10.修改CA服務器的證書及私鑰的權限

[root@localhost certs]# cd /etc/pki/CA/

[root@localhost CA]# chmod 600 private/cakey.pem

[root@localhost CA]# chmod 600 cacert.pem

11.ftp服務器的證書及私鑰文件的權限

[root@localhost certs]# chmod 600 *

12.當用戶通過ftps方式訪問ftp服務器是,要調用ftp服務器的證書。所以要在ftp的配置文件中說明只能是及私鑰位置

rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert ftp服務器的證書位置

rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key ftp服務器的私鑰位置

ssl_enable=YES 開啓ssl加密功能

ssl_tlsv1=YES 可以使用ssl版本1

ssl_sslv2=YES 可以使用ssl版本2

ssl_sslv3=YES 可以使用ssl版本3

force_local_logins_ssl=YES 強制本地用戶使用ssl加密登錄

13.保存退出,重啓ftp服務器。

[root@localhost CA]# service vsftpd restart

關閉 vsftpd: [確定]

爲 vsftpd 啓動 vsftpd: [確定]

14.使用tshark抓包

[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

15.配置ftp客戶端軟件

新建ftp站點

clip_image012

選擇連接類型爲ssl加密

clip_image013

clip_image015

clip_image017

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