2014-09-25 88 views
0

我的所有端口都被阻塞在我的iptables中,除了那些我特别想打开的端口。但是,在我的iptables.log文件中,有数十个请求使用端口137,138,139,因为我们的公司网络一直在想我们的盒子可能是一个windows盒子。不幸的是,我无法防止这种情况发生,所以下一个选择是打开端口或防止日志被写入。iptables:阻止端口但不记录所有端口

是否有可能阻止为特定端口写入iptables.log,但仍会记录所有其他阻止的端口?或者我需要完全禁用iptables.log?

这是我/etc/rsyslog.conf文件

:msg, startswith, "iptables: " -/var/log/iptables.log 
& ~ 
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log 
& ~ 

的RedHat 6.5

输出:

Chain INPUT (policy DROP 0 packets, 0 bytes) 
num pkts bytes target  prot opt in  out  source    destination 
1  98 6744 ACCEPT  all -- lo  *  0.0.0.0/0   0.0.0.0/0 
2  385 51303 ACCEPT  udp -- eth0 *  0.0.0.0/0   0.0.0.0/0   udp spt:53 
3  2102 166K ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp dpt:22 state NEW,ESTABLISHED 
4  0  0 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp spt:22 state ESTABLISHED 
5  119 18187 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp spt:80 state ESTABLISHED 
6  0  0 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp spt:443 state ESTABLISHED 
7  0  0 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp dpt:3306 state NEW,ESTABLISHED 
8  0  0 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   tcp spt:3306 state ESTABLISHED 
9  70 3104 ACCEPT  tcp -- eth0 *  10./16  0.0.0.0/0   multiport dports 1556,10082,10102,13720,13724,13782 state NEW,ESTABLISHED 
10  0  0 ACCEPT  tcp -- eth0 *  0.0.0.0/0   0.0.0.0/0   multiport sports 1556,10082,10102,13720,13724,13782 state ESTABLISHED 
11  115 18624 LOGGING all -- *  *  0.0.0.0/0   0.0.0.0/0 

Chain FORWARD (policy DROP 0 packets, 0 bytes) 
num pkts bytes target  prot opt in  out  source    destination 

Chain OUTPUT (policy DROP 887 packets, 53828 bytes) 
num pkts bytes target  prot opt in  out  source    destination 
1  98 6744 ACCEPT  all -- *  lo  0.0.0.0/0   0.0.0.0/0 
2  418 36439 ACCEPT  udp -- *  eth0 0.0.0.0/0   0.0.0.0/0   udp dpt:53 
3  1801 230K ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp spt:22 state ESTABLISHED 
4  0  0 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp dpt:22 state NEW,ESTABLISHED 
5  193 21974 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp dpt:80 state NEW,ESTABLISHED 
6  0  0 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp dpt:443 state NEW,ESTABLISHED 
7  0  0 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp spt:3306 state ESTABLISHED 
8  0  0 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   tcp dpt:3306 state NEW,ESTABLISHED 
9  50 4570 ACCEPT  tcp -- *  eth0 0.0.0.0/0   0.0.0.0/0   multiport sports 1556,10082,10102,13720,13724,13782 state ESTABLISHED 
10  0  0 ACCEPT  tcp -- *  eth0 10./16  0.0.0.0/0   multiport dports 1556,10082,10102,13720,13724,13782 state NEW,ESTABLISHED 

Chain LOGGING (1 references) 
num pkts bytes target  prot opt in  out  source    destination 
1  94 16986 LOG  all -- *  *  0.0.0.0/0   0.0.0.0/0   limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables: ' 
2  115 18624 DROP  all -- *  *  0.0.0.0/0   0.0.0.0/0 
+0

这是可能的。 'sudo iptables -nvL -line-numbers'的输出是什么? – Yoel 2014-09-25 17:49:29

+0

查看上面的更新... – Mark 2014-09-25 17:54:06

回答

0

添加以下规则:

sudo iptables -I INPUT 11 -p udp -i eth0 --dport 139 -j DROP 
sudo iptables -I INPUT 11 -p udp -i eth0 --dport 138 -j DROP 
sudo iptables -I INPUT 11 -p udp -i eth0 --dport 137 -j DROP 

这些将导致iptables在达到日志记录规则之前丢弃指定的数据包。特别是,它将DROP行为添加为行动编号11(在当前编号为11的记录行动之前),在filter表的INPUT链中。

请注意,您可能必须重新启动iptables,如下:

sudo service iptables restart 
+0

我认为默认情况下将策略设置为DROP不需要您编写的前3行。这不是重复我已经做了什么? – Mark 2014-09-25 18:13:17

+0

仅当未找到匹配的规则时,默认策略才会启动。在你的情况下,在LOGGING链中找到了匹配的规则,并且从不强制执行策略。 LOGGING链的第二条规则指定已经到达它的所有数据包都将被丢弃。之前的规则指定它们也应该被记录。为了避免他们的日志记录,我添加了这3条规则,在他们有机会进行登录之前将其删除。根据您的要求,所有其他端口仍然会被记录,就像以前一样。 – Yoel 2014-09-25 18:18:35

+0

好的很好的信息。我会尝试并报告回来! – Mark 2014-09-25 19:03:25