ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

iptables防火墙学习

2021-11-09 11:02:55  阅读:142  来源: 互联网

标签:iptables 匹配 -- 防火墙 ACCEPT 学习 规则 INPUT


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.保存配置

标签:iptables,匹配,--,防火墙,ACCEPT,学习,规则,INPUT
来源: https://www.cnblogs.com/chuck-study/p/15523863.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有