文章参考于:
Centos7安装防火墙firewall
https://www.cnblogs.com/anxminise/p/9650104.html

防火墙(firewalld与iptables)
https://blog.csdn.net/weixin_40658000/article/details/78708375

CentOS7 防火墙(firewall)的操作命令
https://www.cnblogs.com/leoxuan/p/8275343.html
https://blog.csdn.net/wangleiqqaaaaa/article/details/103408656
特此感谢!

环境
系统:centos7.2

firewalld

[root@VM-0-11-centos logs]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

防火墙策略
3.1 firewall与iptables
在centos7之前的系统使用的防火墙策略为iptables,从centos7之后的系统使用的是firewall命令动态管理iptables,底层也是用的iptables。而firewall和iptables的命令也是有很大区别的。当然centos7也可以使用iptables作为防火墙。

3.2 防火墙开启、关闭、状态查看
首先,输入命令确认自己的系统版本

$ cat /etc/redhat-release

可以查看到系统版本为Centos7.5版本,一般centos7都是默认安装firewall防火墙的,如需写在安装请使用yum命令安装与卸载,本文不做单独讲解。

查看防火墙状态(此命令与文章之后的命令为centos7系统的firewall命令,并不适用与centos7以下的系统)

$ systemctl status firewalld.service


或者使用firewall命令查看

$ firewall-cmd --state

running表示防火墙开启,not running标识防火墙关闭

启动防火墙命令

$ systemctl start firewalld.service

关闭防火墙命令

$ systemctl stop firewalld.service

重启防火墙命令

$ systemctl restart firewalld.service

设置开机启动命令

$ systemctl enable firewalld.service

禁止开机启动命令

$ systemctl disable firewalld.service

查看是否开机启动命令

$ systemctl is-enabled firewalld.service

3.3 防火墙添加策略
再添加防火墙策略前先确保防火墙为开启状态,然后执行命令。目前只介绍几种常见防火墙策略命令,如有特殊需求的请自行百度,此文章会在以后工作中遇到新需求后持续更新。
1.允许指定ip访问指定端口号

$ firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=”" port protocol="" port="" accept"

例子:

$ firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.92.183.44” port protocol=“tcp” port=“22” accept”      #允许10.92.183.44 访问22端口

2.允许指定ip段访问指定端口号

$ firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.92.183.0/24” port protocol=“tcp” port=“22” accept”      #允许10.92.183.0网段 访问22端口

3.允许指定ip段访问指定端口段

$ firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.92.183.0/24” port protocol=“tcp” port=“7000-9100” accept”      #允许10.92.183.0网段 访问7000-9100端口

参数解读 –permanent

在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。

使用–permanent 参数后需重启防火墙策略才会生效

$ firewall-cmd --reload

查看防火墙策略

$ firewall-cmd --list-all

应急命令

firewall-cmd --panic-on  # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off  # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic  # 查看是否为应急模式

服务

firewall-cmd --add-service=<service name> #添加服务
firewall-cmd --remove-service=<service name> #移除服务

端口

firewall-cmd --add-port=<port>/<protocol> #添加端口/协议(TCP/UDP)
firewall-cmd --remove-port=<port>/<protocol> #移除端口/协议(TCP/UDP)
firewall-cmd --list-ports #查看开放的端口

协议

firewall-cmd --add-protocol=<protocol> # 允许协议 (例:icmp,即允许ping)
firewall-cmd --remove-protocol=<protocol> # 取消协议
firewall-cmd --list-protocols # 查看允许的协议

允许指定ip的所有流量

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"

例如:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp" accept" # 允许192.168.2.208主机的icmp协议,即允许192.168.2.208主机ping

允许指定ip访问指定服务

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" service name="<service name>" accept"

例如

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" service name="ssh" accept" # 允许192.168.2.208主机访问ssh服务

允许指定ip访问指定端口

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" port protocol="tcp" port="22" accept" # 允许192.168.2.1主机访问22端口

将指定ip改为网段
8-11 的各个命令都支持 source address 设置为网段,即这个网段的ip都是适配这个规则:

