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端口的输出规则,并且时间同步测试成功测试:
 










