CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
1. 安装iptables防火墙
# 先检查是否安装了iptables(如果提示iptables:unrecognized service 则表示系统尚未安装)
service iptables status
# 安装iptables
yum install iptables
# 升级iptables
yum update iptables
# 安装iptables-services
yum install iptables-services
2. 关闭Firewall
# 停止firewall 服务
systemctl stop firewalld.service
# 禁用firewall 服务
systemctl mask firewalld.service
# 禁止firewall服务开机启动
systemctl disable firewalld.service
# 查看firewall服务状态
firewall-cmd --state
3. 查看Iptables所在目录与配置文件
#安装完成后,配置文件默认所在位置
# /etc/sysconfig/iptables
4. 设置现有规则
# 查看iptables现有规则
iptables -L -n
# 先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
# 清空所有默认规则
iptables -F
# 清空所有自定义规则
iptables -X
# 所有计数器归0
iptables -Z
4.1 iptables 规则设置
# 允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
# 允许本机对外访问
iptables -A OUTPUT -j ACCEPT
# 允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 开放22端口(SSH)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 开放21、20端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# 开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。
并且发送一条host prohibited的消息给被拒绝的主机。
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
注:防火墙的规则是从上到下解析的
4.2 保存规则设定
# 保存上述规则
service iptables save
# 查看iptables现有规则
iptables -L -n
4.3 开启iptables服务
# 最后重启防火墙使配置生效
systemctl restart iptables.service
# 设置防火墙开机启动
systemctl enable iptables.service
# 查看状态
systemctl status iptables.service
# 确定是否enabled
systemctl list-unit-files | grep iptables
二、 关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing # 注释掉
#SELINUXTYPE=targeted # 注释掉
SELINUX=disabled # 增加
:wq! # 保存退出
如果在使用setenforce命令设置selinux状态的时候出现这个提示:setenforce: SELinux is disabled
那么说明selinux已经被彻底的关闭了
如果需要重新开启selinux,请按下面步骤:
vi /etc/selinux/config
更改为:SELINUX=1
必须重启linux,不重启是没办法立刻开启selinux的
三、 安装vsftpd
# 安装vsftpd
yum install -y vsftpd
yum -y install ftp vsftpd
# 安装vsftpd虚拟用户配置依赖包
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI
# 启动
systemctl start vsftpd.service
# 查看vsftpd服务的状态
systemctl status vsftpd.service
systemctl list-unit-files | grep vsftpd.service
# 设置vsftpd开机启动
systemctl enable vsftpd.service
四、 配置
# 备份默认配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak
# 执行以下命令进行设置
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'
#之后添加下列内容到vsftpd.conf末尾
vim /etc/vsftpd/vsftpd.conf
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
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
六、 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db
七、 在/etc/pam.d/vsftpd文件添加以下信息
# 修改前先备份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
# 将auth及account的所有配置行均注释掉
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/vsftpd, 用户登录终端设为/bin/false(即:使之不能登录系统)
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd
九、 建立虚拟用户个人Vsftp的配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch web1 web2 web3 # 这里创建三个虚拟用户配置文件
mkdir -p /home/vsftpd/web1/
vi web1 # 编辑用户web1配置文件,其他的跟这个配置文件类似
local_root=/home/vsftpd/web1/
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
# 查看vsftpd服务的状态
systemctl status vsftpd.service
systemctl list-unit-files | grep vsftpd