例如:
firewall-cmd --zone=drop --add-rich-rule=“rule family=“ipv4” source address=“192.168.2.0/24” port protocol=“tcp” port=“22” accept”
表示允许192.168.2.0/24网段的主机访问22端口 。
禁止指定ip/网段

8-12 各个命令中,将 accept 设置为 reject表示拒绝,设置为 drop表示直接丢弃(会返回timeout连接超时)

例如:
firewall-cmd --zone=drop --add-rich-rule=“rule family=“ipv4” source address=“192.168.2.0/24” port protocol=“tcp” port=“22” reject”
表示禁止192.168.2.0/24网段的主机访问22端口 。

iptables

CentOS7默认的防火墙不是iptables,而是firewalle.

安装iptable iptable-service
#先检查是否安装了iptables
service iptables status
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables
#安装iptables-services
yum install iptables-services

当前iptables的配置情况

iptables -L -n

清除默认的防火墙规则
#首先要在清楚前将policy INPUT改成ACCEPT,表示接受一切请求
#这个一定要做

iptables -P INPUT ACCEPT

#清空默认所有规则

iptables -F

#清空自定义的所有规则

iptables -X

#计数器置为0

iptables -Z

配置防火墙规则
#允许来自于lo接口的数据包
#若没有此规则,你将不能通过127.0.0.1访问本地服务,例ping 127.0.0.1

iptables -A INPUT -i lo -j ACCEPT

#ssh端口22

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#允许icmp包通过,–允许ping

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#允许所有对外请求的返回包
#本机对外请求相当于OUTPUT,对于返回包相当于INPUT

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT

#其他入站一律丢弃

iptables -P INPUT DROP

#所有出站一律绿灯

iptables -P OUTPUT ACCEPT

#所有转发一律丢弃

iptables -P FORWARD DROP

#添加内网IP信任

iptables -A INPUT -p tcp -s 172.10.10.2 -j ACCEPT

#过滤所有非以上规则的请求

iptables -P INPUT DROP

#封停一个IP

iptables -I INPUT -s 88.88.88.88 -j DROP

#解封一个IP

iptables -D INPUT -s 88.88.88.88 -j DROP

解决vsftpd在iptables开启后,无法使用被动模式的问题

1.首先在/etc/sysconfig/iptables-config中修改或者添加以下内容

#最新系统可能需要加载一下ftp模块
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#添加以下内容,注意顺序不能调换
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

2.重新设置iptables设置

iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT

修改端口/etc/sysconfig/iptables

设定预设规则

-- 请求接入包丢弃
[root@home ~]# iptables -p INPUT DROP
-- 接受响应数据包
[root@home ~]# iptables -p OUTPUT ACCEPT
-- 转发数据包丢弃
[root@home ~]# iptables -p FORWARD DROP

添加防火墙规则
首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链。

开启SSH服务端口

