Linux iptables详解

iptables

iptables 是 Linux 操作系统里面一款知名 IP 防火墙工具。iptables 有两块主要的功能,分别是 过滤 和 映射

其中的过滤,又可以分为 访问过滤 和 出口过滤。当一个 IP 访问我们服务器的时候,我们针对个 IP 进行一些规则判断,如果触发了规则,那么对 IP 进行禁止,这就是访问过滤。而出口过滤呢?是我们服务器要访问一个 IP,然后针对我们主动访问的 IP 进行规则校验。

映射就是转发,例如被请求了 8000 端口,但是我们通过 iptables 映射到 80 端口,也就相当于把 8000 转发到 80 端口。

理解了这两个基本的概念,就可以进入实际操作了。


rules

iptables 的规则详解。

iptables -h // 帮助

我们查看一下当前主机的规则。

$ iptables -L -t filter
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

/*
 结果显示没有任何规则
*/

我们新增一条规则。

$ iptables -A INPUT -s 0.0.0.0 // 这条规则的作用是禁止 0.0.0.0 这个 IP 访问我们的主机
$ iptables -L -t filter
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
           all  --  0.0.0.0              anywhere // 这里就多出一条记录了

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

更多的规则。

/*
 新增、修改、删除 规则
*/
-A INPUT // -A 追加一条规则到 iptables 的列表,INPUT 表示这条规则是 “访问过滤” | OUTPUT 就是 “出口过滤” 
-I INPUT 2 // -I 表示这条规则添加到哪行,规则匹配的顺序会影响规则的匹配结果,前后很重要
-R INPUT 2 // -R 修改第二行的规则
-D INPUT 2 // -D 删除第二行的规则
-F // 清空所有规则

/*
 IP 规则
*/
-s 0.0.0.0 // 来源 IP,用于 “访问过滤” 匹配
-d 0.0.0.0 // 目标 IP,用于 “出口过滤” 匹配
! -s 0.0.0.0  // ! 号,白名单机制,除了这个 IP 其他 IP 都不能访问

/*
 协议和端口规则
*/
-p tcp/udp --dport/sport 1 // -p 协议 -dport/sport 源端口/目标端口
-p icmp --icmp-type 8/0 // 匹配 icmp | type 8 表示请求,0表示 回应

/*
 网卡规则
*/
-i eth0 //  -i “访问过滤”
-o wlan0 // -o “出口过滤”

iptables 实例

结合上面的规则,举些实例。

/*
 filter 过滤 实例
*/
// 访问过滤
iptables -A INPUT -s 0.0.0.0 -p tcp --sport 8000 -j DROP // 拒绝 0.0.0.0:8000 访问 | 如果是 -j ACCEPT 这个规则就是允许访问

// 出口过滤
iptables -A OUTPUT ! -d 0.0.0.0 -j DROP // 拒绝 0.0.0.0 出口

// 拒绝所有ICMP请求
iptables -A INPUT -p icmp --icmp-type 8 

/*
 nat 映射 实例
*/
iptables -t nat -A PREROUTING -p tcp --dport 8000 -j REDIRECT --to-ports 80 // 将访问 8000 端口转发到 80 端口上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值