FTP

需要軟件:
lftp-3.5.1-2.fc6
vsftpd-2.0.5-12.el5
FTP的21端口是命令端,20端口是數據端,21只負責聊天,數據傳輸就交給20

主動連接:
就是服務器的20端口主動向客戶端發起連接請求。主動連接如果客戶端在路由(NAT)之後的話,是不能連接成功的,那個時候就要啓動被動連接
被動連接:
就是服務器的大於1024的某一個端口被動等待客戶端發起連接請求,被動連接是不開放20端口的。

配置文件是:/etc/vsftpd/vsftpd.conf
在vsftpd目錄下還有這些文件,這些文件的功能需要在配置文件中把對應的功能打開纔有效。
chroot_list:(默認不存在,需自己建立)這個裏面裝用戶帳號的,一行一個用戶,設置用戶是否被關在家目錄,他有兩種功能,具體下面講。
fstpuser:這個裏面的用戶是拒絕登錄的,不想要某人登錄,就把某人寫進去,一行一個用戶。
user_list:這個裏面的用戶是設置是否允許登錄的,有兩種設置,一行一個用戶。
vsftpd_conrate.shf_mig:這個腳本搞不清楚,不理他。
配置文件裏面的內容:#號代表註釋掉,有些參數是沒有的,需要自己添加,麻煩得很
anonymous_enable=YES:          是否允許匿名登錄

local_enable=YES                是否允許本地用戶登錄(/etc/passswd內的用戶)

write_enable=YES                是否允許寫入(跟實體和匿名用戶都有關)

local_umask=022                 實體用戶建立文件的掩碼(匿名用戶是默認的077)

#anon_upload_enable=YES         是否允許匿名上傳

#anon_mkdir_write_enable=YES    是否允許匿名建立目錄(YES的話,匿名寫入也要打開)

dirmessage_enable=YES          

xferlog_enable=YES              是否要記錄用戶上傳和下載的記錄
xferlog_file=/var/log/vsftpd.log  設置這個記錄文件的位置,跟上個參數連用

connect_from_port_20=YES        設置連接端口(數據)

#chown_uploads=YES              
#chown_username=whoever         設置匿名上傳的文件指定一個特定用戶

xferlog_std_format=YES

#idle_session_timeout=600       設置會話(命令)超時時間,就是用戶在600妙內沒有命令就強制離線(秒)

#data_connection_timeout=120    設置數據連接後的超時時間(秒)
 
#nopriv_user=ftpsecure         

#async_abor_enable=YES

#ascii_upload_enable=YES       設置客戶端以ASCII格式上傳文件
#ascii_download_enable=YES     同上,下載而已

#ftpd_banner=Welcome to blah FTP service. 設置歡迎內容

#deny_email_enable=YES         設置拒絕某些登錄來的EMAIL地址([email protected]
#banned_email_file=/etc/vsftpd/banned_emails 同上連用,裏面一行一個EMAIL地址,表示拒絕此地址帳號的連接
#chroot_list_enable=YES        是否啓動強制用戶在家目錄功能
#chroot_list_file=/etc/vsftpd/chroot_list   設置文件夾的位置,同上連用,一行一個帳號
#chroot_local_user=YES         設置所有用戶都關在家目錄內,同上連用

#ls_recurse_enable=YES


listen=YES                     設置YES代表是以單一模式來啓動的

#listen_ipv6=YES               IPV6的支持

pam_service_name=vsftpd        PAM模塊的設置

userlist_enable=YES
            啓動FTP的阻止機制來拒絕某些帳號登錄,與下面設置有關,在默認下,寫入文件內的是拒絕用戶登錄的,沒有寫入的是允許登錄的(系統所有帳號沒寫入都能登錄,危險),下面兩個的設置可以改變他成爲只有寫入才允許登錄的功能。和諧
