iptables防火墙学习

iptables防火墙学习

基础概念

iptables 是 Linux平台下的基于内核的包过滤防火墙煤科院完成封包过滤、封包重定向和网络地址转换(NAT)等功能,功能非常强大。iptables只是Linux防火墙的管理工具,真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构,两个一起简称iptables。

工作机制

iPtables内置有四张表和五个链。
4个内置表:

  • filter表,默认表,在定义链规则时没有指定的话默认是配置filter表,主要控制数据包的过滤,日常使用较多的表。
  • nat表,主要处理数据的转换转发。
  • mangle表,修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块。
  • raw表,决定数据包是否被状态跟踪机制处理,使用不多。

优先级关系:
raw > mangle > nat > filter

5个内置链:

  • INPUT——进来的数据包应用此规则链中的策略
  • OUTPUT——外出的数据包应用此规则链中的策略
  • FORWARD——转发数据包时应用此规则链中的策略
  • PREROUTING——对数据包作路由选择前应用此链中的规则
  • POSTROUTING——对数据包作路由选择后应用此链中的规则

对应关系:

规则链的匹配顺序:
入站顺序:PREROUTING->INPUT
出站顺序:OUTPUT->POSTROUTING
转发顺序:PREROUTING->FORWARD->POSTROUTING

注意事项:

  • 没有指定规则表默认指filter
  • 不指定规则链则默认指表内所有的规则链
  • 在规则链中匹配规则时会依次检查,匹配则停止,若没有匹配按链的默认状态处理。

常见的命令参数

参数 作用
-P 设置默认策略,iptables -P INPUT (DROP
-F 清空规则链
-L 查看规则链
-A 在规则链的底部加入规则
-I 在规则链的顶部加入新规则
-D 删除某一条规则
-s 匹配源地址:IP/MASK
-s 匹配目标地址:IP/MASK
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议如:tcp,udp,icmp
--sport 端口号 匹配源端口号
--dport 端口号 匹配目的端口号

配置

基本的配置模式:
iptables -t [表名] [选项] [链名] 规则匹配条件 -j [匹配之后执行的操作]
示例:
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
解析:在filter表的INPUT链第一行插入一条规则,目标端口是tcp80端口匹配ACCEPT(转发)操作。

基础操作

一般情况下先查看iptables中的规则,然后根据需求进行设置策略
1.查看防火墙规则策略

# 查看防火墙规则策略,默认-t参数不设置是filter表
iptables -t[表名] --list/-L
效果:filter表中有INPUT、OUTPUT、FORWARD三个表,在链表的旁边显示policy ACCEPT表示默认策略是允许转发的,因此我们需要添加DROP策略,或者如图在最后一条加上拒绝所有的策略,策略匹配从上往下匹配,即时生效。
[root@centos84 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

显示序号可以在上述命令后面添加--line-number参数。

2.设置默认规则

# 在INPUT链的最后添加,匹配转发或者丢弃
iptables -P INPUT (DROP/ACCEPT)

3.删除指定规则

# 删INPUT的第一条规则
iptables -D INPUT 1

4.禁止访问本机22端口

iptables -I INPUT -p tcp --dport 22 -j DROP

5.限制访问网址www.baidu.com

iptables -I FORWARD -d www.baidu.com -j DROP

6.限制ip地址上网

iptables -I FORWARD -s 192.168.1.10 -j DROP

7.nat转发

# linux作为转发需要开启转发功能,SNAT源地址转换,配置POSTROUTING链,DNAT将外网卡地址数据映射到内网,配置PREROUTING链
# 内网卡地址:192.168.1.1
# 外网卡地址:202.202.202.1
# 内网终端地址:192.168.0.101
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.1.1

8.保存规则

# iptables规则配置完成即可生效,但是重启之后会失效,因此需要保存到文件中使之永久生效,文件保存在/etc/sysconfig/iptables
service iptables save

总结

策略配置步骤:
1.查看默认规则和已有规则
2.根据需求进行策略配置
3.保存配置

posted @ 2021-11-09 10:51  骑着蜗牛路过你的风景  阅读(106)  评论(0编辑  收藏  举报