利用Vsftpd 搭建虛擬用戶FTP服務器安全
概述:
軟件來源:http://vsftpd.beasts.org
軟件版本:vsftpd-2.0.5.tar.gz
操做系統:RedHat Enterprise Linux AS3
1.vsftpd軟件的安裝
# tar –zxvf vsftpd-2.0.5.tar.gz //解壓軟件包
# cd vsftpd-2.0.5 //進入解壓後的目錄
# make && make install //編譯並安裝
# cp vsftpd.conf /etc/ //拷貝主配置文件到/etc目錄下
# chkconfig vsftpd off //關閉進程守護模式
2.添加一個本地用戶,而且禁止其SSH方式登陸
# useradd -s /sbin/nologin wjc
3.編輯vsftpd主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES //打開本地用戶
local_umask=022 //本地用戶建立文件夾和上傳文件的權限,實際值=777-umask
connect_from_port_20=YES //鏈接端口爲20
max_per_ip=4 //每一個IP最多鏈接4個客戶端
max_clients=200 //FTP最多支持200個用戶
listen=YES //打開監聽模式,不然須要用守護模式啓動服務
guest_enable=YES //開啓虛擬用戶訪問功能
guest_username=wjc //虛擬用戶實際用wjc用戶來登陸
pam_service_name=ftp.vu //密碼驗證方式
user_config_dir=/etc/vsftpd_user_conf //虛擬用戶的配置文件所在的目錄
注:,由於主配置文件是被先讀的,而後再讀用戶的配置文件。因此
在主配置文件中給的權限越低,在後面用戶管理的時候對用戶的權限劃分的空間就越大
4.編輯驗證方式文件
# vi /etc/pam.d/ftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
5.編輯虛擬用戶和密碼
# vi /tmp/login.txt
test1 //用戶名
test1 //密碼
test2
test2
6.虛擬用戶的權限控制
# mkdir /etc/vsftpd_user_conf
在/etc/vsftpd_user_conf目錄下用虛擬用戶的登陸名來命名其配置文件
給用戶test1添加配置文件
# vi /etc/vsftpd_user_conf/test1
local_root=/var/ftpvu/testftp //限制虛擬用戶登陸的主目錄
anon_world_readable_only=no //准許虛擬用戶能夠瀏覽
write_enable=yes //開放寫的權限
anon_upload_enable=yes //開放上傳權限
anon_mkdir_write_enable=yes //開放建立目錄的權限
anon_other_write_enable=yes //其餘寫權限,如:重命名
一樣你能夠建立test2文件,給test2用戶建立不一樣的權限,以達到控制虛擬用戶不一樣的訪問權限的目的
7.創建訪問者的口令庫文件,而後修改其權限
# db_load -T -t hash -f /tmp/login.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
8.開啓FTP服務
# /usr/local/sbin/vsftpd &
9. 驗證服務是否開啓
//查看進程
# ps -x | grep vsftpd
//查看端口
# netstat –tln
10.關閉FTP服務
# ps –x | grep vsftpd
# kill -9 PID //-9這個參數爲強制,可不加;PID爲進程號,能夠用ps來查看
目前沒有更好的辦法來中止FTP服務,因此只能殺進程來關閉了
11.可能出現的問題
500 OOPS: could not bind listening IPv4 socket
有可能FTP服務器是運行的;
也有多是由於沒有關閉守護狀態