userlist_deny=no            
userlist_file=/etc/vsftpd/user_list   設置文件位置,
當這三個這樣設置後,只有寫入這個文件內的帳號,纔有登錄的權限,一般情況下都要恩個設置,除非吃多老
tcp_wrappers=YES               防火牆的東東
下面這些參數是配置文件裏面沒有的,可以自己添加:
listen_port=21               設置命令通道的監聽端口(默認沒有,是21)
pasv_enable=yes              設置被動連接模式(一般來說都開被動)
use_localtime=yes            設置本地時間,VSFTP默認用格林威治時間,會跟現實相差8小時,一般來說都啓動本地時間
accept_timeout=60            如果用戶以被動模式連接時,當服務器的被動端口在超過60秒沒收到客戶端請求就強制斷線(秒)
connect_timeout=60           如果用戶以主動模式連接時,當服務器的20端口在超過60秒沒有收到客戶端連接請求迴應就強制斷線(秒)
max_Clients=0                如果VSFTP是以單一模式啓動的,那麼這個就k可以設置同一時間內最大的客戶端連上FTP   0爲不限制
max_per_ip=0                 同上,這裏指IP
pasv_max_port=0
pasv_min_port=0              這兩個跟被動模式有關,如果要使用33007-33017這幾個端口來被動連接的話。就分別寫入0的位置,0代表隨機,不限制
local_max_rate=0             實體用戶的傳輸限制,單位bytes/s, 0表示不限制
guest_enable=yes             當這個設置YES後,所有非匿名用戶的帳號都會被假設成爲guest,guest默認會取得ftp用戶的相關權限,可以通過下面這個來修改
guest_username=ftp           當上面是YES才生效,修改指定訪客的身份而已
local_max_rate=0             實體用戶的傳輸限制,單位bytes/s, 0表示不限制
anon_umask=077              匿名用戶建立文件和目錄的掩碼,默認077
anon_max_rate=0              限制匿名用戶的傳輸速度,0表示不限制,單位是B/s,(30KB=30000)
anon_other_write_enable=YES  允許匿名用戶具有建立目錄,上傳之外的權限,如重命名,刪除,(最好不開,用戶有刪除權限後危險)
# \4 b, w% S  u: p& n* s( Vlisten_address=192.168.*.*   監聽地址,(多個網卡有用)

匿名的登錄:
軟件裝好後,就直接可以匿名登錄了,因爲配置文件裏面的匿名登錄是開啓的,但是不能匿名上傳和寫入,可以下載,匿名用戶登錄進來後的家目錄爲ftp用戶的家目錄:使用的權限也是FTP用戶的權限,/var/ftp/,這個目錄的權限爲755,是不能更改的,更改了要影響和諧,匿名用戶已經被chroot了,所以,他被關在家目錄中的。
XP下的命令測試ftp 192.168.*.*  用戶名 ftp 密碼
ls          查看
pwd         當前位置
cd          進入目錄
put 文件名  上傳
get 文件名  下載
linux本機下的命令測試lftp 192.168.*.*
帳號的登錄:
anonymous_enable=NO      把匿名登錄關掉

local_enable=YES

write_enable=YES
local_umask=022
這三個是系統默認的,不管

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
這三個代表,寫入這個文件內的帳號可信任,沒有被chroot,可以到處跑

userlist_enable=YES

userlist_deny=no            
userlist_file=/etc/vsftpd/user_list
這三個代表,只有寫入這個文件內的帳號才能登錄

XP下的命令測試:              ftp  帳號@192.168.*.*
linux本機下的命令測試:       lftp 帳號@192.168.*.*

用戶登錄後的家目錄爲自己帳號的家目錄,可以配合Apache來使用
被動模式和主動模式的設置:
系統默認爲主動式,被動需要一下設置
connect_from_port_20=no     這個要設置爲NO,不然沒效果
pasv_enable=yes             被動授予改爲YES

爲了測試準確與否,使用 tcpdump 命令來抓包,看傳輸數據的時候,是否使用20端口。
使用方法: tcpdump -i eth0 -nn src host 192.168.1.100 抓取1.100主機到服務器的eth0端口的數據包,如果沒得20端口就可以老
無法訪問到FTP家目錄以外目錄的連接設置:
vsftp出於安全考慮。禁止訪問到ftp家目錄以外的目錄的鏈接。
比如,ftp的根目錄是 /home/eo
在此目錄下做一個軟鏈接
ln -s /var/samba  /home/eo
在這種情況下,通過ftp軟件,是無法進入到這個鏈接中的
proftp倒是可以。
如果不想更換ftp服務器的話,可以用mount命令來實現
如果鏈接指向的是個目錄,可以用
mount --bind  /var/samba  /home/eo/samba
如果鏈接指向的是個設備,可以直接用
mount /dev/hda* /home/eo/hda*

mount --bind是什麼意思?

mount --bind 是將一個目錄中的內容掛載到另一個目錄上,用法是

mount --bind  A目錄  B目錄

這個命令使得自己搭建的FTP要共享某個目錄的時候變得特別方便。如果要取消mount用命令:

mount --move B目錄  A目錄 (即可)

如果mount --bind 也想寫入fstab中的話格式如下:

A目錄  B目錄  none bind 0 0



 




 









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