設置FTP服務器的訪問限制
/etc/vsftpd/ftpusers
ftpusers :黑名單 其內所有的用戶無法登錄FTP服務器
如果userlist_enable=YES(主配置文件中設置),user_list黑名單 其內所有的用戶無法登錄
如果userlist_deny=NO(主配置文件中設置),user_list白名單 其內所有的用戶可以登錄
通過/etc/hosts.allow和/etc/hosts.deny來控制用戶的訪問,這種方式稱 TCPWRAPPER。
Vim /etc/csftpd/csftpd.conf
tcp_wrappers=YES
如果用戶滿足/etc/hosts.allow,那么允許訪問。
如果用戶不滿足/etc/hosts.allow,滿足/etc/hosts.deny,那么不允許訪問。
如果用戶兩文件都沒有滿足,默認是允許訪問的。
格式:
服務名: 主機
vsftpd: 172.18.49.99
虛擬用戶
1.建立虛擬用戶口令數據庫
cd ~
vim login.txt 創建虛擬用戶口令文件
tom虛擬用戶
123密碼
jack
123
rpm -vih db4-utils 安裝db_load命令對應的軟件包
db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
將虛擬用戶口令文件轉換為數據庫文件
chmod 600 /etc/vsftpd/vsftpd_login.db
安全起見 設置存有虛擬用戶口令的的數據庫權限
2.為虛擬用戶建立PAM認證文件
ls /etc/pam.d/ 驗證文件所在路徑
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd 當前pam文件,只能對匿名用戶本地用戶身份驗證
vim /etc/pam.d/vsftpd.vu創建虛擬用戶身份驗證pam文件
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
3.准備一個映射賬號,用於虛擬用戶對應的系統賬號
useradd vu -s /sbin/nologin
ls /home/vu
touch /home/vu/file1.txt 標記當前路徑,方便識別
一旦使用了虛擬用戶,匿名用戶就不可用了
4.配置vsftpd server支持虛擬用戶
(1)禁用匿名用戶相關(一旦支持虛擬用戶就不能支持其他)
(2)啟用虛擬用戶功能,並指定映射賬戶
(3)使用新的PAM文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 禁用匿名用戶相關
guest_enable=YES 啟用虛擬用戶功能
guest_username=vu 指定映射賬戶
pam_service_name=vsftpd.vu 使用新的PAM文件
對虛擬用戶設置權限的指令 和 對匿名用戶設置權限的指令完全相同
anon_world_readable_only=NO 打開匿名用戶瀏覽功能
可以看到文件,可以下載不可上傳
5、給虛擬用戶設置不同權限
srj 游客 上傳下載速率50kb 線程5個
lf VIP 上傳下載速率100kb 線程10個
gjn 管理員 創建,修改刪除等
權限由主配置文件和個人配置文件決定,主配置文件權限盡量小,在個人配置文件當中釋放權限。
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO 開放匿名用戶的瀏覽權限
user_config_dir=/etc/vsftpd/1304B
cd /etc/vsftpd
mkdir local
創建個人配置文件
vim srj
write_enable=YES
anon_max_rate=10000 對匿名用戶限速
max_per_ip=5 設置每個IP最大的連接數(線程數)
anon_upload_enable=YES 啟用匿名用戶上傳文件的功能(文件夾不成)
其他類似
重啟服務
測試
FTP常規配置應用案例1:
需求:
公司內部現在有一台FTP和WEB服務器,FTP的功能主要用於維護公司的網站內容,包括上傳文件、創建目錄、更新網頁等等哈~公司現有兩個部門負責維護任務,他們分別適用team1和team2帳號進行管理。先要求僅允許team1和team2帳號登錄FTP服務器,但不能登錄本地系統,並將這兩個帳號的根目錄限制為/var/www/html,不能進入該目錄以外的任何目錄。
分析:
將FTP和WEB服務器做在一起是企業經常采用的方法,這樣方便實現對網站的維護,為了增強安全性,首先需要使用僅允許本地用戶訪問,並禁止匿名用戶登錄。其次使用chroot功能將team1和team2鎖定在/var/www/html目錄下。如果需要刪除文件則還需要注意本地權限哈~
(1)建立維護網站內容的ftp帳號team1和team2並禁止本地登錄,然后設置其密碼
useradd -s /sbin/nologin 用戶名
(2)配置vsftpd.conf主配置文件並作相應修改
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO:禁止匿名用戶登錄
local_enable=YES:允許本地用戶登錄
local_root=/var/www/html:設置本地用戶的根目錄為/var/www/html
chroot_list_enable=YES:激chroot功能
chroot_list_file=/etc/vsftpd/chroot_list:設置鎖定用戶在根目錄中的列表文件
保存退出
(3)建立/etc/vsftpd/chroot_list文件,添加team1和team2帳號
touch /etc/vsftpd/chroot_list
(4)重啟vsftpd服務使配置生效
service vsftpd restart
(5)修改本地權限
Chmod -R o+w /var/www/html
(6)測試
FTP常規配置應用案例2:
企業環境
公司為了宣傳最新的產品信息,計划搭建FTP服務器,為客戶提供相關文檔的下載。對所有權互聯網開放共享目錄,允許下載產品信息,禁止上傳。公司的合作單位能夠使用FTP服務器進行上傳和下載,但不可以刪除數據。並且保證服務器的穩定性,進行適當優化設置哈~
需求分析
根據企業的需求,對於不同用戶進行不同的權限限制,FTP服務器需要實現用戶的審核。需考慮到服務器的安全性,所以關閉實體用戶登錄,使用虛擬帳號驗證機制,並對不同虛擬帳號設置不同的權限。為了保證服務器的性能,還需要根據用戶的等級,限制客戶端的連接數及下載速度。
1、創建用戶數據庫
(1)創建用戶文本文件
先建立用戶文本文件vsftpd_virtualuser.txt,添加兩個虛擬帳號,公共帳號ftp及客戶帳號vip
(2)生成數據庫
保存虛擬帳號和密碼的文本文件無法被系統帳號直接調用,使用db_load命令生成db數據庫文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db
3)修改數據庫文件訪問權限
數據庫文件中保存着虛擬帳號的密碼信息,為了防止非法用戶盜取,修改該文件的訪問權限。生成的認證文件的權限應設置為只對root用戶可讀可寫,即600
chmod 600 /etc/vsftpd/vsftpd_virtualuser
2、配置PAM文件
3、創建虛擬帳號對應的系統用戶
對於公共帳號和客戶帳號,因為需要配置不同的權限,所以可以將兩個帳號的目錄進行隔離,控制用戶的文件訪問。公共帳號ftp對應系統帳號ftpuser,並指定其主目錄為/var/ftp/share,而客戶帳號vip對應系統帳號ftpvip,指定主目錄為/var/ftp/vip
chmod -R 500 /var/ftp/share/ :公共帳號ftp只允許下載,修改share目錄其他用戶權限為rx可讀可執行。
chmod -R 700 /var/ftp/vip/ :客戶帳號vip允許上傳和下載,所以對vip目錄權限設置為rwx,可讀可寫可執行。
如果不設置可執行用戶登錄會出不能更改目錄錯誤。
(1)修改vsftpd.conf主配置文件
配置主配置文件/etc/vsftpd/vsftpd.conf添加虛擬帳號的共同設置並添加user_config_dir字段,定義虛擬帳號的配置文件目錄
禁用匿名用戶登錄並啟用本地用戶登錄設置
anonymous_enable=NO
local_enable=YES
將所有本地用戶限制在家目錄中,NO則不限制
chroot_local_user=YES
pam_service_name=vsftpd:配置vsftpd使用的PAM模塊為vsftpd
user_config_dir=/etc/vsftpd/vuserconfig:設置虛擬帳號的主目錄為/vuserconfig
max_clients=300:設置FTP服務器最大接入客戶端數為300個
max_per_ip=10:設置每個IP地址最大連接數為10個
2)建立虛擬帳號配置文件
在user_config_dir指定路徑下,建立與虛擬帳號同名的配置文件並添加相應的配置字段哈~
首先建立公共帳號ftp的配置文件
guest_enable=yes:開啟虛擬帳號登錄
guest_username=ftpuser:設置ftp對應的系統帳號為ftpuser
anon_world_readable_only=no:允許匿名用戶瀏覽器整個服務器的文件系統
anon_max_rate=50000:限定傳輸速率為50KB/s
然后建立客戶帳號的配置文件vip
guest_enable=yes:開啟虛擬帳號登錄
guest_username=ftpvip:設置ftp對應的系統帳號為ftpvip
anon_world_readable_only=no:允許匿名用戶瀏覽器整個服務器的文件系統
write_enable=yes:允許在文件系統寫入權限
anon_mkdir_write_enable=yes:允許創建文件夾
anon_upload_enable=yes:開啟匿名帳號的上傳功能
anon_max_rate=100000:限定傳輸速度為100KB/s
重啟vsftpd使配置生效 測試