Vsftpd完全攻略(三)基于系统用户支持ftp上传 访问和vsftp安全设置

简介:

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                                     [确定]

[root@red-hat-5 ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): anonymous

331 Please specify the password. ------>提示登录失败说明已经禁
                                用匿名登录

Password:

530 Login incorrect.

Login failed.

 

2.创建一个系统用户来登录ftp

 
[root@red-hat-5 ~]# useradd -s /sbin/nologin viong
建设一个不能登录系统用户.  只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home

 
[root@red-hat-5 ~]# passwd viong

Changing password for user viong.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@red-hat-5 ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): viong

331 Please specify the password. ------>提示登录成功

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

 
接下来测试权限

 
ftp> put viong.txt 上传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> mkdir hong 创建hong目录文件成功

257 "/home/viong/hong" created

ftp> rmdir hong 删除hong目录文件成功

250 Remove directory operation successful.

ftp> pwd  显示家目录

257 "/home/viong"

ftp> cd /etc 切换/etc成功

250 Directory successfully changed.

ftp> mget passwd 下载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> !ls 显示下载passwd成功

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

 

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

 
 [root@red-hat-5 ~]# echo viong >> /etc/vsftpd/ftpusers
 把之前建的viong账号加进去测试

 
[root@red-hat-5 ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): viong

331 Please specify the password.  ----->提示登录失败,说明生效了

Password:

530 Login incorrect.

Login failed.

 

(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                                     [确定]

 
[root@red-hat-5 ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): viong

530 Permission denied.   ------------->提示登录失败

Login failed.

[root@red-hat-5 ~]# echo viong >> /etc/vsftpd/user_list
viong账号加入到 user_list

 
[root@red-hat-5 ~]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (127.0.0.1:root): viong

331 Please specify the password.  ------------->提示登录成功

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

 

(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




    本文转自viong 51CTO博客,原文链接:http://blog.51cto.com/viong/261342,如需转载请自行联系原作者



相关文章
|
6月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统搭建FTP服务器教程】
现在,你已经成功在Ubuntu系统上搭建了FTP服务器。你可以使用FTP客户端连接到你的FTP服务器,并上传、下载文件。注意,为了安全起见,建议配置SSL/TLS加密以保护数据传输。
105 0
|
存储 网络协议 文件存储
手把手教你搭建Serv-U FTP服务器共享文件并实现外网远程访问「无公网IP」
手把手教你搭建Serv-U FTP服务器共享文件并实现外网远程访问「无公网IP」
|
1月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
3月前
|
JavaScript Linux 应用服务中间件
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
|
6月前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
174 1
|
6月前
|
存储 网络协议 文件存储
使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问-1
使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问
110 2
|
6月前
|
安全 关系型数据库 MySQL
CentOS 7系统加固详细方案SSH FTP MYSQL加固
CentOS 7系统加固详细方案SSH FTP MYSQL加固
|
SQL jenkins 持续交付
一篇文章掌握 FTP 和本地文件系统的桥梁 - CurlFtpFS
一篇文章掌握 FTP 和本地文件系统的桥梁 - CurlFtpFS
|
6月前
|
数据安全/隐私保护 Windows
使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问-2
使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问
125 0
|
6月前
|
存储 网络协议 安全
如何搭建外网可访问的Serv-U FTP服务器,轻松远程共享文件!
如何搭建外网可访问的Serv-U FTP服务器,轻松远程共享文件!