iptables实例2-state模块
state模块介绍
state扩展是"conntrack"模块的子集。"state"允许访问这个包的连接追踪状态。
[!] --state state:INVALID ESTABLISHED NEW RELATED或UNTACKED.
NEW:新连接请求
ESTABLISHED:已建立的连接
INVALID:无法识别的连接
RELATED:相关联的连接,当前连接是一个新请求,但附属某个已存在的连接
UNTRACKED:未追踪连接
state扩展:
内核模块装置:nf_conntrack nf_conntrack_ipv4
手动装置:nf_conntrack_ftp
追踪到的连接:/proc/net/nf_conntrack
调整可记录的连接数量最大值:/proc/sys/net/nf_conntrack_max
实验准备:
见https://blog.csdn.net/yuyuyuliang00/article/details/123012202?spm=1001.2014.3001.5501中的准备工作
清空前一次实验中iptables filter表中链上的所有规则:
在web1上添加INPUT链规则
1、允许目标地址192.168.200.3,目标端口是22,80的状态为新建tcp连接入栈
2、允许目标地址192.168.200.3,源地址是指定ip,源端口为7000的状态为新建tcp连接入职
3、允许目标地址192.168.200.3的所有已建立连接入栈
4、拒绝目标地址192.168.200.3的所有数据包入栈
查看web1上的filter表
在web1上添加OUTPUT链规则
1、允许源地址192.168.200.3的所有状态已建立连接出栈
2、拒绝源地址192.168.200.3的所有状态为其它状态的连接出栈
在web2上测试web1的http和telnet服务
web2可以访问web1的http服务,web2不能访问web1的telnet服务
更改web1上filter表INPUT链上第一条规则,放行telnet
测试web1的telnet服务
从web2上通过telnet登录web1测试成功:
web1作为客户端访问时间服务器
用proxy(192.168.200.2)上运行时间服务器chronyd
在放行123,323 udp端口前,在web1上进行时间同步:
结果如下:同步失败
在web1上添加放行访问123,323 udp端口的输出规则,并且时间同步测试成功测试: