一、安装环境:
1.1.操作系统:
操作系统:centOS6.6最小化安装
1)查看linux系统环境
[root@VM3~]# cat /etc/redhat-release
CentOSrelease 6.6 (Final)
[root@VM3~]# uname -r
2.6.32-504.el6.x86_64
[root@VM3~]# uname -m
x86_64
提示:也可以用uname -a
2)
外网:192.168.0.76/24
内网:192.168.3.76/24
1.2.关闭iptables和selinux
服务器端和客户端同时操作
1)关闭iptables
service iptables stop
chkconfig iptables off
不关闭也可以要让其端口通过防火墙
#使用被动模式指定5000-5100为被动
-A INPUT mstate --state NEW m tcp p dport 5000:50100 j ACCEPT
#下面是centOS7的,关闭防火墙
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.servic
2)关闭selinux
临时关闭:setenforce 0
永久性关闭:
vi/etc/selinux/config
把SELINUX=enforcing 改为SELINUX=disabled
shutdown -rnow
所用的软件:
3)时间同步(非必要)
yuminstall ntp -y
/usr/sbin/ntpdatepool.ntp.org
echo'#time sync by hua at 2015.7.2'>>/var/spool/cron/root
echo'*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root
crontab-l
#或者用*/30 * * * * ntpdate 121.9.213.10’
二、vsFTP安装及配置
2.1.yum安装vsFTP
rpm -qa | grepvsftpd
yum -y installvsftpd
chkconfig vsftpd on
[root@VM3 vsftpd]# rpm -qa | grep vsftpd
vsftpd-2.2.2-14.el6.x86_64
2.2.基于虚拟用户的配置
所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak
1)vi vsftpd.conf
#设定本地用户可以访问。如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问,默认为yes
local_enable=YES
chroot_list_enable=YES
#使用户不能离开主目录 默认为yes
ascii_upload_enable=YES
#默认为yes
ascii_download_enable=YES #
设定支持ASCII模式的上传和下载功能,默认为yes
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证,默认已经添加
#以下可以在单独用户文件配置,也可以在个人用户配置文件配置,但对针对某个用户生效。
anonymous_enable=NO
#设定不允许匿名访问 默认为yes
注:以上用默认就行,基本上不用修改
2)虚拟用户配置项
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES #设定启用虚拟用户功能,可以不要在个人配置那里设置
#guest_username=ftp #
指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
#基于hua用户的权限,就是hua什么权限虚拟用户就有什么权限,可以在个人配置里设置
guest_username=hua
#设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径
#放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
#需要自己建立目录mkdir /etc/vsftpd/vuser_conf
user_config_dir=/etc/vsftpd/vuser_conf
简写:
guest_enable=YES
guest_username=系统用户名
user_config_dir=虚拟用户配置文件路径
3)最终配置
[root@VM3vsftpd]# egrep -v "^#|^$"vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vuser_conf
pasv_enable=YES
pasv_min_port=5000
pasv_max_port=5100
pasv_promiscuous=YES
3)进行认证
①安装Berkeley
DB工具
很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils -y
②创建用户密码文本
路径/etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码
vi vuser_passwd.txt
t1
123456
③生成虚拟用户认证的db文件
db_load-T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
④编辑认证文件/etc/pam.d/vsftpd
[root@VM3~]# find / -name pam_userdb.so
/lib64/security/pam_userdb.so
从上面的得到so 路径为/lib64/security/pam_userdb.so
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
authrequired pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
⑤创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf
cd /etc/vsftpd/vuser_conf/
vi t1(注文件文件要与用户名一样)
local_root=/home/hua/tools
local_umask=022
write_enable=YES
guest_enable=yes
guest_username=hua
anonymous_enable=no
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_umask=022
servicevsftpd start
4)配置PASV模式
vsftpd默认没有开启PASV模式,现在FTP只能通过PORT模式连接,要开启PASV默认需①通过下面的配置打开/etc/vsftpd/vsftpd.conf,在末尾添加
#byhua 2015.10.26
pasv_enable=YES
//开启PASV模式
pasv_min_port=5000//最小端口号
pasv_max_port=5100
//最大端口号
pasv_promiscuous=YES
②在防火墙配置内开启端口
iptables -A INPUT m state --state NEW m tcp p dport 50000:50100 j ACCEPT
5)测试VSFTP结果
在win7在安装cuteftppro FTP客户端软件
登陆测试,上传,下载,删除都可以