歡迎您光臨本站 註冊首頁

VSFTPD的基礎篇

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

作者:龍磊


這是我這個菜鳥學習LINUX所寫的第一篇文章,是比較基礎的FTP架設的應用,如果我寫有什麼問題請大家多指教,我後續會陸續出進階篇把FTP中各種詳細的配置跟大家一起進行探討。
我所用的是LINUX AS+VSFTPD-1.2.0-4的系統架構,在這裡說明的是如果對配置文件不是很熟悉,最好做個備份,以免誤操作:


1. 匿名伺服器的連接(獨立的伺服器)
在/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的基本選項

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

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

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

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

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

7. 安全選項
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埠進行數據連接)

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

VSFTPD的高手篇

作者:龍磊

我可不是高手!!!^_^我只不過是個菜鳥,盡我的能力寫出了我這個菜鳥覺得的高手篇,所以有什麼錯誤請大家指正哦!!!

環境:linux as 3.0 + vsftpd -1.2.0-4的系統架構,是在獨立伺服器下的哦!討厭XINETD^_^

1. 配置本地組訪問的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

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

2. 配置獨立FTP的伺服器的非埠標準模式進行數據連接

這個非常容易:在VSFTPD。CONF中添加

Listen_port=33333

就可以了啦!

好了重頭戲來了,這也是我為什麼叫高手篇的緣故!^_^(大家不要扔雞蛋哦!)

3. 配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的許可權

(兩個有讀目錄的許可權,一個有瀏覽、上傳、下載的許可權,一個有瀏覽、下載、刪除和改文件名的許可權)

A:配置網卡

第一塊網卡地址是10.2.3.4 掩碼是255.255.0.0

ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up

B:寫入/etc/sysconfig中(為了重起后IP地址不會丟失)

cd /etc/sysconfig/network-scripts

cp ifcfg-eth0 ifcfg-eth0:1

vi ifcfg-eth0:1在其中修改內容如下

DEVICE=eth0:1

BROADCAST=211.131.4.255

HWADDR=該網卡的MAC地址

IPADDR=211.131.4.253

NETMASK=255.255.255.0

NETWORK=211.131.4.0

ONBOOT=yes

TYPE=Ethernet

wq推出

C:進入vsftpd.conf所在的文件夾

cp vsftpd.conf vsftpd2.conf

修改vsftpd.conf添加以下信息

Listen_address=10.2.3.4

修改vsftpd2.conf添加以下信息

Listen_address=211.131.4.253

Ftpd_banner=this is a virtual ftp test

到此虛擬的FTP伺服器建立好了

D:建立logins.txt

vi /tmp/logins.txt

添加入下信息:

longlei------------用戶名

longlei------------密碼

zhangweibo

zhangweibo

jinhui

jinhui

lxp

lxp

格式要按照我的來哦,一個用戶名,一個密碼啦

F:建立訪問者的口令庫文件,然後修改其許可權

db_load ?T ?t hash ?f /tmp/logins.txt /etc/vsftpd_login.db

G:進如/etc/pam.d/中創建ftp.vu

在此文件中添加如下信息

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

H:在/var/ftp/創建目錄並改變其屬性和它的屬主

useradd -d /var/ftp/test qiang

chmod 700 /var/ftp/test

在目錄中添加test_file測試文件

I:進入vsftpd2.conf修改其中的信息(我加的是)

Listen_yes

Anonymous_enable=no

Local_enable=yes

Write_enable=no

Anon_upload_enable=no

Anon_mkdir_write_enable=no

Anon_other_write_enable=no

Chroot_local_user=yes

Guest_enable=yes----------起用虛擬用戶

Guest_username=qiang------將虛擬用戶映射為本地用戶

Listen_port=5555

Max_client=10

Max_per_ip=1

Ftpd_banner=this is a virtual server and users

Pam_service_name=ftp.vu

註:在主配置文件中給的許可權越低,在後面分用戶管理的時候對擁護的許可權劃分的空間就越大,因為主配置文件最高的限制服務先讀主配置文件,然後再讀用戶的配置文件

重起服務

到此虛擬USER就建好了

J:在VSFTPD。CONF所在的目錄中創建virtaul文件目錄

並在文件目錄中創建以你用戶名命名的配置文件

Longlei zhangweibo jinhui lxp

在longlei中添加:

Anon_world_readable_only=no

在lxp中添加

Anon_world_readable_only=no

這樣此兩個用戶就有了瀏覽目錄的許可權了

在jinhui中添加

Anon_world_readable_only=no

Write_enable=yes

Anon_upload_enable=yes

此用戶就有了上傳、下載和瀏覽的許可權

在zhangweibo中添加

Anon_world_readable_only=no

Write_enable=yes

Anon_upload_enable=yes

Anon_other_write_enable=yes

此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的許可權

K:修改vsftpd2.conf

加入user_config_dir=/vsftpd.conf所在的目錄/virtual

重起伺服器就搞定了

好了大家別走開,現在隆重推出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=/任意指定的路徑//任意文件目錄 (指定虛擬用戶存放配置文件的路徑)

[火星人 ] VSFTPD的基礎篇已經有403次圍觀

http://coctec.com/docs/linux/show-post-204023.html