5号黯区 活跃在一线渗透攻击的队伍

iptables使用笔记

2021-02-06

1. iptables是什么

Linux上面的防火墙,内核版本为2.4\2.6的都会有,查看内核版本的命令是:cat /pro/verseion

2. iptables的特性

自上而下的匹配原则:进入的流量,一旦匹配到第一条规则就会停止往下匹配。
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
此时,如果telnet 192.168.132.194 3306,这样是进不去的,因为已经匹配到了第一条规则。

3. 常用iptables参数

待添加

4. C2安全之iptables常用命令

4.1 只允许常用IP段登录ssh

1
2
3
iptables -A INPUT -p tcp -s 102.90.212.0/24 -j ACCEPT
iptables -A INPUT -p tcp -s 192.51.188.0/24 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 22 -j DROP

4.2 只允许特定IP段回连8089

1
2
iptables -A INPUT -p tcp -s 113.191.0.0/16 --dport 8089 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -dport 8089 -j DROP

4.3 端口转发

4.3.1 转发到远程机器

目的:访问192.168.1.2:80 –>20.20.20.20:3389。访问192.168.1.2的80相当于访问20.20.20.20的3389端口
从这里学习到:https://www.zhangguangtong.cn/?p=83

1
2
3
echo 1 > /proc/sys/net/ipv4/ip_forward #kali 2020不能执行这个命令哦
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 20.20.20.20:3389
iptables -t nat -A POSTROUTING -d 20.20.20.20 -p tcp --dport 3389 -j SNAT --to 192.168.1.2

4.3.2 转发到本地其他端口

比如有些端口只能本机访问,也不知道这个方法能不能绕过这个限制,因为我没有了解透iptables。
目的:访问20.20.20.20:822 –>20.20.20.20:22.

1
2
3
echo 1 > /proc/sys/net/ipv4/ip_forward #kali 2020不能执行这个命令哦
iptables -t nat -A PREROUTING -p tcp --dport 822 -j DNAT --to-destination 20.20.20.20:22
iptables -t nat -A POSTROUTING -d 20.20.20.20 -p tcp --dport 3389 -j SNAT --to 20.20.20.20

5. 删除chain

sudo iptables -F
清除所有规则

5.1【单条】直接删除

如:
现有一条添加好的chain

1
sudo iptables -A INPUT -p tcp -s 192.168.1.1/24  -j ACCEPT

我们要删除它的话,就这样删除

1
sudo iptables -A INPUT -p tcp -s 192.168.1.1/24  -j ACCEPT

5.2【单条】根据–line-number

有很多规则之后,我们要删除其中的一条,又不想打长长的命令,就可以根据规则的所在行进行删除。

  1. 先获取行
  2. 再删除
1
2
3
4
5
6
7
8
9
10
11
kali@kali:~$ sudo iptables -L -n --line-number                                                                                                                                                                                                                                                               
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 192.168.2.0/24 0.0.0.0/0
2 ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
1
2
3
4
5
6
7
8
9
10
11
kali@kali:~$ sudo iptables -D INPUT 2                                                                                                                                                                                                                                                                        
kali@kali:~$ sudo iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 192.168.2.0/24 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

6. 从这学习

https://www.cnblogs.com/liang2580/articles/8400140.html
https://www.cnblogs.com/zclzhao/p/5081590.html
https://www.cnblogs.com/askDing/p/5111277.html