【iptables】用iptables结合rsyslog,实现对源ip的日志记录
一、实验背景用iptables做端口转发,希望能记录转发的源IP到日志文件中。二、实验环境虚拟机:test03 IP:192.168.124.5模拟客户端访问者虚拟机:test01 IP:192.168.124.6模拟跳板机转发服务器虚拟机:test02 IP:192.168.124.7模拟后端服务器在test02后...
一、实验背景
用iptables做端口转发,希望能记录转发的源IP到日志文件中。
二、实验环境
虚拟机:test03 IP:192.168.124.5 模拟客户端访问者
虚拟机:test01 IP:192.168.124.6 模拟跳板机转发服务器
虚拟机:test02 IP:192.168.124.7 模拟后端服务器
在test02后端服务器上安装httpd并开启80端口,通过iptables在test01跳板机转发服务器设置防火墙策略,实现客户端访问跳板机的8080端口,跳转至后端服务器的80端口。
192.168.4.5---->192.168.124.6:8080---->192.168.124.7:80
在跳板机转发服务器上生成单独的iptables日志以记录客户端ip(源ip)。
三、实验操作
在test1跳板机转发服务器上
# iptables -A FORWARD -P ACCEPT
# iptables -t nat -A PREROUTING -p tcp -d 192.168.124.6 --dport 8080 -j DNAT --to-destination 192.168.124.7:80
通过跳板机访问后端服务80端口的信息都将被记录
# iptables -t nat -A POSTROUTING -p tcp --dport 80 -j LOG --log-level 4 --log-prefix seatalk2
# iptables -t nat -A POSTROUTING -j MASQUERADE
开启内核转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
在test3客户端服务器上
浏览器测试访问 http://192.168.124.6:8080
在test1跳板机转发服务器上
开启iptables日志
# vim /etc/rsyslog.conf
##################################
kern.warning /var/log/iptables.log
###################################
# systemctl restart rsyslog
浏览器测试访问跳板机8080端口,在test01跳板机转发服务器上动态查看日志内容
# tail -f /var/log/iptables.log
四、日志处理
通过时间来判定访问源地址
# awk '{print $1,$2,$3,$9}' /var/log/iptables.log
统计源ip出现次数
#awk '{print $1,$2,$3,$9}' iptables.log | awk -F= '{print $2}' | awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' | sort -n |column -t
如果后端主机要获取源ip的话可以通过获取跳板机日志的方式来实现,通过比对后端访问日志的时间和跳板机时间来确定源ip。
服务器之间的时间同步显得特别重要。
后端httpd服务的访问日志 access_log
跳板机转发服务器上的iptables日志
五、参考
Linux上开启独立iptables日志
https://blog.51cto.com/babyshen/1966077
开启iptables日志管理 ,记录NAT信息
http://blog.sina.com.cn/s/blog_6d51d1b70101etc8.html
开启iptables的日志管理
https://blog.csdn.net/chinalinuxzend/article/details/1765259?utm_source=blogxgwz1
更多推荐
所有评论(0)