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

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> on
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off

经过尝试发现,打开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 #备份默认配置文件

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

sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" ‘/etc/vsftpd/vsftpd.conf‘

sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" ‘/etc/vsftpd/vsftpd.conf‘

echo -e "use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300

\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=vsftpd

\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES

\npasv_min_port=10060\npasv_max_port=10090

\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,可以避免很多权限设置问题

时间: 2024-10-01 06:16:30

centos7 minimal 搭建Vsftp服务器的相关文章

Centos7.3搭建samba服务器,和windows共享文件

Centos7.3搭建samba服务器,和windows共享文件centos7.3的ip为192.168.11.1291,安装samba服务[[email protected] ~]# yum -y install samba* 2,创建共享目录并修改权限并编辑配置文件[[email protected] ~]# mkdir -p /home/study[[email protected] ~]# chmod u+x /home/study/修改selinux限制[[email protecte

Cent OS7搭建vsftp服务器

今天简单配置匿名访问及用户验证的相关配置,基于虚拟用户的配置敬请期待下一篇搭建vsftp服务器首先要确保虚拟机的防火墙和seLinux防火墙都是关闭的一.ftp文件传输服务1.ftp连接的端口号21:传输控制使用,进行身份验证授权访问20:传输数据使用2.ftp连接模式主动模式:服务器端通过20号端口给客户端传输数据,POST指令表示主动连接,默认工作在主动模式被动模式:服务器端开放指定范围的端口号等待客户端建立数据连接,pasv指令表示被动模式3.ftp传输模式文本 模式:文本模式不支持传输流

在Centos7下搭建Git服务器

简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具. 开放源码社区中的有些人觉得BitKeeper

CentOS7下搭建邮件服务器(dovecot + postfix + SSL)

CentOS 花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + SSL 服务器,并且能够通过邮件客户端(本文中是Airmail)进行收发邮件. 前提条件 你得有个主机或者VPS 你有一个主域名比如 fancycoding.com 还有一个二级域名比如 mail.fancycoding.com 二级域名的 SSL 证书. 配置你的DNS记录 确认主域名有A记录指向服务

自建git服务器连接Pycharm系列二:在centos7上搭建git服务器

在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [[email protected] ~]# git --version git version 1.8.3.1 卸载git [[email protected] ~]# yum remove git [[email protected] ~]# git --version -bash: /usr/bin/git: 没有那个文件或目录 2

CentOS 7.0搭建Vsftp服务器

一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptables防火墙 yum install iptables-services #安装 vi /etc/sysconfig/ip

搭建vsftp服务器生产环境配置

生产环境:操作系统:CentOS release 6.9 (Final)软件:vsftpd-2.2.2-24.el6.x86_64实战任务:给定账号,让开发商上传站群代码到服务器的指定目录,可以读写:操作过程如下:一.配置防火墙,开启FTP服务器需要的端口[[email protected] /]# vi /etc/sysconfig/iptables    #添加端口号-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEP

腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd # 安装 vsftpd $ yum install vsftpd -y # 启动 $ service vsftpd start && systemctl restart vsftpd.service # 查看 $ netstat -nltp | grep 21 /*目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限vsftpd 的配置目录为 /etc/vsftpd,包含下列的配

CentOS7种搭建FTP服务器

1.安装vsftpd #首先要查看你是否安装vsftp [[email protected] /]# rpm -q vsftpd vsftpd-3.0.2-10.el7.x86_64             (显示也就安装成功了!) #如果没有则安装vsftpd [[email protected]/]# yum  install -y  vsftpd #完成后再检查一遍 [[email protected] /]# whereis  vsftpd vsftpd:/usr/sbin/vsftpd