歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> Vsftpd的安全配置案例

Vsftpd的安全配置案例

日期:2017/2/27 14:58:39   编辑:Linux配置
案例一 配置ftp服務器,要求如下:
匿名用戶只能下載,匿名用戶的根目錄為/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的安全訪問

一.配置如下:
修改用戶家目錄
[root@root ~]# useradd -D -b /part1/home
先要做磁盤配額
[root@mail ~]# fdisk /dev/sdb
The 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): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
Last cylinder or +size or +sizeM or +sizeK (1218-3916, default 3916): +10G
Command (m for help): w

二.格式化硬盤命令:
Mkfs -t ext3 /dev/sdb1
創建目錄,並掛載硬盤

三.編輯配置文件如下:
[root@mail ~]# vim /etc/fstab
[root@mail ~]# mount /dev/sdb1 /part1/home

[root@mail ~]# mount -o remount /dev/sdb1
[root@mail ~]# mount
/dev/sdb1 on /part1/home type ext3 (rw,usrquota)
usrquota這個磁盤配額參數也已經添加成功了
[root@mail ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol00
13G 2.2G 9.8G 18% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/sdb1 9.2G 150M 8.6G 2% /part1/home

四。現在開始生成磁盤配額數據庫
[root@mail ~]# quotacheck -auvg
切換到/part1/home 目錄下
[root@root home]# ll
總計 24
-rw------- 1 root root 6144 12-18 01:10 aquota.user
drwx------ 2 root root 16384 12-18 00:23 lost+found

五。現在可以看到,生成磁盤配額數據庫後,在/part1/home下面就自動的產生了文件,aquota.user
這個文件就是用來存放所有磁盤配額的信息。

六.啟用磁盤配額。
[root@mail ~]# quotaon /part1/home

七.編輯磁盤配額。
# edquota user3
現在我們系統中有個用戶user3,我們就針對這個用戶來做磁盤配額


八.如果我們需要給多個用戶做磁盤配額的話,一個一個指定又太麻煩了,有一個方法可以減輕負擔。
[root@mail ~]# edquota -p user1 user2
使用如下命令查看user2的磁盤配額情況
[root@mail ~]# edquota user2
驗證如下:
[user3@root ~]$ dd if=/dev/zero of=u3 bs=1M count=8
sdb1: write failed, user block limit reached.
dd: 寫入 “u3”: 超出磁盤限額
8+0 records in
7+0 records out
[root@root ~]# edquota -p user3 user4
[root@root ~]# repquota -a
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 152688 0 0 4 0 0
user3 -- 8000 8000 8000 9 0 0
user4 -- 32 8000 8000 8 0 0

九.Vsftpd服務器的配置部分
[root@mail 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_list
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
max_clients=80
max_per_ip=3
anon_root=/var/abc
local_max_rate=3000000

十.禁止user3 user4登錄後禁止更改目錄
[root@mail vsftpd]# vim chroot_list
user3
user4
驗證:
[root@root ~]# ftp 127.0.0.1
Name (127.0.0.1:user3): user3
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /home
550 Failed to change directory. 不能切換目錄了
每個ip最多能連接3次

下載速率

禁止本地user5用戶登錄:
#vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES
把用戶加入/etc/vsftpd/ftpusers


案例二 配置解析
查看服務器是否支持tcp_wrapper
[root@localhost Server]# 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.deny
vsftpd:all:deny
驗證ftp server 的ip是192.168.10.10
C:\Documents and Settings\Administrator>ftp 192.168.10.10
Connected to 192.168.10.10.
421 Service not available.
使用ip為192.168.10.10 登錄
User (192.168.10.10:(none)): user1
Connection closed[root@localhost etc]# ftp 192.168.10.10
Connected 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 type
Name (192.168.10.10:root): user1
230 Login successful. by remote host.
看到可以登錄。
Ftps的配置部分
注意:先把tcp_wrapper裡面的配置清空以免影響訪問
[root@localhost Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm
[root@localhost Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
[root@localhost Server]# 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
[root@localhost CA]# mkdir certs newcerts crl
[root@localhost CA]# touch index.txt serial

CA服務器產生自己的證書
[root@localhost CA]# openssl genrsa 1024 > private/cakey.pem
CA服務器產生證書
[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem

ftp服務器產生自己的私鑰
[root@localhost CA]# mkdir /etc/vsftpd/certs
[root@localhost CA]# cd /etc/vsftpd/certs/
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key

ftp服務器產生請求
[root@localhost certs]# openssl req -new -key vsftpd.key -out vsftpd.csr

CA 服務器頒發證書
[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert

修改CA服務器的證書及私鑰的權限
[root@localhost vsftpd]# cd /etc/pki/CA
[root@localhost CA]# chmod 600 private/cakey.pem
[root@localhost CA]# chmod 600 cacert.pem
當用戶通過ftps方式訪問ftp服務器是,要使用ftp服務器的證書。所以要在ftp的配置文件中說明證書及私鑰位置
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key
測試:
C:\Documents and Settings\Administrator>ftp 192.168.10.10
Connected to 192.168.10.10.
220 (vsFTPd 2.0.5)
User (192.168.10.10:(none)): user1
530 Non-anonymous sessions must use encryption. #可以看到已經加密了
Login failed. 《-- 不支持加密訪問
使用第三方軟件進行測試如下




默認進入自己的家目錄


可以切換目錄

使用抓包工具進行抓包,可以發現已經加密了
[root@localhost vsftpd]# tshark -ni eth0 -R "tcp.dstport eq 21"
Copyright © Linux教程網 All Rights Reserved