防火墙配置手册
防火墙种类和区别
Iptables介绍
CentOS6及之前系统使用iptables作为防火墙。iptables防火墙类型为静态防火墙,主要是基于接口,来设置规则,从而判断网络的安全性。
CentOS7中可能并没还有自带iptables,需要手动安装
- yum安装
yum install iptables-services
- RPM安装
shell
查看运行状态:service iptables status
Firewalld介绍
CentOS7以后使用Firewall作为防火墙。Firewalld防火墙类型为动态防火墙,是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。
查看运行状态:firewall-cmd --state
匹配顺序
iptables简单配置
生产环境一般设置INPUT链默认拒绝
iptables -P INPUT DROP
iptables 基本语法结构
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
下面是一个列子
iptables -t filter -A INPUT [此处是对应的匹配规则] -j ACCEPT
-t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。
表名详解:点此跳转
选项详解:点此跳转
链名详解:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING、PREROUTING
条件:点此跳转
触发动作 | 功 能 |
---|---|
ACCEPT | 允许数据包通过 |
DROP | 丢弃数据包 |
REJECT | 拒绝数据包通过 |
LOG | 将数据包信息记录 syslog 曰志 |
DNAT | 目标地址转换 |
SNAT | 源地址转换 |
MASQUERADE | 地址欺骗 |
REDIRECT | 重定向 |
ACCEPT策略下,需要最后面有一条拒绝所有的配置,不然防火墙只是一个摆设。
iptables -A INPUT -j REJECT -m comment --comment "默认拒绝所有"
iptables -I INPUT 1 -p tcp --dport 23 -j ACCEPT -m comment --comment "放行23端口"
iptables -I INPUT 1 -p tcp -s 192.168.11.1 -j ACCEPT -m comment --comment "放行192.168.11.1"
iptables -I INPUT 1 -p tcp -s 192.168.11.1 --dport 23 -j ACCEPT -m comment --comment "放行192.168.11.1访问23端口"
iptables -I INPUT 1 -p tcp -m iprange --src-range 135.32.103.248-135.32.103.255 -j ACCEPT -m comment --comment "放行同段访问端口"
常用查询
# 查看规则并显示行号
iptables -nL --line-number
# 保存规则
iptables-save
命令参数查询
COMMAND:
参数 | 含义 |
---|---|
-A | 添加防火墙规则 |
-D | 删除防火墙规则 |
-I | 插入防火墙规则 |
-F | 清空防火墙规则 |
-L | 列出添加防火墙规则 |
-R | 替换防火墙规则 |
-Z | 清空防火墙数据表统计信息 |
-P | 设置链默认规则 |
表名具体含义
表名 | 功能含义 |
---|---|
filter | 过滤数据包 |
Nat | 用于网络地址转换(IP、端口) |
Mangle | 修改数据包的服务类型、TTL、并且可以配置路由实现QOS |
Raw | 决定数据包是否被状态跟踪机制处理 |
已存在业务的防火墙规则添加
## 放行已建立的连接和数据包
sudo iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 修复ICMP timestamp请求响应漏洞
sudo iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
sudo iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP
设置默认规则
# 默认允许
sudo iptables -P INPUT ACCEPT
# 默认拒绝
sudo iptables -A INPUT -j REJECT --reject-with icmp-host-unreachable #拒绝并返回Destination Unreachable的ICMP错误消息
sudo iptables -P INPUT -j DROP
firewalld简单配置
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.108" accept"
- 放行服务/端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
评论 (0)