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" {:6_391:}{:6_391:} 帮你顶下哈!! 有道理。。。 漏洞与补丁齐飞,蓝屏共死机一色! 我身在江湖,江湖里却没有我得传说。 鸳鸳相抱何时了,鸯在一边看热闹。
页:
[1]