centos7防火墙开启与关闭及开通策略
文章参考于:
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防火墙开启与关闭及开通策略相关推荐
- linux6.5关闭端口6379,CentOS7防火墙开启与关闭以及开放6379,3306,80等端口
CentOS7用firewall防火墙替代了原来的iptables,所以我们应该使用firewall的一些命令. 如下: 1.关闭防火墙 systemctl stop firewalld.servic ...
- CentOS7在防火墙开启与关闭以及端口操作
CentOS7在安装软件包或类库的时候,常常会因为防火墙的拦截和端口未开放导致连接失败,数据调用或远程失败等,所以在使用CentOS时需学会对防火墙和端口操作... 工具/原料 已安装CentOS7的 ...
- 【Linux】CentOS7防火墙开启、停止、关闭,添加删除开放端口
防火墙管理 文章目录 防火墙管理 1.直接关闭防火墙 2.firewalld防火墙的基本使用 3.防火墙端口管理 4.参考资料 CentOS7防火墙 CentOS7默认安装了firewalld防火墙 ...
- Centos7 防火墙开启端口
CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables. 防火墙指令示例: #停止firew ...
- centos防火墙开启、关闭、查看状态。
一..对于centos7自带的防火墙的相关指令 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.s ...
- Linux防火墙的开启、关闭、重启、查看永久处理防火墙(需重启系统后才能生效)
1.概念: 防火墙它具备一定的防护功能,比如说端口的开放和禁止,也可做数据的转发(类似路由功能),策略及其他功能. 临时处理防火墙:如果系统重启,那么防火墙将恢复到之前的状态.此时就需要永久处理防火墙 ...
- Ubuntu防火墙的开启、关闭、查看
查看防火墙状态: sudo ufw status #inactive状态是防火墙关闭状态 active是开启状态. 打开防火墙: sudo ufw status #状态为active 说明防火墙开启成 ...
- 如何打开计算机控制版面,教你开启或者关闭windows防火墙
我们在使用电脑的时候,网上下载了一些软件或者资料,就可能出现打不开的现象,还是提示请先关闭windows防火墙再重新打开的提示,那么我们如何关闭电脑windows防火墙呢?今天小编给你操作下windo ...
- Linux:CentOS7防火墙基本操作
目录 前言 防火墙开启.关闭.以及查看防火墙状态命令 查看防火墙状态 如下表示防火墙开启中 active (running) 如下表示防火墙关闭中 inactive (dead) 开启防火墙 关闭防火 ...
最新文章
- Ubuntu下Topcoder配置
- 在Myeclipse buildpath 加server lib (server runtime)
- 现在做Android开发有前途吗?复习指南
- elasticsearch 6.x (三) linux 集群多节点部署
- C#4.0 Collections【集合】
- ASP.NET MVC中的路由IRouteConstraint方法应用实例
- Google Colab 免费GPU 教程
- python常用开放工具_python学习笔记16-各种模块和开放工具收集整理
- 云顶之弈法机器人_云顶之弈:拳头加强机器人,6法机器人主C打法直接火了!...
- 第六章 who can see what
- 随机过程通过线性系统matlab,随机信号分析实验:随机过程通过线性系统的分析.doc...
- Python菜鸟编程第十四课之正则表达式
- moba寻路_每日新游:RTS+MOBA颠覆性手游玩法,3V3居然还能吃鸡?
- C博客作业02--循环结构
- USB-HID游戏手柄的数据通信
- linux看视频装哪个软件,Ubuntu安装视频播放软件 SMPlayer 14.9.0.7042
- cgroup v2介绍及测试
- matlab 中关于nargin 以及 varargin 函数的使用
- Softing新版HART多路复用器软件支持西门子控制器
- 并发线程和线程间通信(event、mailbox和semaphore)-systemVerilog
热门文章
- python语音播报天气预报_树莓派之天气预报语音播报
- redis为什么要做持久化及持久化的方式
- 嗯哼是个nlper酱--LDA学习笔记
- flask-sqlalchemy + flask-migrate orm迁移数据库
- 计算机毕业设计springboot基于springboot的校园招聘管理系统xs43e源码+系统+程序+lw文档+部署
- 苹果手机没插耳机为什么显示耳机模式_苹果耳机不能用在国产手机上?
- 【单片机】DIY无刷电机驱动器 1
- android评论输入表情符号
- 弘辽科技:淘宝 ”问大家“出现差评转化率急剧下滑怎么办呢?
- 网站推广必用的100个方法