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,如需转载请自行联系原作者



相关文章
|
3月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统搭建FTP服务器教程】
现在,你已经成功在Ubuntu系统上搭建了FTP服务器。你可以使用FTP客户端连接到你的FTP服务器,并上传、下载文件。注意,为了安全起见,建议配置SSL/TLS加密以保护数据传输。
63 0
|
7月前
|
安全 数据安全/隐私保护
直播系统源码部署,高效文件管理与传输的FTP协议
在直播系统源码部署后的每天要处理大量媒体文件的情况下,FTP协议可以依靠自身的强大文件传输管理机制、备份与恢复与自动化任务来帮助平台用户更好的操作体验,通过FTP协议,也确保直播系统源码媒体文件传输的可靠性与安全性,让直播系统源码成为了更优质的平台。
直播系统源码部署,高效文件管理与传输的FTP协议
|
8月前
|
Linux 数据安全/隐私保护
百度搜索:蓝易云【CentOS7系统安装配置FTP服务器详解。]
FTP服务器是一种常用的文件传输协议,它可以通过网络将文件从一个计算机传输到另一个计算机。在Linux系统中,搭建FTP服务器可以方便地进行文件传输。本文将详细介绍CentOS7系统安装配置FTP服务器的步骤。
154 0
|
6月前
|
监控 Ubuntu 安全
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
248 2
如何在 Ubuntu Linux 中设置和使用 FTP 服务器?
|
6月前
|
SQL jenkins Linux
一篇文章了解开源 FTP 服务器 vsftpd
一篇文章了解开源 FTP 服务器 vsftpd
|
7月前
|
Ubuntu Linux 网络安全
百度搜索:蓝易云【ubuntu系统使用vsftpd搭建FTP服务器。】
现在您已经成功在Ubuntu系统上使用vsftpd搭建了FTP服务器。请注意,这些步骤适用于Ubuntu系统,如果您使用的是其他Linux发行版,请查阅相应的文档或指南进行操作。
233 0
|
8月前
|
Unix Linux 测试技术
FTP命令不同系统之间传输文件
FTP命令不同系统之间传输文件
|
8月前
|
Ubuntu 开发工具
Ubuntu系统搭建FTP服务器
Ubuntu系统搭建FTP服务器
138 0
|
9月前
|
Linux
Linux系统【文件传输】ftpwho命令 – 显示ftp会话信息
ftpwho命令用于显示当前所有以FTP登入的用户会话信息。 执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。
59 2
|
9月前
|
网络协议 Linux 网络安全
Linux系统之部署FTP服务器
Linux系统之部署FTP服务器
182 0