天天看點

Vsftpd完全攻略(三)基于系統使用者支援ftp上傳 通路和vsftp安全設定

ftp支援匿名登入是不安全,是以要禁止匿名ftp登入

在/etc/vsftpd/vsftpd.conf修改以下三項

<b>anonymous_enable=NO</b>

<b></b>

<b>#anon_upload_enable=YES</b>

<b>#anon_mkdir_write_enable=YES</b>

[root@red-hat-5 ~]# <b>service vsftpd restart</b>

關閉vsftpd:                                             [确定]

為vsftpd啟動vsftpd:                                     [确定]

[root@red-hat-5 ~]#<b> ftp 127.0.0.1</b>

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): <b>anonymous</b>

331 Please specify the password. ------&gt;提示登入失敗,說明已經禁

                                用匿名登入

Password:

530 Login incorrect.

Login failed.

[root@red-hat-5 ~]#<b> useradd -s /sbin/nologin viong</b>

建設一個不能登入系統使用者. 隻用來登入ftp服務 ,這裡如果沒設定使用者目錄。預設是在home下

[root@red-hat-5 ~]#<b> passwd viong</b>

Changing password for user viong.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

Name (127.0.0.1:root): <b>viong</b>

331 Please specify the password. ------&gt;提示登入成功

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

<b>接下來測試權限</b>

ftp&gt; <b>put viong.txt</b> 上傳viong.txt檔案成功

local: viong.txt remote: viong.txt

227 Entering Passive Mode (127,0,0,1,98,115)

150 Ok to send data.

226 File receive OK.

ftp&gt; <b>mkdir hong</b> 建立hong目錄檔案成功

257 "/home/viong/hong" created

ftp&gt; <b>rmdir hong</b> 删除hong目錄檔案成功

250 Remove directory operation successful.

ftp&gt; <b>pwd</b>  顯示家目錄

257 "/home/viong"

ftp&gt;<b> cd /etc</b> 切換/etc成功

250 Directory successfully changed.

ftp&gt;<b> mget passwd</b> 下載下傳passwd

mget passwd?

227 Entering Passive Mode (127,0,0,1,220,77)

150 Opening BINARY mode data connection for passwd (1429 bytes).

226 File send OK.

1429 bytes received in 5.9e-05 seconds (2.4e+04 Kbytes/s)

ftp&gt; <b>!ls</b> 顯示下載下傳passwd成功

anaconda-ks.cfg  install.log  install.log.syslog  passwd  viong.txt

從以上可以看出ftp家目錄存在安全漏洞,是以要修改以下設定:

<b>Vi /etc/vsftpd/vsftpd.conf</b>

<b> </b>

去掉前面#号<b></b>

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list 限制更多系統使用者

然後把所有使用者加入/etc/vsftpd/chroot_list即可

[root@red-hat-5 ~]# ls /etc/vsftpd/ chroot_list

預設是不存在,需要我們手動建立

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

[root@red-hat-5 ~]# touch /etc/vsftpd/chroot_list

[root@red-hat-5 ~]# cut -d : -f  1 /etc/passwd&gt;&gt;/etc/vsftpd/chroot_list

把本地使用者都加入到chroot_list

<b>cut</b><b>指令是切去某一列</b><b>,-d</b><b>是每列的分隔符</b><b>,-f </b><b>是切取第幾列</b><b>,</b><b>然後重定向到chroot</b><b>檔案</b>

[root@red-hat-5 ~]#<b> ll /etc/vsftpd/</b>

總計 24

-rw-r--r-- 1 root root  197 12-25 19:57 chroot_list

-rw--------1 root root 125 2007-12-13 ftpusers

 ftpusers指的是阻止這個檔案中的使用者登陸

-rw------- 1 root root  361 2007-12-13 user_list

-rw------- 1 root root 4396 12-25 19:19 vsftpd.conf

-rwxr--r-- 1 root root  338 2007-12-13 vsftpd_conf_migrate.sh

[root@red-hat-5 ~]#<b> cat /etc/vsftpd/ftpusers</b>

預設會加入一些比較重要系統使用者

# Users that are not allowed to login via ftp

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

 [root@red-hat-5 ~]# <b>echo viong &gt;&gt; /etc/vsftpd/ftpusers</b>

 把之前建的viong賬号加進去測試

331 Please specify the password.  -----&gt;提示登入失敗,說明生效了

系統添加一個使用者也預設有ftp的登陸權限,是不安全,要一個個設定,有點繁瑣。利用ftp使用者政策解決這個問題,即user_list檔案設定,隻有user_list中存在的使用者才能登入系統

<b>修改配置檔案</b><b>:vi  /etc/vsftpd/vsftpd.conf</b>

在userlist_enable=YES檔案後面添加

<b>userlist_deny=NO</b>

<b>userlist_file=/etc/vsftpd/user_list</b>

<b></b> 

530 Permission denied.   -------------&gt;提示登入失敗

[root@red-hat-5 ~]# <b>echo viong &gt;&gt; /etc/vsftpd/user_list</b>

把viong賬号加入到 user_list

Name (127.0.0.1:root):<b> viong</b>

331 Please specify the password.  -------------&gt;提示登入成功

為了讓ftp更安全,我們設定ftp目标ip位址通路

C:\Users\Administrator&gt;<b>ipconfig </b><b>檢視本地ip</b>

...................................

以太網擴充卡 VMware Network Adapter VMnet1:6

   連接配接特定的 DNS 字尾 . . . . . . . :

   IPv4 位址 . . . . . . . . . . . . : 192.168.184.1

   子網路遮罩  . . . . . . . . . . . . : 255.255.255.0

   預設網關. . . . . . . . . . . . . :

隻允許這個ip位址通路ftp ssh,可以寫條iptable做限制.

如下:

[root@red-hat-5 ~]#<b> iptables -A INPUT -p tcp -s 192.168.184.1 --dport 22 -j ACCEPT</b>

允許192.168.184.1通路本地 22端口

[root@red-hat-5 ~]#<b> iptables -A INPUT -p tcp -s 192.168.184.1 --dport 21 -j ACCEPT</b>

允許192.168.184.1通路本地 21端口

[root@red-hat-5 ~]#<b> iptables -A INPUT -p tcp -s 192.168.184.1 --dport 65341:65351 -j ACCEPT</b>

允許192.168.184.1通路本地 PASV端口

[root@red-hat-5 ~]#<b> iptables -P INPUT DROP  </b>禁止任何輸入的資料包

[root@red-hat-5 ~]#<b> service iptables save </b>儲存iptables設定<b></b>

将目前規則儲存到 /etc/sysconfig/iptables:                 [确定]

[root@red-hat-5 ~]# <b>service iptables status </b>檢查iptables的設定<b></b>

表格:filter

Chain INPUT (policy DROP)

num  target     prot opt source               destination        

1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0          

2    ACCEPT     tcp  --  192.168.184.1        0.0.0.0/0           tcp dpt:22

3    ACCEPT     tcp  --  192.168.184.1        0.0.0.0/0           tcp dpt:21

4    ACCEPT    tcp -192.168.184.1        0.0.0.0/0      tcp dpts:65341:65351

    本文轉自viong 51CTO部落格,原文連結:http://blog.51cto.com/viong/261342,如需轉載請自行聯系原作者

繼續閱讀