root 发表于 2012-12-19 09:00:09

Vsftpd的安全配置案例分析

案例一
配置ftp服务器,要求如下,1.匿名用户只能下载,匿名用户的根目录为/var/abc/,要求用户在该虚拟机上新增虚拟磁盘(30G),对磁盘进行分区,新增磁盘的第一个分区(10G)格式化为EXT3文件系统,将该分区挂载在/part1目录下,在/part1上创建home目录,将linux主机上本地帐号的默认家目录改为/part1/home,在该系统中创建user1和user2帐号,user3以及user4在进行ftp访问时,可以访问到自己的家目录,每个用户的空间限制为8M,速率为3MB/S,要求该ftp服务器同时的在线访问量为80个连接,每用户的连接数最多为3个,禁止user5登录。案例二。使用tcp_wrapper,作ip限制。利用CA 实现安全ftp的安全访问一.配置如下:修改用户家目录# useradd -D -b /part1/home先要做磁盘配额# fdisk /dev/sdbThe number of cylinders for this disk is set to 3916.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs   (e.g., DOS FDISK, OS/2 FDISK)Command (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1Last cylinder or +size or +sizeM or +sizeK (1218-3916, default 3916): +10GCommand (m for help): w二.格式化硬盘命令:Mkfs -t   ext3 /dev/sdb1创建目录,并挂载硬盘三.编辑配置文件如下:
# vim /etc/fstab       # mount /dev/sdb1 /part1/home
# mount -o remount /dev/sdb1# mount/dev/sdb1 on /part1/home type ext3 (rw,usrquota)usrquota这个磁盘配额参数也已经添加成功了# df -h文件系统            容量已用 可用 已用% 挂载点/dev/mapper/VolGroup00-LogVol00                     13G2.2G9.8G18% //dev/sda1            99M   12M   82M13% /boottmpfs               125M   0125M   0% /dev/shm/dev/sdb1             9.2G150M8.6G   2% /part1/home 四。现在开始生成磁盘配额数据库# quotacheck-auvg切换到/part1/home 目录下# ll总计 24-rw------- 1 root root6144 12-18 01:10 aquota.userdrwx------ 2 root root 16384 12-18 00:23 lost+found
五。现在可以看到,生成磁盘配额数据库后,在/part1/home下面就自动的产生了文件,aquota.user这个文件就是用来存放所有磁盘配额的信息。六.启用磁盘配额。# quotaon /part1/home七.编辑磁盘配额。# edquota user3现在我们系统中有个用户user3,我们就针对这个用户来做磁盘配额
八.如果我们需要给多个用户做磁盘配额的话,一个一个指定又太麻烦了,有一个方法可以减轻负担。# edquota -p user1 user2使用如下命令查看user2的磁盘配额情况# edquota user2验证如下:$ dd if=/dev/zero of=u3 bs=1M count=8sdb1: write failed, user block limit reached.dd: 写入 “u3”: 超出磁盘限额8+0 records in7+0 records out# edquota -p user3 user4# repquota -a*** Report for user quotas on device /dev/sdb1Block grace time: 7days; Inode grace time: 7days                        Block limits                File limitsUser            used    soft    hardgrace    usedsofthardgrace----------------------------------------------------------------------root      --152688       0       0            4   0   0       user3   --    8000    8000    8000            9   0   0       user4   --      32    8000    8000            8   0   0   九.Vsftpd服务器的配置部分 # vim vsftpd.conf 96 chroot_list_enable=YES 97 # (default follows) 98 chroot_list_file=/etc/vsftpd/chroot_list 97 # (default follows) 98 chroot_list_file=/etc/vsftpd/chroot_listpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESmax_clients=80max_per_ip=3anon_root=/var/abclocal_max_rate=3000000十.禁止user3 user4登录后禁止更改目录# vim chroot_list user3user4验证:# ftp 127.0.0.1Name (127.0.0.1:user3): user3331 Please specify the password.230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> cd /home550 Failed to change directory.    不能切换目录了每个ip最多能连接3次
下载速率
禁止本地user5用户登录:#vim /etc/vsftpd/vsftpd.confuserlist_enable=YES把用户加入/etc/vsftpd/ftpusers
案例二 配置解析1.查看服务器是否支持tcp_wrapper# ldd $(which vsftpd)linux-gate.so.1 =>(0x00138000)libssl.so.6 => /lib/libssl.so.6 (0x001ba000) libwrap.so.0 => /lib/libwrap.so.0 (0x00af5000) 可以看到是该服务器是支持tcp_wrapper的 只允许某个ip登录或者一个网段vim /etc/hosts.allow    vsftpd:192.168.10.10:allow#也可以 vsftpd:192.168.10.0/255.255.255.0:allow 允许某个网段vim /etc/hosta.denyvsftpd:all:deny验证ftp server 的ip是192.168.10.10C:\Documents and Settings\Administrator>ftp 192.168.10.10Connected to 192.168.10.10.421 Service not available.使用ip为192.168.10.10 登录User (192.168.10.10:(none)): user1Connection closed# ftp 192.168.10.10Connected to 192.168.10.10.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 typeName (192.168.10.10:root): user1230 Login successful. by remote host.看到可以登录。Ftps的配置部分 注意:先把tcp_wrapper里面的配置清空以免影响访问# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm # rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm# tshark -ni eth0 -R "tcp.dstport eq 21"使用抓包工具是可以看到用户名和密码的。
CA 部分私钥是cakey.pem,根证书是cacer.pem 45 dir             = /etc/pki/CA 87 [ policy_match ] 88 countryName             = optional 89 stateOrProvinceName   = optional 90 organizationName      = optional 91 organizationalUnitName= optional 92 commonName            = optional 93 emailAddress            = optional# mkdir certs newcerts crl# touch index.txt serial5.CA服务器产生自己的证书# openssl genrsa 1024 > private/cakey.pemCA服务器产生证书# openssl req -new -key private/cakey.pem -x509 -out cacert.pem7.ftp服务器产生自己的私钥# mkdir /etc/vsftpd/certs# cd /etc/vsftpd/certs/# openssl genrsa 1024 >vsftpd.key8.ftp服务器产生请求# openssl req -new -key vsftpd.key -out vsftpd.csr9.CA 服务器颁发证书# openssl ca -in vsftpd.csr -out vsftpd.cert10.修改CA服务器的证书及私钥的权限# cd /etc/pki/CA# chmod 600 private/cakey.pem# chmod 600 cacert.pem 当用户通过ftps方式访问ftp服务器是,要使用ftp服务器的证书。所以要在ftp的配置文件中说明证书及私钥位置force_local_data_ssl=YESforce_local_logins_ssl=YESssl_enable=YESssl_sslv2=YESssl_sslv3=YESssl_tlsv1=YESrsa_cert_file=/etc/vsftpd/certs/vsftpd.certrsa_private_key_file=/etc/vsftpd/certs/vsftpd.key测试:C:\Documents and Settings\Administrator>ftp 192.168.10.10Connected to 192.168.10.10.220 (vsFTPd 2.0.5)User (192.168.10.10:(none)): user1530 Non-anonymous sessions must use encryption.#可以看到已经加密了Login failed.               《-- 不支持加密访问使用第三方软件进行测试如下

默认进入自己的家目录
可以切换目录
使用抓包工具进行抓包,可以发现已经加密了# tshark -ni eth0 -R "tcp.dstport eq 21"

root 发表于 2012-12-19 09:00:31

{:6_391:}{:6_391:}

kaola4549 发表于 2013-5-15 17:39:34

帮你顶下哈!!

小木木 发表于 2013-5-16 04:43:00

有道理。。。

ibaobei 发表于 2013-5-16 16:48:34

漏洞与补丁齐飞,蓝屏共死机一色!

违法℃玩家 发表于 2013-5-17 06:12:59

我身在江湖,江湖里却没有我得传说。

???紵 发表于 2013-5-17 15:19:36

鸳鸳相抱何时了,鸯在一边看热闹。
页: [1]
查看完整版本: Vsftpd的安全配置案例分析