centos7 minimal 搭建Vsftp服务器

一、配置防火墙,开启FTP服务器需要的端口

CentOS 7.0默认使用的是firewall作为防火墙,不是iptables防火墙。

1、firewall放行FTP:

firewall-cmd --add-service=ftp --permanent    #添加ftp通行规则
firewall-cmd --reload                                     #重新加载防火墙策略

 

二、使用SELINUX宽容模式

方法一:

setenforce 0    #使Selinux运行在宽容模式

方法二:建议使用此方法

经过研究,又找到了另一个更理想的办法。首先查看SELinux中有关FTP的设置状态:

getsebool -a|grep ftp

经过尝试发现,打开ftp_home_dir或者 ftpd_disable_trans。都可以达到在enforcing级别下,允许FTP正常登录的效果。

setsebool -P ftpd_disable_trans 1
或者
setsebool -P ftp_home_dir 1
service vsftpd restart

加-P是保存选项,每次重启时不必重新执行这个命令了。

三、安装vsftpd

yum install -y vsftpd   #安装vsftpd

yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI  #安装vsftpd虚拟用户配置依赖包

systemctl start vsftpd.service  #启动

systemctl enable vsftpd.service #设置vsftpd开机启动

 

四、配置vsftp服务器

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak #备份默认配置文件

在SHELL下执行以下命令进行设置,也可以使用VIM编辑vsftod.conf内容

 1 sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
 2 sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
 3 sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
 4 sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
 5 sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
 6 sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
 7 sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
 8 sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'
 9 echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300
10 \ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd
11 \nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES
12 \npasv_min_port=10060\npasv_max_port=10090
13 \naccept_timeout=5\nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf

 

五、建立虚拟用户名单文件

touch /etc/vsftpd/virtusers

编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

vi /etc/vsftpd/virtusers

web1

123456

web2

123456

web3

123456

:wq! #保存退出

六、生成虚拟用户数据文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

chmod 600 /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

七、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)

修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak

vi /etc/pam.d/vsftpd

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

注意:如果系统为32位,上面改为lib,否则配置失败

八、新建系统用户vsftpd,用户目录为/home/wwwroot, 用户登录终端设为/bin/false(即使之不能登录系统)

useradd vsftpd -d /home/wwwroot -s /bin/false

chown vsftpd:vsftpd /home/wwwroot -R

chown www:www /home/wwwroot -R #如果虚拟用户的宿主用户为www,需要这样设置。

九、建立虚拟用户个人Vsftp的配置文件

mkdir /etc/vsftpd/vconf

cd /etc/vsftpd/vconf

touch web1 web2 web3 #这里创建三个虚拟用户配置文件

mkdir -p /home/wwwroot/web1/http/

vi web1 #编辑用户web1配置文件,其他的跟这个配置文件类似

local_root=/home/wwwroot/web1/http/

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

十、最后重启vsftpd服务器

systemctl restart vsftpd.service

备注:

guest_username=vsftpd #指定虚拟用户的宿主用户(就是我们前面新建的用户)

guest_username=www #如果ftp目录是指向网站根目录,用来上传网站程序,可以指定虚拟用户的宿主用户为nginx运行账户www,可以避免很多权限设置问题

 

转载于:https://www.cnblogs.com/yock/p/5722920.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值