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. ------>提示登入失敗,說明已經禁
用匿名登入
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. ------>提示登入成功
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
<b>接下來測試權限</b>
ftp> <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> <b>mkdir hong</b> 建立hong目錄檔案成功
257 "/home/viong/hong" created
ftp> <b>rmdir hong</b> 删除hong目錄檔案成功
250 Remove directory operation successful.
ftp> <b>pwd</b> 顯示家目錄
257 "/home/viong"
ftp><b> cd /etc</b> 切換/etc成功
250 Directory successfully changed.
ftp><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> <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>>/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
news
uucp
operator
games
nobody
[root@red-hat-5 ~]# <b>echo viong >> /etc/vsftpd/ftpusers</b>
把之前建的viong賬号加進去測試
331 Please specify the password. ----->提示登入失敗,說明生效了
系統添加一個使用者也預設有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. ------------->提示登入失敗
[root@red-hat-5 ~]# <b>echo viong >> /etc/vsftpd/user_list</b>
把viong賬号加入到 user_list
Name (127.0.0.1:root):<b> viong</b>
331 Please specify the password. ------------->提示登入成功
為了讓ftp更安全,我們設定ftp目标ip位址通路
C:\Users\Administrator><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,如需轉載請自行聯系原作者