使用iptables将所有连接记录到关闭的端口

时间:2014-06-28 09:39:54

标签: linux networking logging iptables connection

在FreeBSD中,有一个可通过sysctl(net.inet.tcp.log_in_vain)调整的内核参数,它为您提供尝试连接到未运行服务的端口(即关闭端口)的日志。这些消息以下列格式记录到/ var / log / messages(稍微):

  

2014-06-26 13:18:58 | 218.77.79.43 | 58848 | 192.168.192.28 | 443 | tcp_input:连接尝试关闭端口

如果不转发从路由器到FreeBSD盒子的所有连接,我会定期收到这些消息。如果我没有明确创建端口转发规则集,将流量重定向到路由器上的此框,会怎么样呢?

我正在寻找使用iptables设置类似的东西,尽可能减少噪音,例如只看到来自我网络之外的那些连接作为src并忽略任何传出。

我试图使用以下内容来执行此操作:

  

iptables -I INPUT -m state --state NEW -j LOG --log-prefix“New Connection:”

我很确定这种语法已经过时了。我来自IPF世界,所以我还没有完全掌握最新的iptables语法约定。

此规则生成我正在/ var / log / messages中查找的日志类型:

  

Jun 28 00:38:12 kermit kernel:[6331.339928]新连接:IN = eth0 OUT = MAC = ff:ff:ff:ff:ff:ff:a8:86:dd:8a:c9:26: 08:00:45:00:00:48:e8:3f:00:00:40:11:8f:ec│   SRC = 192.168.192.40 DST = 192.168.192.255 LEN = 72 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 59455 PROTO = UDP SPT = 57621 DPT = 57621 LEN = 52

到目前为止,我还没有看到来自我自己网络之外的任何连接。另外,我可以在/var/log/auth.log中看到使用上述iptables规则未出现在/ var / log / messages中的SSH登录尝试:

  

Jun 28 09:31:42 kermit sshd [10097]:pam_unix(sshd:auth):check pass;用户未知

     

Jun 28 09:31:44 kermit sshd [10097]:无效用户管理员密码失败,来自116.10.191.187端口40312 ssh2

是否可以使用iptables创建以下内容:

  1. 将我的盒子的所有传入连接记录到/ var / log / messages
  2. 的规则/规则集
  3. 不记录源自我自己网络的任何连接
  4. 不记录任何传出连接
  5. 我是否需要将路由器上的所有连接转发到我的盒子,以便获得与FreeBSD中类似的日志消息? (即端口转发所有端口)

1 个答案:

答案 0 :(得分:-1)

我发现以下(基本)rulset做了我想要的:

# Generated by iptables-save v1.4.14 on Sat Jun 28 14:02:33 2014
*filter
:INPUT ACCEPT [586:43405]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [367:72794]
:LOGNDROP - [0:0]
-A INPUT ! -s 192.168.192.0/24 -p tcp -m state --state NEW -j LOG --log-prefix "[New Connection]: "
COMMIT
# Completed on Sat Jun 28 14:02:33 2014