是否可以更改 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