CentOS7下iptables配置过程

2022-12-21 18:57:24 浏览数 (1)

在红帽RHEL7系统中firewalld服务取代了iptables服务,但依然可以使用iptables命令来管理内核的netfilter。

iptables命令中则常见的控制类型有:

  1. ACCEPT:允许通过.
  2. LOG:记录日志信息,然后传给下一条规则继续匹配.
  3. REJECT:拒绝通过,必要时会给出提示
  4. DROP:直接丢弃,不给出任何回应.

规则链则依据处理数据包的位置不同而进行分类:

PREROUTING:在进行路由选择前处理数据包

INPUT:处理入站的数据包

OUTPUT:处理出站的数据包

FORWARD:处理转发的数据包

POSTROUTING:在进行路由选择后处理数据包

Iptables中的规则表:

规则表的先后顺序:raw→mangle→nat→filter

规则链的先后顺序:

入站顺序:PREROUTING→INPUT 出站顺序:OUTPUT→POSTROUTING 转发顺序:PREROUTING→FORWARD→POSTROUTING

 iptables的基本参数:

参数

作用

-P

设置默认策略:iptables -P INPUT (DROP|ACCEPT)

-F

清空规则链

-L

查看规则链

-A

在规则链的末尾加入新规则

-I num

在规则链的头部加入新规则

-D num

删除某一条规则

-s

匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。

-d

匹配目标地址

-i 网卡名称

匹配从这块网卡流入的数据

-o 网卡名称

匹配从这块网卡流出的数据

-p

匹配协议,如tcp,udp,icmp

--dport num

匹配目标端口号

--sport num

匹配来源端口号

 实例:iptables的filter的配置:

--关闭firewall:

[root@localhost ~]# systemctl stop firewalld.service            #停止firewall [root@localhost ~]# systemctl disable firewalld.service        #禁止firewall开机启动

--安装安装iptables防火墙

[root@localhost ~]# yum install iptables-services            #安装

--清空已有的规则:

代码语言:javascript复制
iptables -F
iptables -X
iptables -Z

--配置允许SSH登陆端口进入

代码语言:javascript复制
iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT

--允许所有的ping操作

代码语言:javascript复制
iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT

--允许本机lo通信

代码语言:javascript复制
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

--设置默认的访问规则

代码语言:javascript复制
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

--允许关联的状态包通过

代码语言:javascript复制
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

--开放特定的端口,以80为例

代码语言:javascript复制
iptables -A INPUT -p tcp --dport 80 -j ACCEP

 --保存配置

代码语言:javascript复制
service iptables save

--重启

代码语言:javascript复制
systemctl restart iptables.service

--设置开机自启动

代码语言:javascript复制
 systemctl enable iptables.service 

0 人点赞