CentOS7配置FTP服务器增强版~(零基础学会FTP配置)的更多相关文章
- 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码
[CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院 欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- Linux ftp服务器部署(最简单的ftp教程)
之前在阿里云领了一个ECS服务器(顺便说一句,白嫖的,真香~),就想着做点什么,然后试着做个 ftp 站点,因为第一次尝试,结果走了不少弯路.最后终于完成了,研究了两天(哎~,脑壳笨没办法)就想着记录 ...
- ftp服务器搭建(windows)+实现ftp图片上传对接
ftp服务器搭建(windows): vsftpd简介: vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的.开放源代码的ftp服务器软件. 下载地址: http: ...
- 搭建FTP(win10版)以及基本FTP操作
参考链接:https://www.jianshu.com/p/ece21421e246 一.FTP服务器搭建 控制面板 - 程序和功能 - 启动或关闭Windows功能 启动以下功能: 搜索 “Int ...
- 阿里云ECS服务器Linux环境下配置php服务器(一)--基础配置篇
开始安装软件了,我们需要安装的软件有apache,php和MySQL. ps:如果你购买的是北京的服务器,有个安全组需要设置,我全部用的默认设置,暂时还没发现会有什么影响. 首先关闭SELINUX(S ...
- Spark (Python版) 零基础学习笔记(一)—— 快速入门
由于Scala才刚刚开始学习,还是对python更为熟悉,因此在这记录一下自己的学习过程,主要内容来自于spark的官方帮助文档,这一节的地址为: http://spark.apache.org/do ...
- Spark (Python版) 零基础学习笔记(二)—— Spark Transformations总结及举例
1. map(func) 将func函数作用到数据集的每个元素,生成一个新的分布式的数据集并返回 >>> a = sc.parallelize(('a', 'b', 'c')) &g ...
- webpack4.x 从零开始配置vue 项目(二)基础搭建loader 配置 css、scss
序 上一篇已经把基本架子搭起来了,现在来增加css.scss.自动生成html.css 提取等方面的打包.webpack 默认只能处理js模块,所以其他文件类型需要做下转换,而loader 恰恰是做这 ...
随机推荐
- python-GIL、死锁递归锁及线程补充
一.GIL介绍 GIL全称 Global Interpreter Lock ,中文解释为全局解释器锁.它并不是Python的特性,而是在实现python的主流Cpython解释器时所引入的一个概念,G ...
- 打包APP
记得之前网上也有app打包平台,但是都会有所限制,或者增加广告等等,这里呢,介绍一款工具,可以自己将网站打包成app. wex5 (WeX5开源免费跨端开发工具-html5 app开发就用WeX5)官 ...
- 信息摘要算法之七:SHA在区块链中的应用
最近几年比特币的火爆带动了人们对区块链技术的研究.当然我们在这里并不讨论区块链技术本身,而是讨论一下区块链中的SHA算法的应用.对于SHA系列算法我们已经在前面作了说明,在这里也不再重复. 1.区块链 ...
- Confluence 6 数据库表-系统信息(System information)
这些表格有存储数据相关的状态和 Confluence 站点的相关配置信息. confversion 被用来在升级系统的时候确定那个数据库的版本应该使用,这个表格只对数据库升级有影响. pluginda ...
- PhpStorm 2018 安装及破解方法
参考教程: https://blog.csdn.net/u012278016/article/details/81772566
- javaWeb锁屏的简单实现
简单介绍:需求上有个小功能,用户登录后点击用户名,可以点击锁屏,锁屏解除,需要输入正确的密码才能进入管理后台页面enheng(*/ω\*)(*/ω\*)(*/ω\*) 思路简介:其实刚看到要做锁屏,第 ...
- yii2 Menu组件的使用
1.首先引入类 use yii\widgets\Menu; 2.配置组件 <?php echo Menu::widget([ //ul的样式以及相应的属性 'options' => ['c ...
- Decimal integer conversion
问题 : Decimal integer conversion 时间限制: 1 Sec 内存限制: 128 MB 题目描述 XiaoMing likes mathematics, and he is ...
- vue项目使用阿里巴巴矢量图标库教程
前言:element-ui自带的图标库还是不够全,还是需要需要引入第三方icon,自己在用的时候一直有些问题,参考了些教程,详细地记录补充下. 对于我们来说,首选的当然是阿里icon库 地址:http ...
- python面向对象三大特性之封装
一. 概述 定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式 封装的原则:把不需要对外提供的内容都隐藏起来,提供公共的方法访问这些隐藏属性 二.封装手段 使用双下划线将属性和方法隐藏起来 cla ...