Linux安全--iptables详解

目录

1、iptables介绍

2、iptables四表五链详解

3、iptables基本语法

4、实际操作

4.1 增加规则

 4.2 删除规则

4.3 修改规则

 5、命令语法总结

 6、基本匹配条件

7、iptables进阶用法

7.1 iprange扩展模块

7.2 string扩展模块

8、iptables进行端口转发


1、iptables介绍

防火墙分类:从逻辑上分类

分类说明
主机防火墙针对单个主机进行防护
网络防火墙处理网络入口或者边缘,针对网络入口进行防护

防火墙分类:从物理上分类

分类说明
硬件防火墙在硬件级别实现防火墙功能
软件防火墙应用软件处理逻辑运行于通用硬件平台之上的防火墙

两个概念:

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

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

2、iptables四表五链详解

说明
filter表负责过滤功能,防火墙;内核模块:iptable_filter
nat表网络地址转换功能;内核模块:iptable_nat
mangle表拆解报文,做出修改;iptable_mangle
raw表关闭nat表上启用的追踪机制;iptable_raw
preroutingraw表,mangle表,nat表
inputmangle表,filter表
forwardmangle表,filter表
outputraw表,mangle表,nat表,filter表
postroutingmangle表,nat表

表和链的关系:

rawprerouting,output
mangleprerouting,input,forward,output,postrouting
natprerouting,output,postrouting
filter

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值