Iptables 入门使用笔记

简介

iptables 是一个包过滤防火墙,可以对包进行封装、过滤、重定向或者网络地址转换(DNAT、SNAT)、地址伪装、透明代理、访问控制、连接跟踪等功能,它是一个免费开源的软件,工作在用户空间

iptables 底层是 netfilter,它工作在内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集,iptables 在用户空间的插入、修改、删除等操作最终都会反映到内核的规则集中。

实例

放行 SSH 端口

1
2
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

TODO: 按照 TCP 协议通信流程,首先由本机发出一个包(OUTPUT),目标机器收到后再发送一个包到本机(INPUT),因此需要添加两条规则。

过滤无效数据包

1
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

TODO: 这里的无效数据包指的是没有通过请求回应的数据包。

参考资料

Licensed under CC BY-NC-SA 4.0