更改 iptables 日志格​​式

更改 iptables 日志格​​式

是否可以更改 iptables 的日志格式?

我想在日志中添加 ssh_client。

我已经为传出 ssh 制定了 iptables 规则

iptables -I OUTPUT -p tcp --dport 22 -j LOG --log-prefix "outbound ssh ${SSH_CLIENT%% *} : " --log-ip-options "${SSH_CLIENT%% *}" --syn

但我希望变量 ${SSH_CLIENT%% *} 是动态的而不是静态的。

我想要记录这个,因为我想知道具有 ssh 会话的用户是否打开了另一个 ssh 会话(弹跳 ssh)

答案1

对于传出连接,例如:

sudo iptables -I OUTPUT -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "Outgoing SSH connection "

检查日志条目:

less /var/log/kern.log

如果重新启动,iptables 配置将消失。使用以下命令保存配置:

sudo iptables-save > /etc/iptables.rules
sudo nano /etc/NetworkManager/dispatcher.d/01firewall

粘贴此脚本:

if [ -x /usr/bin/logger ]; then
        LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler"
else
        LOGGER=echo
fi

case "$2" in
        up)
                if [ ! -r /etc/iptables.rules ]; then
                        ${LOGGER} "No iptables rules exist to restore."
                        return
                fi
                if [ ! -x /sbin/iptables-restore ]; then
                        ${LOGGER} "No program exists to restore iptables rules."
                        return
                fi
                ${LOGGER} "Restoring iptables rules"
                /sbin/iptables-restore -c < /etc/iptables.rules
                ;;
        down)
                if [ ! -x /sbin/iptables-save ]; then
                        ${LOGGER} "No program exists to save iptables rules."
                        return
                fi
                ${LOGGER} "Saving iptables rules."
                /sbin/iptables-save -c > /etc/iptables.rules
                ;;
        *)
                ;;
esac

并使其可执行:

sudo chmod +x /etc/NetworkManager/dispatcher.d/01firewall

更多信息日志记录NetworkManager 启动时的配置

相关内容