Centos6.9部署vsftp2.2.2

一、vsftp简介

  vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,vsftpd 的名字代表”very secure FTP daemon”;是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面.
#基本需求:

1.搭建ftp(每个人单独账号)
2.部署web服务(nginx这里不做安装说明了),访问ftp上传目录
3.实现游览器访问ftp上传目录的静态文件

#系统基本情况:

CentOS-6.9-x86_64
IP: 192.168.100.100
Hostname:fptserver
web目录:/web/www/chanpin

二、安装之前准备

说明:这是在vsftp安装之前,操作系统层面的基础优化[已经优化的可以忽略这一步]。

#查看系统版本
cat /etc/redhat-release
CentOS release 6.9 (Final)
#查看系统内核
uname -r
2.6.32-696.el6.x86_64
#查看系统32位_64位
uname -m
x86_64
#关闭防火墙
/etc/init.d/iptables stop
#关闭selinux:
#临时关闭
setenforce 0
#永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
getenforce
#更换yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all && yum makecache
#添加时间同步
crontab -e
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com >/dev/null 2>&1

三、安装vsftp

FTP的登录一般有三种方式:

1.匿名用户形式:默认安装的情况下,系统只提供匿名用户访问,只需要输入用户anonymous/ftp,并将自己的Email作为口令即可登录。
2.本地用户形式:以/etc/passwd中的用户名为认证方式。
3.虚拟用户形式:支持将用户名和密码保存在文件或数据库中,将登录用户映射到指定的系统账号(/sbin/nologin)来访问资源,其中这些虚拟用户是FTP的用户

本文采取第三种方式:虚拟用户形式安装vsftp

# 1.安装vsftp、认证模块及数据库
yum install vsftpd pam* db4* -y
# 2.配置vsftp服务的宿主
useradd vsftpdadmin -s /sbin/nologin
这个vsftpdadmin只是用来替换root的,并不需要登录
# 3.建立ftp虚拟用户宿主账号
useradd ftpuser -s /sbin/nologin
这ftpuser只个虚拟帐户的宿主,本身是不用登录的
# 4.配置vsftpd的配置文件vsftpd.conf
#备份配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
#默认的配置文件
egrep -v "^#|^$" vsftpd.conf
egrep -v "^#|^$" vsftpd.conf >tmp.log
cat tmp.log >vsftpd.conf
rm -f tmp.log
#默认的配置文件
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
# 5.启动vsftp
/etc/init.d/vsftpd start
#检查vsftp是否启动
ps -ef|grep vsftp

三、配置及安全优化vsftp

#配置完整后的配置文件
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
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
listen_port=211
listen_address=192.168.100.232
pasv_min_port=5555
pasv_max_port=6666
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
idle_session_timeout=600
data_connection_timeout=600
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to ERGENG_ChanPin FTP service
chroot_local_user=YES
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
注意:/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list
然后将帐户输入一行一个,保存就可以了.
# 5. 创建日志文件
touch /var/log/vsftpd.log
chown -R vsftpdadmin.vsftpdadmin /var/log/vsftpd.log
# 6.创建虚拟用户文件及用户
mkdir /etc/vsftpd/vconf/
touch /etc/vsftpd/vconf/vir_user
vim /etc/vsftpd/vconf/vir_user
liuliya
liuliy123456
yangxiaoliang
yangxiaoliang123456
编辑完成保存。
# 7.生成数据库文件
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
# 8.设置数据库文件的访问权限
chmod 600 /etc/vsftpd/vconf/vir_user.db
chmod 600 /etc/vsftpd/vconf/vir_user
# 9.修改/etc/pam.d/vsftpd内容
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" > /etc/pam.d/vsftpd
echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd
# 10.创建虚拟用户的文件(名字和创建的虚拟用户名字对应)
touch /etc/vsftpd/vconf/liuliya
touch /etc/vsftpd/vconf/yangxiaokang
#编辑用户文件liuliya
vim /etc/vsftpd/vconf/liuliya
local_root=/web/www/chanpin
write_enable=YES
#编辑用户文件yangxiaokang
vim /etc/vsftpd/vconf/yangxiaoliang
local_root=/web/www/chanpin
write_enable=YES
# 11.建立虚拟用户的目录
mkdir -p /web/www/chanpin
chown -R ftpuser.ftpuser /web/www/chanpin
chmod 755 /web/www/chanpin
# 12.添加防火墙规则
# vim/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp--dport 211 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp--dport 5555:6666 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp--dport 20 -j ACCEPT
#启动vsftp
/etc/init.d/vsftpd restart

四、登录测试

这里使用linxu命令行登录测试,使用ftp命令
先看下有安装ftp么,没得话就yum install ftp -y
ftp 192.168.100.232 211
Connected to 192.168.100.232 (192.168.100.232).
220 Welcome to ERGENG_ChanPin FTP service
Name (192.168.100.232:root): liuliya
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> nlist
227 Entering Passive Mode (192,168,100,232,24,87).
150 Here comes the directory listing.
background
deliciousfoodmap
doc1
films
flimbackground1
foodmaps
foreground2
gengxiao
qixih15
226 Directory send OK.

五、基本管理

1)日常管理vsftp
#启动vsftp
service vsftp start
或者
/etc/init.d/vsftpd restart
#关闭vsftp
service vsftp stop
或者
/etc/init.d/vsftpd stop
#重启
service vsftp restart
或者
/etc/init.d/vsftpd restart

2)添加另外新账号

#添加用户
编辑/etc/vsftpd/vconf/vir_user
添加用户:zhouwentao 命令如下:
echo -e "zhouwen\nZhouwen@2017" >> /etc/vsftpd/vconf/vir_user
#编辑用户的配置文件
vim /etc/vsftpd/vconf/zhouwentao
local_root=/web/www/chanpin
write_enable=YES
#更新数据库文件并设置权限
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db

3)禁用已有的账号
4)删除已有虚拟账号
5)卸载vsftp

13 条评论

发表评论

*