一,ftp概述
1,概念
file transfer protocol檔案傳輸協定
2,傳輸模式
a,主動模式:由伺服器主動連接配接用戶端建立資料鍊路
b,被動模式:ftp伺服器等待用戶端建立資料鍊路
3,使用端口
21 用于與客戶機建立指令鍊路
20 在主動模式下伺服器使用20向客戶機建立資料鍊路
4,常用的ftp軟體
伺服器
windows: iis serv-u
linux: wu-ftpd proftpd vsftpd(rhel預設)
客戶機
windows: cuteftp filezilla
linux: gftp
二,配置vsftpd(very secure非常安全)
1,安裝
vsftpd
主配置檔案
/etc/vsftpd/vsftpd.conf vsftpd伺服器的主配置檔案
/etc/vsftpd.ftpusers 黑名單
/etc/vsftpd.user_list 白/黑名單
當userlist_deny=yes被禁止
當userlist_deny=no被允許
/var/ftp/ 預設共享出來的目錄
匿名使用者登陸用
ftp anonymous
2,配置
a,禁止匿名使用者通路
把anonymous_enable=yes改為anonymous_enable=no
b,允許匿名使用者上傳
把anon_upload_enable=yes
anon_mkdir_write_enable=yes
在把上傳目錄的權限+上
如你想讓上傳的匿名使用者修改檔案名的話在加上
anon_other_write_enable=yes
c,禁锢普通使用者在家目錄
chroot_local_user=yes
d,自定義使用者通路檔案夾
local_root=路徑 系統使用者
anon_root=路徑 匿名使用者
e,max_per_ip=每個客戶機最大連接配接數
local_max_rate=50000 本地使用者下載下傳50k
anon_max_rate=30000 匿名使用者下載下傳30k
f,連接配接伺服器的歡迎資訊
ftpd_banner=welcome to linux ftp server~!
進入每個目錄提示資訊
在每個目錄下建立.message
g,虛拟使用者
a,建立虛拟使用者密碼庫檔案
#cat logins.txt
mike
123
john
321
密碼庫檔案中奇數行設定使用者名,偶數行設定密碼
b,生成vsftpd的認證檔案(在第3張CD光牒中安裝)
#rpm -ivh db4-utils*
#db_load -t -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db 生成認證檔案
c, 設定認證檔案隻對使用者可讀可寫
# chmod 600 /etc/vsftpd/vsftpd_login.db
d,建立虛拟使用者所需的pam配置檔案
手工建立vsftpd.vu檔案 在這裡需要注意 小心寫錯了,最好看看書上面的
# cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
e,建立虛拟使用者及要通路的目錄并設定相應的權限
建立所有ftp虛拟使用者帳号使用的系統使用者帳号,并設定該帳号宿主目錄的權限
# useradd -d /home/ftpsite virtual
# chmod 700 /home/ftpsite
f,設定vsftpd.conf配置檔案
在配置檔案中添加虛拟使用者的配置内容
guest_enable=yes
guest_username=virtual
pam_service_name=vsftpd.vu
重新啟動vsftpd服務程式
g,對vsftpd.conf檔案修改後需要重新啟動vsftpd服務程式
# service vsftpd restart
現在就應該可以用虛拟帳号登陸了,但是什麼權限都沒的,隻能登陸。。。
4,對虛拟使用者設定不同的權限
設定主配置檔案
在vsftpd.conf檔案中添加使用者配置檔案目錄設定
user_config_dir=/etc/vsftpd_user_conf
建立使用者配置檔案目錄
使用mkdir指令建立使用者配置檔案目錄
# mkdir /etc/vsftpd_user_conf
為虛拟使用者建立單獨的配置檔案
使用者配置檔案名稱與使用者名相同
/etc/vsftpd_user_conf/mike
/etc/vsftpd_user_conf/john
裡面的内容如下:
anon_world_readable_only=no 表示使用者可以浏覽ftp目錄和下載下傳檔案
anon_upload_enable=yes 表示使用者可以上傳檔案
anon_mkdir_write_enable=yes 表示使用者具有建立和删除目錄的權限
anon_other_write_enable=yes 表示使用者具有檔案改名和删除檔案的權限
沒有的配置項預設按照vsftpd.conf的配置内容
5,ftp伺服器的資源限制 這可以在vsftpd.conf中添加 這我就不示範了 大家看看 知道就可以了
在企業中用的很多的
max_clients=100 允許最大的用戶端連接配接數
max_per_ip=5 同一ip最大用戶端的連接配接數
local_max_rate=5000000 設定本地使用者最大傳輸數率
anon_max_rate=2000000 匿名使用者最大的傳輸數率
三,啟動
#service vsftpd restart
/etc/init.d/vsftpd restart
四,常用ftp指令
? ! lcd pwd get put mget mput