1.ftp工作原理
?????? FTP是一個客戶機/服務系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,并將執行的結果返回到客戶機。
2.安裝ftp服務
yum install vsftpd ?-y????????????? ##安裝服務
systemctl start vsftpd ???????????? ##啟動服務
systemctl enable vsftpd ????????????##開機自動啟動
setenforce?0????????????????????????##關閉selinux或者設置selinux不然會對試驗造成影響
lftp ip?????????????????????????????##能登陸并且顯示,表示安裝成功
vsftpd文件信息
/var/ftp ? ?????????????????????????##默認發布目錄
/etc/vsftpd?????????????????????????##配置目錄
配置火墻策略
farewall-config??????????????????????##使用圖形界面配置
?@@配置的步驟為:先選中permannent,勾上ftp,點擊options,選擇reload完成配置
?
查看火墻是否配置成功
改selinux的狀態為disabled,因為selinux是內核級的加強型防火墻,如果他處于強制狀態,系統很多功能將不被允許。
@@更改完以后一定要記得重啟,因為它是內核級的,必須重啟才能重新加載
1)匿名用戶設定
anonymous_enable=YES|NO????????????????##匿名用戶登陸限制,設置為NO時匿名不能登錄
?
2)匿名用戶上傳
vim /etc/vsftpd/vsftpd.conf
write_enable=YES???????????????????????##設為YES匿名用戶可以上傳anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub?????????????????##修改權限
?
3)匿名用戶家目錄修改
anon_root=/direcotry???????????????????##修改以后,登陸進入以后都在修改的家目錄下
?
在westos下建立三個目錄
lftp連接以后,使用ls命令會看到剛剛創建的三個目錄
?
4)匿名用戶上傳文件默認權限修改
anon_umask=xxx
?
@@設置完以后,lftp 172.25.254.150連接上主機,進入pub/目錄下,使用put命令上傳/etc/passwd,就會顯示出上傳結果
5)匿名用戶建立目錄
anon_mkdir_write_enable=YES|NO????????? ##設置為YES表示可以建立
@@lftp 172.25.254.150連接上主機,進入pub/目錄下,mkdir westos,結果顯示mkdir ok
?
6)匿名用戶下載
anon_world_readable_only=YES|NO ??????? ##設定參數值為no表示匿名用戶可以下載
?
@@lftp 172.25.254.150連接上主機,進入pub/目錄下,使用get命令,get passwd會立馬顯示下載情況
7)匿名用戶刪除
anon_other_write_enable=YES|NO????????????##設置為YES表示可以刪除
@@lftp 172.25.254.150連接上主機,進入pub/目錄下,rm passwd,會出現rm ok,passwd就被刪除了
?
8)匿名用戶使用的用戶身份修改
chown_uploads=YES
chown_username=student
?
?@@lftp 172.25.254.150連接上主機,進入pub/目錄下,put /etc/passwd,然后執行ll /var/ftp/pub/,會看到passwd用戶變成了student
9)最大上傳速率
anon_max_rate=102400?????????????????????##單位為kb,102400表示100M
?
10)最大鏈接數
max_clients=2?????????????????????????????##最多允許兩臺主機接入
?
11)本地用戶設定
local_enable=YES|NO????????????????????????##本地用戶登陸限制
write_enable=YES|NO????????????????????????##本地用戶寫權限限制
?
@@本地用戶lftp 172.25.254.150連接上主機,使用ls命令,會出現x秒后重新連接,也就是本地用戶也無法登錄主機了
?
12)本地用戶上傳文件權限
local_umask=xxx
@@系統默認umask=022,修改umask=002,本地用戶的權限將變為664
?
13)限制本地用戶瀏覽/目錄
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES?????????????????????? ##設置為YES將被鎖在家目錄下
chmod u-w /home/*
?@@lftp 172.25.254.150連接上主機,執行ls,看到的是自己的家目錄,cd /,再次執行ls,依然自己能看到自己的家目錄
?
14)用戶黑名單建立
chroot_local_user=NO????????????????????????##無法瀏覽
chroot_list_enable=YES????????????????????? ##啟用名單
chroot_list_file=/etc/vsftpd/chroot_list????##寫入名單的用戶無法瀏覽
?
15)用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list????##用戶白名單建立后,只有在名單中出現的用戶才能登錄ftp
##注意:白名單的權限更大,會覆蓋黑名單,一旦設置,只有出現在白名單的用戶才能夠登錄ftp,即使一個用戶它不僅在白名單,也在黑名單,他依然能登錄
?
?
限制本地用戶登陸
vim /etc/vsftpd/ftpusers???????????????????? ##用戶黑名單
vim /etc/vsftpd/user_list????????????????????##用戶臨時黑名單
添加westos用戶到/etc/vsftpd/ftpusers?
@@lftp 172.25.254.150 -u westos,會出現login failed,登錄失敗
?
用戶白名單設定
userlist_deny=NO
/etc/vsftpd/user_list????????????????????????##參數設定,此文件變成用戶白名單,只在名單中出現的用戶可以登陸ftp
添加westos用戶到白名單中
?
@@westos用戶同時在兩個名單中,但是westos用戶可以登錄,這就說明了白名單權限大于黑名單,不在白名單的用戶都登陸不了
ftp虛擬用戶的設定
(創建虛擬帳號身份)
vim /etc/vsftpd/xxx?????????????????????????? ##文件名稱任意
ftpuser1??????????????????????????????????????##用戶名
123???????????????????????????????????????????##密碼
ftpuser2
123
ftpuser3
123
?
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
???????????????????????????????????????????????##hash加密
vim /etc/pam.d/xxx???? ??????????????????????? ##文件名稱任意
@@第一行是檢測是否有這個用戶,第二行檢測密碼是否匹配
accountrequiredpam_userdb.sodb=/etc/vsftpd/loginusers
authrequiredpam_userdb.sodb=/etc/vsftpd/loginusers
?
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
?
虛擬帳號身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser
?
##必須指定為已經存在可以登錄的用戶
虛擬帳號家目錄獨立設定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
?
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
?
?
虛擬帳號配置獨立)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
@@這里設置的用戶是ftpuser{1..3},因此可以使用¥USER,我第一次實驗時設置的為nice,good,clever三個用戶,那么他們獨立配置就和這個不同了,只需將$USER改為你的用戶就可以了,格式為local_root=/vuserdir/nice\user_sub_token=nice,記住,三個都要寫,否則他們進去都會在第三個里面
?
轉載于:https://blog.51cto.com/12971521/1953984