我试图通过configurationiptables来保护我的服务器(Ubuntu Lucid 10.04)免受一些蛮力的ssh攻击。 我想把这些匹配logging到DROP规则中,但是它不起作用,所以我尝试了基本的:
iptables -A INPUT -p tcp --dport 22 -j LOG --log-level info --log-prefix "TEST: "
但它不logging任何东西! 我试着改变日志级别:debug或者7,然后把kern.=debug -/var/log/firewall到/etc/syslog.conf但是没有任何东西写到/var/log/messages或者/var/log/firewall
该规则确实得到了一些匹配:
$ iptables -L -v pkts bytes target prot opt in out source destination 44 5543 LOG tcp -- any any anywhere anywhere tcp dpt:ssh LOG level debug prefix `TEST: '
iptables logging not working有一个解决scheme来更新rsyslog到一个更新的版本。 然而根据这个来源 “这个解决scheme正在混淆默认的日志logging系统”
有人知道更好的解决scheme吗?
如果不是的话,我可以尝试更新rsyslog(从源代码编译),但是如果它弄糟了,我怎么能恢复到默认的rsyslog呢?
编辑: rsyslog删除它的权限,所以它不能读取/ proc / kmesg。 这应该解决在新的内核,但不幸的是,我卡在2.6.18。
“它不读取旧版本内核的事实是DELIBERATE,不会被修复。”
我试图让rsyslog通过修改/etc/rsyslogd.conf来保持root权限
$PrivDropToUser root $PrivDropToGroup root
但是这也行不通,这让我感到困惑。 为什么这个根进程不能读取文件根目录?
您可以安装fail2ban并configurationssh jail,以便根据sshd放入日志的消息自动禁止攻击服务器的IP地址。 这是一个相当标准的做你想做的事。
如果你还没有这样做,你应该通过SSH禁用rootlogin,以及启用和使用基于密钥的身份validation。
您正在设置日志级别的信息,但是,您的syslogconfiguration正在输出日志级别的debugging。 要么更改系统日志输出kern.info或您的iptables规则输出到日志级别的debugging,以匹配您的规则集configuration。