Linux防火墙iptables小记

iptables的表链结构,四表五链

表用于存放不同的规则链,

raw表:确定是否对数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包的源目标地址或端口

filter表:确定是否放行改数据包

规则链解析chain:用来存放一条条防火墙规则,根据处理包的不同时机分类。

默认五种规则链:

INPUT:处理入站的数据包

OUTPUT:处理出站数据包

FORWARD:处理转发的数据包

POSTROUTING:路由选择之后处理

PREROUTING:路由选择之前处理

规则表之间的顺序,raw-mangle-nat-filter

规则链之间的顺序:

入站:PREROUTING-INPUT

出站:OUTPUT-POSTROUTING

转发:PREROUTING-FORWARD-POSTROUTING

包过滤匹配流程:

规则链内的匹配顺序,匹配即停止

若无匹配,按照改链的默认策略处理

iptables的基本管理

/sbin/iptables

指令的组成

iptables -t表名 选项 链名 条件 -j 目标操作

iptables -t filter -I INPUT -p icmp -j REJECT

可以不指定表,默认为filter表,不指定链默认为对应表的所有链

除非设置默认策略,否则必须制定匹配条件

选项链名目标操作用大写字母,其他都小写

ACCEPT:允许通过,放行

DROP:直接丢弃,不给出任何回应

REJECT:拒绝通过,必要时会给出提示

LOG:记录日志,然后传给下调规则

添加规则: -A 在链的末尾追加一条规则,-I在链的开头插入一条规则

查看规则:-L 列出所有的规则条目,-n 以数字形式显示地址,端口等信息

--line-numbers 查看规则时,显示规则的序号

删除规则:-D 删除链内指定序号的条规则,-F清空所有规则

默认策略:-P 为指定的链设置默认规则

管理规则示例:

添加 —A追加 -I插入

iptables -t filter -A INPUT -p tcp -j ACCEPT

iptables -I INPUT -p udp -j ACCEPT

iptables -I INPUT 2 -p icmp -j ACCPET

查看规则列表:

iptables -nL INPUT

iptables -L INPUT --line-numbers

删除清空规则:

iptables -D INPUT 3

iptables -F 清空

iptables -t nat -F

iptables -t mangle -F

iptables -t raw -F

设置默认规则:

所有链的初始默认链均为ACCEPT 通过-P选项可重置默认规则

ACCEPT或者DROP

iptables -t filter -P INPUT DROP

开启内核的IP转发:

或者 echo 1 >/proc/sys/net/ipv4/ip_forward

基本的匹配条件:

通用匹配: 协议匹配 -p 协议名

地址匹配 -s 源地址 -d 目标地址

接口匹配 -i 收数据的网卡 -o 发数据的网卡

端口匹配 --sport 源端口 --dport 目标端口

隐含匹配: ICMP类型匹配 --icmp-type ICMP类型

TCP标记匹配 --tcp-flags 检查哪些位,哪些位被设置

示例:封禁IP地址网段

主机防护,针对入站访问的源地址: iptables -s 192.168.3.1 -j DROP

iptables -A INPUT -s 10.0.0.0/24 -j DROP

iptabels -A FORWARD -s 192.168.0.0/16 -i eth0 -j DROP

限制对指定端口的访问

iptables -A INPUT -s 192.168.236.0/24 -p tcp --dport 22 -j ACCEPT

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

iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

允许本机ping其他,禁止其他ping主机

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

iptables -A INPUT -p icmp --icmp-type !echo-request -j ACCEPT

扩展匹配: -m 扩展模块 --扩展条件 条件值

示例:-m mac --mac-source 00:2c:54:ee:21:5f

常见的扩展条件

状态匹配: -m state --state 状态值

MAC地址匹配:-m mac --mac-source MAC地址

多端口匹配: -m multiport --sports 源端口列表

-m multiport --dports 目标端口列表

IP范围匹配:-m iprange --src-range IP1-IP2

-m iprange --dst-range IP1-IP2

状态匹配:

网络连接的五种状态

NEW-ESTABLISHED-RELATED-INVALID-UNTRACKED

丢弃陌生的TCP响应包

示例:

防止反射反弹攻击

iptables -A INPUT -m state --stae NEW -p tcp !--syn -j DROP

iptables -A FORWARD -m state --state NEW -p tcp !--syn -j DROP

识别FTP数据连接

iptables -A FORWARD -d 192.168.4.205 -p tcp --dport 20:21 -j ACCEPT

iptabels -A FORWARD -s 192.168.4.205 -p tcp --sport 29:21 -j ACCEPT

iptabels -A FORWARD -d 192.168.4.205 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.4.205 -m state --state ESTABLISHED,RELATED -j ACCEPT

允许从内网访问外网的服务,禁止从外网访问内网

iptables -A FORWARD -s 192.168.4.0/24 -o eth0 -j ACCEPT

iptables -A FORWARD -d 192.168.4.0/24 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -d 192.168.4.0/24 -i eth0 -m state --state NEW -j DROP

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180801G0NO4300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动