基於ftp服務的三種登錄方式及其相關的訪問控制和優化


 

ftp(簡單文件傳輸協議),是一種應用廣泛的網絡文件傳輸協議和服務,占用20和21號端口,主要用於資源的上傳和下載.

 

 

在linux對於ftp同widows一樣具有很多的種類,這里主要介紹vsfptd(非常安全的守護進程)

的三種登錄方法(匿名登錄和本地登錄及虛擬登錄)極其一些主要的配置

 

首先用yum安裝vsftpd 

 /etc/vsftpd/vsftpd.conf為ftp的主要配置文件

  啟動ftp服務 :service vsfptd restart

把其加入到開機項

匿名登錄

匿名用戶登錄ftp server配置比較簡單,默認是允許匿名登錄ftp server的,主要是考慮權限和selinux及iptables
對ftp server的約束

 

這里可對ftp server作一些優化,使client登錄ftp server可以執行上傳及創建文件等高權限的操作

 

當client訪問ftp server時訪問是可以的,但當創建文件時提示權限不夠,此時便可以修改selinux對ftp的安全控制

本地登錄

 

禁止匿名登錄用本地創建的賬號登錄ftp 服務器

 

在/etc/vsftpd目錄下有ftpusers和user_list可對本地系統賬號作限制登錄,只要把配置文件里出現的賬戶抹去即可

# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

 

虛擬登錄

首先在/etc/vsftpd目錄下創建虛擬用戶登錄ftp server的用戶名和密碼對應文件/etc/vsftpd/vuser.list

u1                    //奇數行代表用戶名
123                 //偶數行代表密碼
u2
123

 

利用哈希加密,把創建的登錄虛擬用戶文件加密為vuser.db,並設置權限

 [root@localhost ~]# db_load  -T -t hash /etc/vsftpd/vsftpd.list   /etc/vsftpd/vsftpd.db 

 

vim 編輯/etc/pam.d/vsftpd.vu  創建PAM認證文件

auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

 

設置一個不允許系統登錄的賬戶對應着虛擬用戶登錄ftp server時所用的家目錄

[root@localhost ~]# useradd -d /var/ftproot/ -s /usr/sbin/nologin virtual

 

為了讓虛擬用戶登錄系統具有可以一些列的權限,可以在/etc/vsftpd下創建虛擬用戶權限目錄vuser_dir,並同時創建和虛擬用戶名相同的文件,設置權限

[root@localhost ~]# cd /etc/vsftpd/vusrs_dir/
[root@localhost vusrs_dir]#
[root@localhost vusrs_dir]#
[root@localhost vusrs_dir]# ls
u1 u2
[root@localhost vusrs_dir]#
[root@localhost vusrs_dir]#

vim /etc/vsftpd/vuser_dir/u2

anon_mkdir_write_enable=YES
anon_upload_enable=YES

 

接下來重要的是把先前創建好的一些列文件在主配置文件/erc/vsftpd/vsftpd.conf里調用

user_config_dir=/etc/vsftpd/vusers_dir      //虛擬用戶權限文件目錄
guest_enable=YES                        //允許虛擬用戶登錄ftp
guest_username=virtual               //虛擬用戶名
allow_writeable_chroot=YES         //允許虛擬用戶目錄取消牢籠機制
pam_service_name=vsftpd.vu    //指定pam認證文件的位置

 

 在客戶端登錄ftp server,發現可以成功用虛擬賬戶登錄ftp server,從一定程度上提升了ftp server的安全性


[root@localhost vusrs_dir]# ftp 10.0.0.1
Connected to 10.0.0.1 (10.0.0.1).
220 (vsFTPd 3.0.2)
Name (10.0.0.1:root): u2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

 優化

1:本地用戶登錄訪問控制

 下面對ftp server坐一些優化,在前面說到的采用本地登錄方法登錄ftp server,處在/etc/vsftp/vuser|root文件被 ftp server列為黑名單,這是由於/etv/vsftpd/vsftpd.conf下的userlist_enable選項導致的,只要把"YES"改為NO,黑名單里的用戶便可已登錄ftp server,但黑名單外的

用戶則不可以登錄ftp server

 

 userlist_enable=NO

2:最大連接數

 若由多個client同時登錄 ftp server,就難免造成ftp server的流量分配不均,可以用

max-clinets  number    //對同一時間的client做最大限制

max-per_ip  number   //對同一IP做最大限制

3:用戶隔離

vim編輯/etc/vsftpd/vsftp.conf:

取消 chroot_local_user=YES前的注釋,限制用戶只能在自己當前的目錄

 

 

4:會話和數據傳輸超時時間控制

Idle_session_timeout //設置會話超時的最大時間

Data_connection_timeout //設置數據傳輸超時的最大時間

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM