0


Linux安全--iptables详解

1、iptables介绍

防火墙分类:从逻辑上分类
分类说明主机防火墙针对单个主机进行防护网络防火墙****处理网络入口或者边缘,针对网络入口进行防护
防火墙分类:从物理上分类
分类说明硬件防火墙在硬件级别实现防火墙功能软件防火墙****应用软件处理逻辑运行于通用硬件平台之上的防火墙
两个概念:

内核空间:也叫内核态,操作系统占据的内存区域

用户空间:也叫用户态,用户进程所在的内存区域

2、iptables四表五链详解


说明filter表负责过滤功能,防火墙;内核模块:iptable_filternat表网络地址转换功能;内核模块:iptable_natmangle表拆解报文,做出修改;iptable_mangleraw表关闭nat表上启用的追踪机制;iptable_rawpreroutingraw表,mangle表,nat表inputmangle表,filter表forwardmangle表,filter表outputraw表,mangle表,nat表,filter表postrouting****mangle表,nat表
表和链的关系:
rawprerouting,outputmangleprerouting,input,forward,output,postroutingnatprerouting,output,postroutingfilter
input,forward,outpu

优先级次序(由高到低): raw > mangle > nat > filter

3、iptables基本语法

处理动作
动作含义ACCEPT允许数据包通过DROP直接丢弃数据包,不给任何回应信息REJECT拒绝数据包通过,客户端会收到拒绝的信息SNAT源地址转换DNAT****目标地址转换
常用操作命令
常用操作命令**说明-A在指定链尾部添加规则-D删除匹配的规则-R替换匹配的规则-I在指定位置插入规则-F删除所有链的规则
常见设置参数
常见设置参数
说明****--dport *指定目标TCP/IP端口 --sport 指定源TCP/IP端口-p tcptcp协议*-p udpudp协议-j DROP拒绝-j ACCEPT允许-s 192.168.150.129指定源地址或地址段-d 192.168.150.130**指定目标地址或地址段

4、实际操作

4.1 增加规则

选项说明:

-t :指定操作的表

-I :指定插入规则到哪个链中

-s :指定“匹配条件”中的源地址

-j :指定“匹配条件”中的动作

拒绝所有来自192.168.150.15的所有报文

iptables -I INPUT -s 192.168.150.15 -j DROP

效果展示:

再允许192.168.150.15的所有报文

iptables -I INPUT -s 192.168.150.15 -j ACCEPT

效果展示:

4.2 删除规则

iptables -D INPUT 1

4.3 修改规则

iptabels -R INPUT 1 -s 192.168.150.15 -j ACCEPT

效果展示:

5、命令语法总结

iptables -t 表名 -A 链名 匹配条件 -j 动作 #在规则尾部追加

iptables -t 表名 -I 链名 匹配条件 -j 动作 #在规则首部增加

iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作 #在链的指定位置添加

** iptables - t 表名 -D 链名 规则序号 #按照规则序号删除规则**

iptables -t 表名 -D 链名 匹配条件 -j 动作 #按照匹配条件个动作删除规则

iptables - t 表名 -P 链名 动作 #修改指定表的指定链的默认策略

iptables -F #删除所有规则

**iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作 #修改规则 **

6、基本匹配条件

# -s 用于匹配报文的源地址,可以同时指定多个源地址,每个IP之间用逗号隔开,也可以指定为一个网段。

iptables -t filter -I INPUT -s 192.168.150.15,192.168.150.16 -j DROP

# -d 用于匹配报文的目标地址,可以同时指定多个目标地址,每个IP之间用逗号隔开,也可以指定为一个网段。

iptables -t filter -I OUTPUT -d 192.168.150.15,192.168.150.16 -j DROP

# -p 用于匹配报文的协议类型,可以匹配的协议类型tcp,udp,udplite,icmp等等。

iptables -t filter -I INPUT -p tcp -s 192.168.150.15,192.168.150.16 -j DROP

** # -i 用于匹配报文是哪个网卡接口流入本机的,由于匹配条件只是用于匹配报文的流入的网卡,所以OUTPUT链与POSTROUTING链中不能使用此选项。**

iptables -t filter -I INPUT -p tcp -i ens33 -j DROP

7、iptables进阶用法

7.1 iprange扩展模块

使用iprange扩展模块可以指定“一段连续的ip地址范围”,用于匹配报文的源地址或者目标地址。

iprange扩展模块有两个扩展匹配条件可以使用:

  • --src-range:源地址范围
  • --dst-range:目标地址范围
  • -m iprange:表示使用iprange扩展模块

iptables -t filter -I INPUT -m iprange --src-range 192.168.150.15-192.168.150.25 -j DROP

7.2 string扩展模块

使用string扩展模块,可以指定要匹配的字符串,如果报文中包含对应的字符串,则符合匹配条件。

  • -m string:表示使用string扩展模块
  • --algo:用于指定匹配算法,可选的算法有bm和kmp,此选项为必选。
  • --string:用于指定需要匹配的字符串

iptables -t filter -I INPUT -m string --algo kmp --string "bit" -j DROP

# 网站有敏感字符串,用户访问不让响应

8、iptables进行端口转发

实例1:

将本机的8080端口转发至其他主机,主机IP:192.168.150.16,目标主机IP和端口:192.168.150.15:8088,规则如下;

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.150.15:8088

iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 8088 -j SNAT --to-source 192.168.150.16

echo 1 > /proc/sys/net/ipv4/ip_forward #开启iptables forward转发功能。

实例2:

访问本机的8080端口转发到本地的80端口

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80

标签: linux 安全 网络

本文转载自: https://blog.csdn.net/zcffight/article/details/127882562
版权归原作者 zcffight 所有, 如有侵权,请联系我们删除。

“Linux安全--iptables详解”的评论:

还没有评论