Linux之Iptables

1.iptables概要

iptables官网

[外链图片转存失败(img-85s6LnzI-1566439187005)(pic/IPtables.png)]

2.iptables发展历史

  • ipfirewall 内核1.x时代
  • ipchains 内核2.X时代----可以定义多条规则,将他们串起来,共同发挥作用
  • iptables 内核2.4以上----iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能

3.iptables工作原理

3.1 iptables链

  • INPUT:进入主机
  • OUTPUT:离开主机
  • PREROUTING:路由前
  • FORWARD:转发
  • POSTROUTING:路由后

3.2 iptables表

  • FILTER:负责过滤功能,内核模块 iptables_filter
  • NAT:负责进行网络地址转换,内核模块 iptable_nat
  • MANGLE:拆解报文,进行修改,重新封装,内核模块 iptable_mangle
  • RAW:关闭 nat 表上启用的连接追踪机制,内核模块 iptable_raw

3.3 链与表关系

链是报文流转过程中的关键处理环节,表是某一些相似规则的集合

4.iptables规则

格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION

4.1 参数介绍

  • -t table

表示对应的表,如:filter/nat/mangle/raw

  • COMMAND

定义如何对规则进行管理

  • chain

指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的

  • CRETIRIA

指定匹配标准

  • -j ACTION

指定如何进行处理

4.2 命令COMMAND详解

  • 链管理命令

具体的命令如下:

iptables -P INPUT (DROP|ACCEPT)  默认是关的/默认是开的
-F: FLASH,清空规则链的(注意每个链的管理权限)
iptables -t nat -F PREROUTING
-N:NEW 支持用户新建一个链
    iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
-X: 用于删除用户自定义的空链
    使用方法跟-N相同,但是在删除之前必须要将里面的链给清空了
-E:用来Rename chain主要是用来给用户自定义的链重命名
    -E oldname newname
-Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)
    iptables -Z :清空
  • 规则管理命令

详细举例

 -A:追加,在当前链的最后新增一个规则
 -I num : 插入,把当前规则插入为第几条。
    -I 3 :插入为第三条
 -R num:Replays替换/修改第几条规则
    格式:iptables -R 3 …………
 -D num:删除,明确指定删除第几条规则

4.3 匹配标准

  • 通用匹配:源地址目标地址的匹配

相关实例如下

-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP
IP | IP/MASK | 0.0.0.0/0.0.0.0
而且地址可以取反,加一个“!”表示除了哪个IP之外
 -d:表示匹配目标地址
 -p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
 -i eth0:从这块网卡流入的数据
流入一般用在INPUT和PREROUTING上
 -o eth0:从这块网卡流出的数据
流出一般在OUTPUT和POSTROUTING上
  • 扩展匹配

对协议的扩展

-p tcp :TCP协议的扩展
--dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口,比如
--dport 21  或者 --dport 21-23 (此时表示21,22,23)
--sport:指定源端口
--tcp-fiags:TCP的标志位(SYN,ACK,FIN,PSH,RST,URG)

4.4 参数详解-j ACTION

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包。不回应任何信息,客户端只有当该链接超时后才会有反应。
  • REJECT:拒绝数据包。会给客户端发送一个响应的信息 。
  • SNAT:源 NAT,解决私网用户用同一个公网 IP 上网的问题。
  • MASQUERADE:是 SNAT 的一种特殊形式,适用于动态的、临时会变的 IP 上。
  • DNAT:目的 NAT,解决私网服务端,接收公网请求的问题。
  • REDIRECT:在本机做端口映射。
  • LOG:在 /etc/log/messages 中留下记录,但并不对数据包进行任何操作。

例如:

不允许172.16.0.0/24的进行访问

iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP

当然你如果想拒绝的更彻底

iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT```
A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP

`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值