vsftpd的設置(全面,包括目錄權限的設置)

本地用戶經過設置後可以進行FTP訪問。而匿名用戶的訪問經過了轉換,在系統中。匿名用戶的用戶名爲FTP, 系統將其屬性設置爲 根目錄 /VAR/FTP/, 禁止控制檯登陸,也就是,該用戶只能進行FTP訪問。

CentOSvsftpd 的執行程序爲 /etc/vsftpd,修改 /etc/vsftpd/vsftpd.conf文件中的listen要設置爲YES.

VSFTPD有兩種開機自啓動模式: inet模式和standalone模式,推薦使用standalone模式。

在CentOS中已集成了VSFTPD軟件。VSFTPD是一個安全高效的FTP服務軟件,得到了廣泛的應用。

一、vsftpd 安裝

在服務中查看是否已安裝VSFTPD服務。如沒有,下載並安裝:

rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm

二、設置vsftpd自啓動

chkconfig --level 35 vsftpd on

三、vsftpd配置

1 打開 /etc/vsftpd/vsftpd.conf文件。將anonymous_enable=YES,改爲anonymous_enable=NO

2 打開 /etc/vsftpd/vsftpd.conf文件。添加user_config_dir=/etc/vsftpd/virtual,並建立virtual目錄。在此目錄中建立以用戶名爲文件名的文件,並寫入:local_root=[目錄],這個目錄即是FTP連接時的主目錄。

3 限定用戶只在自己目錄:修改vsftpd.conf文件,取消註釋:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

在/etc/vsftpd/目錄下添加文件chroot_list,加入作爲FTP用戶的本地用戶名。

4 解決用戶無法進入目錄問題:

打開終端,輸入:setsebool -P ftpd_disable_trans 1

然後重啓FTP服務:service vsftpd restart

四、權限:

假設是/var/www/html

這個目錄的權限應該是770,owner是root,group是ftp

chmod 770 /var/www/html

chown root:ftp /var/www/html

CENTOS5下VSFTPD的設置(虛擬用戶)

前面學校好幾臺服務器上都需要配置ftp,但一直沒有整成功,這次總算完成一件事情了,在centos下完成vsftp的配置了。

步驟很簡單:

需求:(虛擬用戶分下載用戶/下載、上傳但不能刪除用戶/管理用戶)

一、安裝
yum -y install vsftpd*
yum -y install pam*
yum -y install db4*

二、系統帳戶

1、vsftpd服務的宿主用戶
useradd vsftpd -s /sbin/nologin
默認的Vsftpd的服務宿主用戶是root,但是這不符合安全性的需要。這裏建立名字爲vsftpd的用戶,用他來作爲支持Vsftpd的服務宿主用戶。由於該用戶僅用來支持Vsftpd服務用,因此沒有許可他登陸系統的必要,並設定他爲不能登陸系統的用戶。

2、vsftpd虛擬宿主用戶
useradd ftp -s /sbin/nologin(服務器上裝完了就用一個用戶是ftp)

本篇主要是介紹Vsftp的虛擬用戶,虛擬用戶並不是系統用戶,也就是說這些FTP的用戶在系統中是不存在的。他們的總體權限其實是集中寄託在一個在系統 中的某一個用戶身上的,所謂Vsftpd的虛擬宿主用戶,就是這樣一個支持着所有虛擬用戶的宿主用戶。由於他支撐了FTP的所有虛擬的用戶,那麼他本身的 權限將會影響着這些虛擬的用戶,因此,處於安全性的考慮,也要非分注意對該用戶的權限的控制,該用戶也絕對沒有登陸系統的必要,這裏也設定他爲不能登陸系 統的用戶。

