vsftpd配置实验.docx
- 文档编号:9916339
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:50
- 大小:160.42KB
vsftpd配置实验.docx
《vsftpd配置实验.docx》由会员分享,可在线阅读,更多相关《vsftpd配置实验.docx(50页珍藏版)》请在冰点文库上搜索。
vsftpd配置实验
Fedora服务器之FTP配置zhuan
VSFTPD是一款小巧易用FTP服务器程序,vsftpd在安全性、高性能及稳定性三个方面有上佳的表现。
它提供的主要功能包括虚拟IP设置、虚拟用户、Standalone、inetd操作模式、强大的单用户设置能力及带宽限流等。
在安全方面,它从原理上修补了大多数Wu-FTP、ProFTP,乃至BSD-FTP的安装缺陷,使用安全编码技术解决了缓冲溢出问题,并能有效避免“globbing”类型的拒绝服务攻击。
目前正在使用vsftpd的官方网站有RedHat、SuSE、Debian、GNU、GNOME、KDE、Gimp和OpenBSD等。
它支持很多其他的FTP服务器不支持的特征。
比如:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
IPv6支持
中等偏上的性能
分配虚拟IP的可能性
高速
目录
一.ftp原理与vsftpd安装
二.设置匿名用户也支持下载和上传,创建目录
三.基于系统用户支持ftp上传和访问
四.搭建支持SSL加密传输的vftpd
五.vsftpd.conf配置详解
六.建立多个虚拟用户支持ftp不同访问权限
七.利用quota对Vsftpd做磁盘配额
(一)ftp原理与vsftp安装
1.ftp原理
FTPTransferProtocol件传输协议的缩写,在RFC959中具体说明。
FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。
控制通道:
控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的,PI称为控制连接
数据通道:
数据通道是和FTP服务器进行文件传输或者列表的通道。
FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:
PORT方式和PASV方式,DTP称为数据连接
PORT模式(主动方式)
FTP客户端首先和FTPServer的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。
PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。
在传送数据的时候,服务器端通过自己的TCP20端口发送数据。
FTPserver必须和客户端建立一个新的连接用来传送数据。
PASV模式(被动方式)
在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV命令的时候,FTPserver打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTPserver将通过这个端口进行数据的传送,这个时候FTPserver不再需要建立一个新的和客户端之间的连接传送数据。
如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。
2.安装vsftpd
[root@localhost/]#rpm-qa|grepvsftpd查询是否安装了vsftpd(提示无)
[root@localhost/]#mkdir/mnt/cdrom创建挂载光驱目录文件
[root@localhost/]#mount/dev/cdrom/mnt/cdrom/挂载光驱到刚创建目录
mount:
blockdevice/dev/cdromiswrite-protected,mountingread-only
[root@localhost/]#cd/mnt/cdrom/Server/
[root@localhostServer]#rpm-ivhvsftpd-2.0.5-12.el5.i386.rpm安装vsftpRPM包
warning:
vsftpd-2.0.5-12.el5.i386.rpm:
HeaderV3DSAsignature:
NOKEY,keyID37017186
Preparing...###########################################[100%]
1:
vsftpd###########################################[100%]
[root@localhostServer]#rpm-qa|grepvsftpd再查询是否安装了vsftpd
vsftpd-2.0.5-12.el5
[root@localhost~]#rpm-qivsftpd查询vsftpd详细信息
Name:
vsftpdRelocations:
(notrelocatable)
Version:
2.0.5Vendor:
RedHat,Inc.
Release:
12.el5BuildDate:
2007年12月13日星期四19时35分37秒
InstallDate:
2009年12月26日星期六00时35分03秒BuildHost:
ls20-bc1-
Group:
SystemEnvironment/DaemonsSourceRPM:
vsftpd-2.0.5-12.el5.src.rpm
Size:
289673License:
GPL
Signature:
DSA/SHA1,2007年12月17日星期一23时43分34秒,KeyID5326810137017186
Packager:
RedHat,Inc.
URL:
http:
//vsftpd.beasts.org/
Summary:
vsftpd-非常安全Ftp守护进程
Description:
vsftpd是一个非常安全FTP守护进程。
它是完全从零开始编写的。
[root@localhost~]#rpm-qlvsftpd列出vsftpd中包含文件
/etc/logrotate.d/vsftpd.logvsftpd的日志文件
/etc/pam.d/vsftpdPAM认证文件
/etc/rc.d/init.d/vsftpd启动脚本
/etc/vsftpdvsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd.conf主配置文件
/etc/vsftpd/vsftpd_conf_migrate.shvsftpd操作的一些变量和设置
/usr/sbin/vsftpdvsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp匿名用户主目录
/var/ftp/pub匿名用户的下载目录
[root@localhost/]#servicevsftpdstart启动vsftpd
为vsftpd启动vsftpd:
[确定]
[root@localhost~]#chkconfig--level3vsftpdon打开3级别随系统自动启动vsftpd
(二)设置匿名用户也支持下载和上传与创建目录
1.vsftpd的匿名用户默认只支持下载权限
[root@localhost/]#ftp127.0.0.1测试ftp用匿名用户登陆到本地服务器
Connectedto127.0.0.1.
220(vsFTPd2.0.5)
530PleaseloginwithUSERandPASS.
530PleaseloginwithUSERandPASS.
KERBEROS_V4rejectedasanauthenticationtype
Name(127.0.0.1:
root):
anonymous
331Pleasespecifythepassword.
Password:
230Loginsuccessful.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>登陆成功(默认vsftp是开启匿名登录)
接下来测试匿名用户上传与下载
[root@localhost~]#touch/var/ftp/pub/test.txt先在匿名用户下载目录创建一个test.txt文件
[root@localhost/]#cdroot
[root@localhost~]#touchtest1.txt进入根目录创建一个test1.txt文件,作为上传测试
ftp>cdpub
2.让匿名用户支持上传功能,下载,创建目录文件的权限
要实现这个功能,必须做三件事情(测试环境是在关闭selinux情况下)
修改/etc/sysconfig/selinux文件:
#SELINUX=enforcing
SELINUX=disabled
重启生效,如果不想重启,用命令
#setenforce0
(1)修改/etc/vsftpd/vsftpd.conf 去掉注释anon_upload_enable=YES
(2)修改/etc/vsftpd/vsftpd.conf 去掉注释anon_mkdir_write_enable=YES
以上两个步骤如下:
[root@localhost~]#vi/etc/vsftpd/vsftpd.conf
25#hasaneffectiftheaboveglobalwriteenableisactivated.Also,youwill
26#obviouslyneedtocreateadirectorywritablebytheFTPuser.
27anon_upload_enable=YES
28#
29#UncommentthisifyouwanttheanonymousFTPusertobeabletocreate
30#newdirectories.
31anon_mkdir_write_enable=YES
32#
33#Activatedirectorymessages-messagesgiventoremoteuserswhenthey
34#gointoacertaindirectory.
35dirmessage_enable=YES
(3)文件系统中FTP匿名用户对某个目录有写权限
[root@localhost~]#cat/etc/passwd|grepftp
ftp:
x:
14:
50:
FTPUser:
/var/ftp:
/sbin/nologinà/var/ftpftp用户的家目录/sbin/nologin不支持系统登录,只能作为虚拟用户用来登录vsftpd
创建一个名为put目录,并定义这个文件的所有者为ftp
[root@localhostftp]#mkdirput
[root@localhostftp]#chownftpput修改文件所有者为ftp
[root@localhostftp]#ll
总计8
drwxr-xr-x2rootroot40962007-12-13pub
drwxr-xr-x2ftproot409612-2918:
13put
[root@localhostftp]#servicevsftpdrestart重启vsftpd服务
关闭vsftpd:
[确定]
为vsftpd启动vsftpd:
[确定]
提示:
要想让匿名用户支持删除和更名权限,必须在vsftpd.conf加入以下参数
anon_other_write_enable=YES允许匿名账号具有删除.更名权限
[root@uhome~]#ftp127.0.0.1 测试结果(三)基于系统用户支持ftp上传和访问
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/nologinuhome
建设一个不能登录系统用户.只用来登录ftp服务,这里如果没设置用户目录。
默认是在home下
[root@red-hat-5 ~]# passwduhome
Changing password for user uhome.
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)
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:
root):
uhome
331 Please specify the password. ------>提示登录成功
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
接下来测试权限
ftp> put test.txt 上传test.txt文件成功
local:
test.txt remote:
test.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/uhome/hong" created
ftp> rmdir hong 删除hong目录文件成功
250 Remove directory operation successful.
ftp> pwd 显示家目录
257 "/home/uhome"
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 test.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
默认是不存在,需要我们手动建立
[root@red-hat-5 ~]# ls /etc/vsftpd/
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
news
uucp
operator
games
nobody
[root@red-hat-5 ~]# echo uhome >> /etc/vsftpd/ftpusers
把之前建的uhome账号加进去测试
(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)
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:
root):
uhome
530 Permission denied. ------------->提示登录失败
Login failed.
[root@red-hat-5 ~]# echo uhome >> /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)
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:
root):
uhome
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>ifconfig查看本地ip
...................................
以太网适配器VMwareNetworkAdapterVMnet1:
6
连接特定的 DNS 后缀 . . . . . . . :
IPv4 地址 . . . . . . . . . . . . :
192.168.184.1
子网掩码 . . . . . . . . . . . . :
255.255.255.0
默认网关. . . . . . . . . . . . . :
只允许这个ip地址访问ftpssh,可以写条iptable做限制.
如下:
[root@red-hat-5 ~]# iptables -A INPUT -p tcp -s 192.168.184.1 --dport 22 -j ACCEPT
允许192.168.184.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vsftpd 配置 实验