[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

注:如果在预设设置把OUTPUT设置成DROP策略的话,就需要设置OUTPUT规则,否则无法进行SSH连接。

生产配置

[root@localhost ~]# cp -ra /etc/sysconfig/iptables /etc/sysconfig/iptables.`date +%F`
[root@localhost ~]# iptables -P INPUT ACCEPT
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -P OUTPUT ACCEPT
[root@localhost ~]# iptables -P FORWARD DROP
[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 9998 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 1970 -j ACCEPT  (根据需要来)
[root@localhost ~]# service iptables save#######################
#!/bin/sh
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
service iptables save
systemctl restart iptables.service

centos7防火墙开启与关闭及开通策略相关推荐

  1. linux6.5关闭端口6379,CentOS7防火墙开启与关闭以及开放6379,3306,80等端口

    CentOS7用firewall防火墙替代了原来的iptables,所以我们应该使用firewall的一些命令. 如下: 1.关闭防火墙 systemctl stop firewalld.servic ...

  2. CentOS7在防火墙开启与关闭以及端口操作

    CentOS7在安装软件包或类库的时候,常常会因为防火墙的拦截和端口未开放导致连接失败,数据调用或远程失败等,所以在使用CentOS时需学会对防火墙和端口操作... 工具/原料 已安装CentOS7的 ...

  3. 【Linux】CentOS7防火墙开启、停止、关闭,添加删除开放端口

    防火墙管理 文章目录 防火墙管理 1.直接关闭防火墙 2.firewalld防火墙的基本使用 3.防火墙端口管理 4.参考资料 CentOS7防火墙 CentOS7默认安装了firewalld防火墙 ...

  4. Centos7 防火墙开启端口

    CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables. 防火墙指令示例: #停止firew ...

  5. centos防火墙开启、关闭、查看状态。

    一..对于centos7自带的防火墙的相关指令  systemctl stop firewalld.service #停止firewall  systemctl disable firewalld.s ...

  6. Linux防火墙的开启、关闭、重启、查看永久处理防火墙(需重启系统后才能生效)

    1.概念: 防火墙它具备一定的防护功能,比如说端口的开放和禁止,也可做数据的转发(类似路由功能),策略及其他功能. 临时处理防火墙:如果系统重启,那么防火墙将恢复到之前的状态.此时就需要永久处理防火墙 ...

  7. Ubuntu防火墙的开启、关闭、查看

    查看防火墙状态: sudo ufw status #inactive状态是防火墙关闭状态 active是开启状态. 打开防火墙: sudo ufw status #状态为active 说明防火墙开启成 ...

  8. 如何打开计算机控制版面,教你开启或者关闭windows防火墙

    我们在使用电脑的时候,网上下载了一些软件或者资料,就可能出现打不开的现象,还是提示请先关闭windows防火墙再重新打开的提示,那么我们如何关闭电脑windows防火墙呢?今天小编给你操作下windo ...

  9. Linux:CentOS7防火墙基本操作

    目录 前言 防火墙开启.关闭.以及查看防火墙状态命令 查看防火墙状态 如下表示防火墙开启中 active (running) 如下表示防火墙关闭中 inactive (dead) 开启防火墙 关闭防火 ...

最新文章

  1. Ubuntu下Topcoder配置
  2. 在Myeclipse buildpath 加server lib (server runtime)
  3. 现在做Android开发有前途吗?复习指南
  4. elasticsearch 6.x (三) linux 集群多节点部署
  5. C#4.0 Collections【集合】
  6. ASP.NET MVC中的路由IRouteConstraint方法应用实例
  7. Google Colab 免费GPU 教程
  8. python常用开放工具_python学习笔记16-各种模块和开放工具收集整理
  9. 云顶之弈法机器人_云顶之弈:拳头加强机器人,6法机器人主C打法直接火了!...
  10. 第六章 who can see what
  11. 随机过程通过线性系统matlab,随机信号分析实验:随机过程通过线性系统的分析.doc...
  12. Python菜鸟编程第十四课之正则表达式
  13. moba寻路_每日新游:RTS+MOBA颠覆性手游玩法,3V3居然还能吃鸡?
  14. C博客作业02--循环结构
  15. USB-HID游戏手柄的数据通信
  16. linux看视频装哪个软件,Ubuntu安装视频播放软件 SMPlayer 14.9.0.7042
  17. cgroup v2介绍及测试
  18. matlab 中关于nargin 以及 varargin 函数的使用
  19. Softing新版HART多路复用器软件支持西门子控制器
  20. 并发线程和线程间通信(event、mailbox和semaphore)-systemVerilog

热门文章

  1. python语音播报天气预报_树莓派之天气预报语音播报
  2. redis为什么要做持久化及持久化的方式
  3. 嗯哼是个nlper酱--LDA学习笔记
  4. flask-sqlalchemy + flask-migrate orm迁移数据库
  5. 计算机毕业设计springboot基于springboot的校园招聘管理系统xs43e源码+系统+程序+lw文档+部署
  6. 苹果手机没插耳机为什么显示耳机模式_苹果耳机不能用在国产手机上?
  7. 【单片机】DIY无刷电机驱动器 1
  8. android评论输入表情符号
  9. 弘辽科技:淘宝 ”问大家“出现差评转化率急剧下滑怎么办呢?
  10. 网站推广必用的100个方法