*不允許相關用戶登錄。
三、vsftpd.conf設置
1、備份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
2、設置
—-
anonymous_enable=NO
設定不允許匿名訪問
local_enable=YES
設定本地用戶可以訪問。注意:主要是爲虛擬宿主用戶,如果該項目設定爲NO那麼所有虛擬用戶將無法訪問。
write_enable=YES
設定可以進行寫操作。
local_umask=022
設定上傳後文件的權限掩碼。
anon_upload_enable=NO
禁止匿名用戶上傳。
anon_mkdir_write_enable=NO
禁止匿名用戶建立目錄。
dirmessage_enable=YES
設定開啓目錄標語功能。
xferlog_enable=YES
設定開啓日誌記錄功能。
connect_from_port_20=YES
設定端口20進行數據連接。
chown_uploads=NO
設定禁止上傳文件更改宿主。
xferlog_file=/var/log/vsftpd.log
設定Vsftpd的服務日誌保存路徑。注意,該文件默認不存在。必須要手動touch出來,並且由於這裏更改了Vsftpd的服務宿主用戶爲手動建立的Vsftpd。必須注意給與該用戶對日誌的寫入權限,否則服務將啓動失敗。
xferlog_std_format=YES
設定日誌使用標準的記錄格式。
nopriv_user=vsftpd
設定支撐Vsftpd服務的宿主用戶爲手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶後,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日誌文件就必須給與該用戶寫入權限等。
async_abor_enable=YES
設定支持異步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES
設定支持ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to Awei FTP servers
設定Vsftpd的登陸標語。
chroot_local_user=YES
禁止本地用戶登出自己的FTP主目錄。
pam_service_name=vsftpd
設定PAM服務下Vsftpd的驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。
以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置。
guest_enable=YES
設定啓用虛擬用戶功能。
guest_username=ftp
指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES
設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vconf
設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,一個需要注意的
地方就是這些配置文件名必須和虛擬用戶名相同。[color=Red][b](比如說vsftpd.conf的配置文件,你複製到這個目錄下,你要mv一下,配置成虛擬用戶的名稱)[/b][/color]—-
3.建立Vsftpd的日誌文件,並更該屬主爲Vsftpd的服務宿主用戶:
[root@KcentOS5 ~]# touch /var/log/vsftpd.log
[root@KcentOS5 ~]# chown vsftpd.vsftpd /var/log/vsftpd.log
4.建立虛擬用戶配置文件存放路徑:
[root@KcentOS5 ~]# mkdir /etc/vsftpd/vconf/
四、製作虛擬用戶數據庫文件
1.先建立虛擬用戶名單文件:
[root@KcentOS5 ~]# touch /etc/vsftpd/virtusers
建立了一個虛擬用戶名單文件,這個文件就是來記錄vsftpd虛擬用戶的用戶名和口令的數據文件,我這裏給它命名爲virtusers。爲了避免文件的混亂,我把這個名單文件就放置在/etc/vsftpd/下。
2.編輯虛擬用戶名單文件:
[root@KcentOS5 ~]# vi /etc/vsftpd/virtusers
—————————-
download
1234
upload
5678
admin
9012
—————————-
編輯這個虛擬用戶名單文件,在其中加入用戶的用戶名和口令信息。格式很簡單:“一行用戶名,一行口令”。
3.生成虛擬用戶數據文件:
[root@KcentOS5 ~]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
五、設定PAM驗證文件,並指定虛擬用戶數據庫文件進行讀取
在/etc/pam.d/vsftpd的文件頭部加入以下信息(在後面加入無效)
—-
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
—-
六、虛擬用戶的配置
local_root=/var/www/html
指定虛擬用戶的具體主路徑。
anonymous_enable=NO
設定不允許匿名用戶訪問。
write_enable=YES
設定允許寫操作。
local_umask=022
設定上傳文件權限掩碼。
anon_upload_enable=NO
設定不允許匿名用戶上傳。
anon_mkdir_write_enable=NO
設定不允許匿名用戶建立目錄。
idle_session_timeout=600
設定空閒連接超時時間。
data_connection_timeout=120
設定單次連續傳輸最大時間。
max_clients=10
設定併發客戶端訪問個數。
max_per_ip=5
設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件。
local_max_rate=50000
設定該用戶的最大傳輸速率,單位b/s。
--------------------------------
這裏將原vsftpd.conf配置文件經過簡化後保存作爲虛擬用戶配置文件的模版。這裏將並不需要指定太多的配置內容,主要的框架和限制交由 Vsftpd的主配置文件vsftpd.conf來定義,即虛擬用戶配置文件當中沒有提到的配置項目將參考主配置文件中的設定。而在這裏作爲虛擬用戶的配 置文件模版只需要留一些和用戶流量控制,訪問方式控制的配置項目就可以了。這裏的關鍵項是local_root這個配置,用來指定這個虛擬用戶的FTP主 路徑。

這裏有一個最主要的問題,就是目錄的宿主和宿主用戶不是虛擬用戶,我們設置了目錄後還只能下載,不能上傳和下載,如果想上傳就要使用chown的命令
chmod o+w /var/www/html/ o是指其它的用戶,w是寫的權限

以上是個人的配置心得,大部門都是互聯網上的,但查詢很多資料,是找不到個人的心得的,哈哈

centos 安裝VSFTP

1.此次爲了測試瞭解一下,VSFTP,採用RPM包安裝方式
首先
rpm -qa | grep vsftpd           ---------查看有無安裝,若沒有,則要安裝,我採用的是yum
yum install vsftpd
見下:
[root@ftp sbin]# yum install vsftpd
[root@ftp sbin]# service vsftpd status
vsftpd is stopped
[root@ftp sbin]# service vsftpd start
Starting vsftpd for vsftpd:                                [ OK ]
[root@ftp sbin]#
2.設置每次開機時自動運行及手工啓動它:
chkconfig vsftpd on
service vsftpd start
netstat -tl    可以查看ftp端口是否在偵聽了!
相關配置文件:/etc/vsftpd/vsftpd.conf裏面;
3.至此已經可以FTP已經可以正常運行了,
4.FTP配置參考以下設置:
初級測試篇:(注:匿名用戶使用ftp這個系統用戶,無需密碼)
a. 匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes (啓用FTP數據端口的數據連接)*
Xferlog_enable=yes (激活上傳和下載的日誌)
Xferlog_std_format=yes (使用標準的日誌格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務器)*
功能:只能連接FTP服務器,不能上傳和下載
注:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項


