Articles of iptables

使用knockwall with shorewall

我想将旧的纯iptables防火墙configuration迁移到shorewall设置。 我得到的基础知识,但我一直无法复制我现有的敲门设置: 我有一个“ tmpknock ”链,打开一些端口,例如端口22,持续30秒(如果多个人同时尝试login,则tmpknock链中同时允许多个IP)。 我有一个' permknock '链,永远打开一些端口(比如80),但是一次只能有一个IP(当下一个端口试图从另一个IP端口敲下时 ,这个端口就被replace掉了 ),这就允许我testing一些服务目前不向公众开放) /etc/knockd.conf中的设置很简单: [tmpAndPermKnock] sequence = 10000,11000,12000 seq_timeout = 9 tcpflags = syn start_command = /sbin/iptables -I tmpknock -s %IP% -j ACCEPT; /sbin/iptables -F permknock; /sbin/iptables -I permknock -s %IP% -j ACCEPT cmd_timeout = 30 stop_command = /sbin/iptables -D tmpknock -s %IP% -j ACCEPT 现在我可以很容易地从现有的链条链接到这些链条,例如: iptables -A […]

为什么nf_conntrack_count不断增加?

我使用Ubuntu 11.10&nginx。 我的服务器目前的速度大约为350 rps(这是负载进来)。 我使用iptables来确保某些端口上的连接仅限于我自己的盒子。 我注意到nf_conntrack_count不断增加。 不pipe我推nf_conntrack_max , nf_conntrack_count在一天内匹配。 此外,它不符合netstat -tn告诉我的。 这里是数字: $ sudo sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_count = 649715 net.netfilter.nf_conntrack_max = 650000 $ netstat -tn | awk '{n[$6]++} END { for(k in n) { print k, n[k]; }}' CLOSING 6 ESTABLISHED 2933 FIN_WAIT1 116 FIN_WAIT2 3447 LAST_ACK 35 SYN_RECV 79 TIME_WAIT 27141 $ sudo […]

为什么这个iptables文件行在CentOS 6中失败

嗨,任何人都可以帮助我理解为什么行15失败据说在我的iptables文件。 我正在使用CentOS 6。 当我尝试重新启动iptables服务时,获取以下内容: [root@dbserver ~]# service iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: iptables-restore: line 15 failed [FAILED] 我的iptables文件如下所示: # Firewall configuration written by system-config-firewall # Manual customization of this file is […]

如何使iptables DNAT与macvlan一起工​​作

我坚持一个AT&T的网关,不明白一个MAC可以有多个IP地址。 所以我使用linux上的macvlan来添加不同mac地址的端口。 这似乎适用于本地连接到macvlan端口。 但是,当我尝试和DNAT他们到一个私人的DMZ数据包似乎消失。 我有ip_forwarding打开和其他传出数据包转发正在工作。 我已经使用tcpdump和跟踪在iptables中无济于事。 DNAT规则触发,然后数据包永远不会出现在任何地方。 我正在运行Centos 6.3。

iptables“主机/networking未find”,带有感叹号IP地址

