iptables 经典设置(二)

6 SYN 的使用
不能关闭所有端口,也不能只指定某些端口处于打开状态,那么怎样才能设置一个有效的规则,既可以允许普通用户正常通过,又可以阻止恶意攻击者访问网络呢?
刚开始使用 iptables 的人可以充分利用 syn 标识来阻止那些未经授权的访问。 iptables 只检测数据包的报头,事实上,除 iptables 以外,很多其它有用的数据包分析都是基于报头的。比如,在进行 Web 冲浪时,一个请求从你的 PC 发送至其它地方的 Web 服务器上,该服务器会响应请求并发回一个数据包,同时得到你系统上的一个临时端口。与响应请求不同的是,服务器并不关心所传送的内容。可以利用这种特点来设置规则,让它阻止所有没有经过你系统授权的 TCP 连接:
# iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP
 
这里的 -i 指的是网卡, -p 则是指协议, --syn 则表示带有 syn 标识设置的 TCP 数据包。 SYN 用于初始化一个 TCP 连接,如果自己机器上没有运行任何服务器,别人也就不会向你发送 SYN 数据包。
7 .有状态的数据包的检测
前边的例子把每一个数据包看成是独立的,而不是相互关联的,依靠的是数据包的头信息。 iptables 会检查数据包的源和目的 IP 地址、源和目的端口、流入数据包的顺序号、 TCP 先后顺序的信息及头标记( SYN ACK FIN RST 等)的状态,即它会跟踪整个连接会话,从而使整个过滤过程是相互关联的。
8 .共享一个 Internet 连接
网络地址翻译和 IP 伪装都可以实现多台主机共享一个 Internet 连接,这个局域网可以是 Linux Windows 系统组成的多系统局域网。假设现在有一台机器,配有两个网卡,其中 eth0 公共 网卡, eth1 私有 网卡,即 eth0 被分配了一个静态的、可路由的 IP 地址,而 eth1 被分配了一个私有的、不能路由的 IP ,该 IP 是属于该局域网子网的。要实现上述功能,需要向 nat filter 表中添加一些链:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT
 

这显示了有状态的数据包检测的价值。请注意,这里是如何实现流入数据包只有在属于一个已经存在的连接时才被允许,而所有来自局域网内流向外的数据包则都允许通过。第一条规则让所有

你可能感兴趣的:(职场,iptables,休闲,经典设置)