b. 開啓匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)

c. 開啓匿名服務器下載的權限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啓它的讀寫執行的權限
(R)讀-----下載 (W)寫----上傳 (X)執行----如果不開FTP的目錄都進不去

d.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸後無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
注:在禁止匿名登陸的信息後匿名服務器照樣可以登陸但不可以上傳下載

e. 用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可


f. 限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
注:開啓userlist_enable=yes匿名帳號不能登陸

g. 安全選項
Idle_session_timeout=600(秒) (用戶會話空閒後10分鐘)
Data_connection_timeout=120(秒) (將數據連接空閒2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閒1分鐘後斷)
Connect_timeout=60(秒) (中斷1分鐘後又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555端口進行數據連接)

h. 查看誰登陸了FTP,並殺死它的進程
ps –xf |grep ftp
kill 進程號

5. 高階部分測試篇:
配置本地組訪問的FTP


首先創建用戶組 test和FTP的主目錄

groupadd test

mkdir /tmp/test

然後創建用戶

useradd -G test –d /tmp/test –M usr1

注:G:用戶所在的組 d:表示創建用戶的自己目錄的位置給予指定

M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄

useradd –G test –d /tmp/test –M usr2

接着改變文件夾的屬主和權限

chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定爲usr1

chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什麼權限都沒有

這個實驗的目的就是usr1有上傳、刪除和下載的權限

而usr2只有下載的權限沒有上傳和刪除的權限

當然啦大家別忘了我們的主配置文件vsftpd.conf

-----------------------------------------------------------------------

修改用戶密碼或添加用戶密碼

以用戶name爲例,添加用戶:useradd name,設置密碼:passwd name,然後根據提示,輸入兩次密碼即可。

刪除用戶:userdel name,其實並沒有完全刪除,只是該用戶不能登陸,其目錄下的文件還在保留。

如:useradd username

passwd username

userdel username

---------------------------------------------------------------

要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的!

6. VSFTPD.conf裏面的參數簡要說明:


Anonymous_enable=yes (允許匿名登陸)

Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)

Local_umask=022 (FTP上本地的文件權限,默認是077)

Connect_form_port_20=yes (啓用FTP數據端口的數據連接)*

Xferlog_enable=yes (激活上傳和下傳的日誌)

Xferlog_std_format=yes (使用標準的日誌格式)

Ftpd_banner=XXXXX (歡迎信息)

Pam_service_name=vsftpd (驗證方式)*

Listen=yes (獨立的VSFTPD服務器)*

Anon_upload_enable=yes (開放上傳權限)

Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)

Write_enable=yes (開放本地用戶寫的權限)

Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)

Anon_world_readable_only=no (放開匿名用戶瀏覽權限)

Ascii_upload_enable=yes (啓用上傳的ASCII傳輸方式)

Ascii_download_enable=yes (啓用下載的ASCII傳輸方式)

Banner_file=/var/vsftpd_banner_file (用戶連接後歡迎信息使用的是此文件中的相關信息)

Idle_session_timeout=600(秒) (用戶會話空閒後10分鐘)

Data_connection_timeout=120(秒) (將數據連接空閒2分鐘斷)

Accept_timeout=60(秒) (將客戶端空閒1分鐘後斷)

Connect_timeout=60(秒) (中斷1分鐘後又重新連接)

Local_max_rate=50000(bite) (本地用戶傳輸率50K)

Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)

Pasv_min_port=50000 (將客戶端的數據連接端口改在

Pasv_max_port=60000 50000—60000之間)

Max_clients=200 (FTP的最大連接數)

Max_per_ip=4 (每IP的最大連接數)

Listen_port=5555 (從5555端口進行數據連接)

Local_enble=yes (本地帳戶能夠登陸)

Write_enable=no (本地帳戶登陸後無權刪除和修改文件)

這是一組

Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)

Chroot_list_enable=yes (文件中的名單可以調用)

Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list

(前提是chroot_local_user=no)

這又是一組

Userlist_enable=yes (在指定的文件中的用戶不可以訪問)

Userlist_deny=yes

Userlist_file=/指定的路徑/vsftpd.user_list

又開始單的了

Banner_fail=/路徑/文件名 (連接失敗時顯示文件中的內容)

Ls_recurse_enable=no

Async_abor_enable=yes

One_process_model=yes

Listen_address=10.2.2.2 (將虛擬服務綁定到某端口)

Guest_enable=yes (虛擬用戶可以登陸)

Guest_username=所設的用戶名 (將虛擬用戶映射爲本地用戶)

User_config_dir=/任意指定的路徑/爲用戶策略自己所建的文件夾

(指定不同虛擬用戶配置文件的路徑)

又是一組

Chown_uploads=yes (改變上傳文件的所有者爲root)

Chown_username=root

又是一組

Deny_email_enable=yes (是否允許禁止匿名用戶使用某些郵件地址)

Banned_email_file=//任意指定的路徑/xx/

又是單的

Pasv_enable=yes ( 服務器端用被動模式)

User_config_dir=/任意指定的路徑//任意文件目錄 (指定虛擬用戶存放配置文件的路徑)


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