在我们的机构里,我们通过互联网连接了300多台电脑到不同的局域网。 这里包括正式的局域网,和互联网实验室的学生。 我们想要控制Torrent或任何P2P协议。 以前的解决scheme是我们的问题是KerioWinRoute 6.5.x,最满意。 问题是,我们已经使用Webmin平台迁移到Ubuntu 8.04 LTS。
背景来说,很长一段时间我们遇到了防火墙的问题,有时会让HTTP请求部分加载,直到TCP超时。 在跟踪防火墙上的stream量之后,我注意到它只发生在特定的时间条件下,例如,当Web服务器在客户端已经在有效载荷上发送第二个ACK之前发送了整个响应时。 [SYN,SYN / ACK,ACK]已经被交换,REQUEST已经被发送并且被确认,并且第一个RESPONSE分组已经被接收并且被确认,然后web服务器一次性发送响应体的其余部分(8个分组包括最后一个FIN,PSH),并且在客户端已经确认了这些之前,防火墙拒绝RST向networking服务器发送请求,并使客户端挂起无限。 以下是来自防火墙两端的数据包的整个wireshark跟踪。 192.168.126.161是客户端的私有NAT'et IP地址。 172.16.1.2是networking服务器IP(不显示真实的公共IP),10.1.1.1是防火墙外部IP(不显示真实的公共IP) 2105 0.086275 192.168.126.161 172.16.1.2 TCP 37854 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSV=89375083 TSER=0 2106 0.000066 10.1.1.1 172.16.1.2 TCP 37854 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SACK_PERM=1 TSV=89375083 TSER=0 2107 0.002643 172.16.1.2 10.1.1.1 TCP http > 37854 [SYN, ACK] Seq=0 Ack=1 Win=32768 Len=0 […]
jail.local文件是作为jail.conf的替代还是替代 jail.conf? 当我从教程中了解到Fail2Ban的时候 ,他们中的大多数通常会说要将jail.conf复制到jail.local中,并在那里进行编辑,其中一些人说要创build一个新的jail.local文件,并提供一些设置来复制并粘贴。 但是他们没有解决的是jail.local如何与jail.conf配合使用。 这是两种情况: 覆盖:如果jail.local充当jail.conf文件的覆盖,那么我只需要将我想覆盖的必要configuration添加到jail.conf中给定的默认configuration。 在这种情况下,我不需要添加SSHconfiguration等,因为它已经包含在jail.conf。 replace:如果jail.local在jail.local存在时变得无效,那么我需要在jail.local中添加所有的规则,然后编辑我想修改的规则。 当jail.local存在时,你能确认jail.conf发生了什么吗? 如果jail.local在jail.conf文件中的作用只是一个覆盖,那么我只需要添加几行我想添加的规则就更容易了,这也使得维护和可读性变得容易。 什么是最好的办法呢?
我怎么知道我的iptables规则丢弃了多less包? 有没有任何debugging机制,看看哪个规则正在丢弃我的数据包或接受?
任何人都可以提供的命令完全重置Ubuntu 12.04的iptables(防火墙)到默认的“工厂”设置? 据我所知,做这个错误会导致一个被锁在Linux的盒子外?
我有几个IP范围,我希望我的服务器能够连接和用户连接。 其他一切都应该被阻止。 我应该如何做到这一点与iptables? 我的操作系统是基于Debian的Linux发行版。
我的家庭服务器有两个主要的接口, eth1 (一个标准的互联网连接)和tun0 (一个OpenVPN隧道)。 我想使用iptables来强制UID 1002拥有的本地进程生成的所有数据包通过tun0退出,所有其他数据包通过eth1退出。 我可以很容易地标记匹配的包: iptables -A OUTPUT -m owner –uid-owner 1002 -j MARK –set-mark 11 现在,我想在POSTROUTING链(可能是mangle表)中添加一些规则,以匹配标记为11的数据包,并将它们发送到tun0 ,然后是匹配所有数据包并将它们发送到eth1 。 我find了ROUTE目标,但似乎只是重写了源接口(除非我正确读取它)。 是iptables能够吗? 我必须乱搞路由表(通过ip route或只是传统的route命令),而不是? 编辑:我想也许我应该提供更多的信息。 目前我还没有其他的iptables规则(虽然我可能会创build一些规则来执行未来不相关的任务)。 另外, ip route的输出是: default via 192.168.1.254 dev eth1 metric 203 10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50 85.17.27.71 via 192.168.1.254 dev eth1 192.168.1.0/24 dev eth1 proto […]
我遇到过一种情况:客户端需要将一组不到100万个IP地址(无子网)列入黑名单,networking性能是一个问题。 虽然我会猜测IPTables规则的性能影响要比路由less,但这只是猜测。 有没有人有任何可靠的证据或其他理由来支持将IPTables或空路由作为黑名单IP地址列表的解决scheme? 在这种情况下,一切都是自动的,所以易用性并不是真正的问题。 编辑26-Nov-11 经过一些testing和开发,看来这些选项都不可行。 看起来,路由查找和iptables都是通过规则集进行线性search,并花费太长时间来处理这么多规则。 在现代硬件上,将1M项放在iptables黑名单中会使服务器速度降低到每秒大约二十个数据包。 所以IPTables和空路由都没有了。 按照Jimmy Hedman的build议, ipset会很棒,除了它不允许你跟踪一个集合中的65536个以上的地址,所以我甚至不能尝试使用它,除非有人有任何想法。 显然,阻止这么多IP的唯一解决scheme是在应用层进行索引查找。 那不是吗? 更多信息: 在这种情况下,使用情况是阻止“已知罪犯”IP地址列表访问Web服务器上的静态内容。 FWIW,通过Apache的Deny from进行阻塞同样很慢(如果不是更多的话),因为它也是一个线性扫描。 仅供参考:最终的工作解决scheme是将apache的mod_rewrite与berkeley DB映射一起使用来对黑名单进行查找。 berkeley DB的索引特性允许列表以O(log N)性能进行扩展。
(Ubuntu服务器)我正在运行 sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -m limit –limit 4/sec -j ACCEPT 接着 sudo iptables-save 要获得iptables规则的function,仅仅执行上面的命令就足够了(不用重新启动iptables)?
我想创build一个规则,允许eth1上的任何人访问端口80. UFW可以这样做,还是应该回到使用Shorewall? 澄清:这是一个能力问题,可以把接口作为目标吗?