我试图添加一个iptables规则,以便丢弃除特定IP以外的任何传入数据包。 按照手册,我尝试运行这个: > iptables -t filter -I INPUT -s !12.34.56.78 -p tcp -j DROP 但我得到这个错误: iptables v1.4.12.1: host/network `!12.34.56.78' not found manpages表示为-s / –src / –source参数… A "!" argument before the address specification inverts the sense of the address. … … A "!" argument before the address specification inverts the sense of the address. … […]

服务器响应时间长

我们有一个高stream量的网站,在高峰期有1000并发用户,最less有100用户在同一时间。 平均每天有40,000到100,000访问。 这个问题有时会加载得非常慢(我们把这次命名为灾难时间 :)),那时候我们试图用Firefox加载网站,显示waiting… (我尝试了与世界各地的许多提供商一起) 我们在灾难时间监视服务器, CPU load , Memory Usage情况正常。 另外, MySQL查询日志缓慢,不会有任何查询长达1 sec 。 Apache没有任何错误。 iotop不显示任何导致此灾难的事情。 灾难时间和高峰时间没有任何关系是非常有趣的。 有时灾难发生在300并发用户,而另一个时间则不同。 我找不到他们之间的任何关系。 如何在灾难时间跟踪数据包? 我想知道这个灾难是我们的数据中心的故障(如上游或防火墙)或我们的服务器故障(如Apacheconfiguration,Web应用程序或其他任何我不知道的)。 对于其他数据只是添加评论,然后我编辑我的问题,以提供您需要回答的数据。

将使用iptables DROP目标导致套接字CLOSE_WAIT从来没有完成?

我有一些简单的规则来阻止黑客/垃圾邮件发送者频繁使用的某些IP块,例如: iptables -A INPUT -s 173.208.250.0/24 -j DROP 但是,我注意到apache在几天后挂起,在netstat的输出中显示了许多CLOSE_WAIT,永远不会消失: # netstat -atlpn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 1 0 ::ffff:10.0.0.107:80 ::ffff:173.208.250.123.50813 CLOSE_WAIT 29125/httpd 这是否可以通过在规则中指定DROP目标引起? 我应该用REJECT吗?

连接到Centos openvpn,但没有外部互联网接入

我正在使用Windows 7连接到运行CentOS 6.4的VPS服务器 首先,我已阅读每一个职位,只是无法find解决我的问题 我用openvpnconfiguration了我的VPN服务器,终于在开启和closures尝试4个月之后运行。 所以我必须连接到我的服务器,这是一个突破,但我没有互联网接入:(我不知道你们都需要看到能够帮助,但我会发布我所知道的可能是相关的 据我所知,我已经正确configurationopenvpn,因为我可以成功连接到服务器 我不知道我使用的是什么防火墙,我想这就是所谓的iptables iptables # Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014 *nat :PREROUTING ACCEPT [721:50130] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE COMMIT # Completed on Thu Feb 13 17:10:07 2014 # Generated by iptables-save v1.4.7 on Thu Feb […]

iptables和条件语句。 可能吗?

我尝试了search,但我没有成功,在这种情况下,我很抱歉,我将欣赏redirect。 我想到了这个问题:一个MAC地址为M的计算机通过openwrt路由器(或基于linux的系统)发送数据包,我想试试这个可能性,让M从数据包中立即发出一个包之后必须放弃,然后再接受,然后下降等。 所以如果带有mac的计算机发送20个数据包,只有10个会通过,另外10个会被丢弃。 以一种详细的方式,想要的结果是:接受,放弃,接受,放弃,接受,放弃,接受,放弃等等… 伪代码解释 condition=ACCEPT for each packet { if ( packet_is_sent_from_adapter_with_mac_M ) { if (condition == ACCEPT) { accept_packet condition=DROP } else { drop_packet condition=ACCEPT } } } 可能吗? 谷歌search后有点似乎iptables不支持任何条件语句或脚本。 如果可能的话,那么一般条件“Y连续接受后连续丢弃X个数据包”呢? 另外1 :一般的问题是“stream量控制”在iptables中是不允许的? 或更好,因为有条件的决定是基于一个状态(伪代码中的条件 ),我们如何在iptables中保存与某个条件有关的状态并做一些检查这个状态? 另外2 :在注释中,build议使用额外的工具(tc)来实现stream量控制(我的意思是说,如果语句,循环等),随意提出组合(也许有一些解释)。 谢谢!

为什么conntrackd不能复制状态?

我遇到了主动/主动防火墙集群的问题,防火墙中的连接跟踪状态似乎没有被复制。 它是主动/主动的,因为我有两个路由器通过不同的ISP连接,并通过BGP提供的networking范围。 数据如何被路由返回由BGP确定。 所以路由是不对称的。 这两个防火墙在内部networking上联网在一起,我有一个虚拟IP作为Windows服务器的默认路由。 当两个防火墙都在运行,并且内部服务器尝试连接时,通过辅助防火墙(没有连接状态logging的防火墙)回复。 因此,回复被删除,而不是路由到发起请求的服务器。 我以为conntrackd会解决这个问题,但我似乎无法得到它的工作。 也许我误解了它是如何工作的。 我可以得到conntrackd复制iptables的状态吗? 它是否在主动/主动模式下工作? 国家是否实时复制? 这是我的conntrackd.conf文件包含的内容。 Sync { Mode ALARM { RefreshTime 15 CacheTimeout 180 } Multicast { IPv4_Address 225.0.0.50 Group 3780 IPv4_Interface 10.0.0.100 Interface eth2 SndSocketBuffer 1249280 RcvSocketBuffer 1249280 Checksum on } } General { Nice -20 HashSize 32768 HashLimit 131072 LogFile on Syslog on LockFile /var/lock/conntrack.lock […]