基於系統用戶的vsftpd配置

安裝vsftpd

#cd /etc/yum.repos.d/
# rm -rf *
# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
# yum clean all
# yum -y install vsftpd
 linux

1.關閉匿名用戶登陸

ftp支持匿名登陸是不安全,因此要禁止匿名ftp登陸
/etc/vsftpd/vsftpd.conf修改如下三項
anonymous_enable=NO
#anon_upload_enable=YES          (原本就是註釋掉的,不須要改)
#anon_mkdir_write_enable=YES  (原本就是註釋掉的,不須要改)
 
[root@red-hat-5 ~]# service vsftpd restart
關閉vsftpd                                                   [肯定]
vsftpd啓動vsftpd                                     [肯定]

2.建立一個系統用戶來登陸ftp

 
[root@red-hat-5 ~]# useradd -s /sbin/nologin viong
建設一個不能登陸系統用戶.  只用來登陸ftp服務 ,這裏若是沒設置用戶目錄。默認是在home
 
添加ftp用戶(用戶名:ftpuser   ftp根目錄/home/wwwroot/ftpuser) 
 
   
   
            
   
   
  1. useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser 
 
  3.增強vsftp安全設置
從以上能夠看出ftp家目錄存在安全漏洞因此要修改如下設置:

(1)限制系統用戶鎖定在家目錄

 
Vi /etc/vsftpd/vsftpd.conf
 
去掉前面#
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
 
cut命令是切去某一列-d是每列的分隔符-f 是切取第幾列而後重定向到chroot文件
 
[root@red-hat-5 ~]# ll /etc/vsftpd/
總計 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
 

(2)限制重要系統用戶不能登陸ftp權限

 
[root@red-hat-5 ~]# cat /etc/vsftpd/ftpusers
默認會加入一些比較重要系統用戶
 
 
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
 
ftpusers利用系統的pam模塊阻止某一些用戶登陸
 

(3)利用ftp用戶策略容許登陸ftp的系統用戶

 
系統添加一個用戶也默認有ftp的登錄權限,是不安全,要一個個設置,有點繁瑣。利用ftp用戶策略解決這個問題,user_list文件設置,只有user_list中存在的用戶才能登陸系統
 
修改配置文件:vi  /etc/vsftpd/vsftpd.conf
 
userlist_enable=YES文件後面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
 

 
[root@red-hat-5 ~]# service vsftpd restart
關閉vsftpd                                                   [肯定]
vsftpd啓動vsftpd                                     [肯定]
 

user_list使用介紹:安全

[root@hx10 vsftpd]# more user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.app

表示:ssh

userlist_deny=NO,那麼/etc/vsftpd/user_list的用戶才能夠登陸,須要把剛建立的賬號加入這個文件,固然還會阻止/etc/vsftpd/ftpusers的用戶登陸tcp

userlist_deny=YES,那麼/etc/vsftpd/user_list的用戶不能夠登陸,即便設置密碼ide

 

(4)設置登陸ftp目標ip地址

 
爲了讓ftp更安全咱們設置ftp目標ip地址訪問
 
C:\Users\Administrator>ipconfig 查看本地ip
 
...................................
 
以太網適配器 VMware Network Adapter VMnet1:6
 
   鏈接特定的 DNS 後綴 . . . . . . . :
   IPv4 地址 . . . . . . . . . . . . : 192.168.184.1
   子網掩碼  . . . . . . . . . . . . : 255.255.255.0
   默認網關. . . . . . . . . . . . . :
 
只容許這個ip地址訪問ftp ssh,能夠寫條iptable作限制.
以下
 
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 22 -j ACCEPT
容許192.168.184.1訪問本地 22端口
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 21 -j ACCEPT
容許192.168.184.1訪問本地 21端口
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 65341:65351 -j ACCEPT
容許192.168.184.1訪問本地 PASV端口
 
[root@red-hat-5 ~]# iptables -P INPUT DROP  禁止任何輸入的數據包
[root@red-hat-5 ~]# service iptables save 保存iptables設置
將當前規則保存到 /etc/sysconfig/iptables:                 [肯定]
[root@red-hat-5 ~]# service iptables status 檢查iptables的設置
表格: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

本文出自 「技術在於折騰」 博客,請務必保留此出處http://viong.blog.51cto.com/844766/261342this

vsftpd.conf的配置以下spa

  
  
           
  
  
  1. [root@vm3 vsftpd]# cat vsftpd.conf |grep -v ^$ |grep -v "#" 
  2. anonymous_enable=NO 
  3. local_enable=YES 
  4. write_enable=YES 
  5. local_umask=022 
  6. dirmessage_enable=YES 
  7. xferlog_enable=YES 
  8. connect_from_port_20=YES 
  9. xferlog_std_format=YES 
  10. chroot_list_enable=YES 
  11. chroot_list_file=/etc/vsftpd/chroot_list 
  12. listen=YES 
  13. pam_service_name=vsftpd 
  14. userlist_enable=YES 
  15. userlist_deny=NO 
  16. userlist_file=/etc/vsftpd/user_list
  17. tcp_wrappers=YES 
  18. [root@vm3 vsftpd]#