111.111.111.111의 ping 작업을 /var/log/iptables.log에 기록하는 방법은 무엇입니까?

111.111.111.111의 ping 작업을 /var/log/iptables.log에 기록하는 방법은 무엇입니까?

내 운영체제: centos 7.

yum remove firewalld
yum install  -y iptables
yum install -y iptables-services

111.1111.111.111의 모든 핑을 iptables.log에 기록하고 싶습니다.

cat /etc/rsyslog.conf
kern.* /var/log/iptables.log
systemctl restart rsyslog

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG
iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP
service iptables save
service iptables restart

이제 111.111.111.111에서 내 vps로 핑을 보냅니다.

1. iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP일할 수 있다.

ping 104.223.65.117 
PING 104.223.65.117 (104.223.65.117) 56(84) bytes of data. ^C --- 104.223.65.117 
ping statistics --- 23 packets transmitted, 0 received, 100% packet loss, time 22003ms

2. iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG일을 할 수 없다

cat /var/log/iptables.log

거기에는 아무것도 없습니다. 111.111.111.111의 ping 작업을 /var/log/iptables.log에 기록하는 방법은 무엇입니까?

여기에 몇 가지 자료가 있습니다.dmesg 및 iptables

dmesg reads from the kernel log buffer. Since iptables uses kernel logging
facility, that is where iptables log records appear in the first place.
There is no way you can make iptables log entries not appear in dmesg.

이는 iptables 로그 정보를 지정된 파일에 쓸 수 없다는 의미입니까?
iptables 로그 정보는 다음 방법으로만 지정된 파일에 기록될 수 있습니다.

dmesg > /var/log/iptables.log

또는

dmesg >> /var/log/iptables.log

?

모든 정보를 /var/log/iptables.log에 자동으로 기록하는 또 다른 현명한 방법이 있습니까?

답변1

설정이 어떤 역할을 하는지 살펴보겠습니다.

iptables -N LOGGING

LOGGING(나중에 어떤 규칙도 얻지 못할)이라는 새 체인을 만듭니다.

iptables -A INPUT -j LOGGING

입력 체인을 통과하는 모든 패킷은 로 점프합니다 LOGGING. 이 규칙 이후의 모든 규칙은 LOGGING체인에서 돌아오지 않기 때문에 무시됩니다 .

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG

이 규칙은 위 점프 이후에 삽입되며 절대 실행되지 않습니다.

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j DROP

로깅 후 패킷을 삭제하려고 합니다. 이는 응답이 생성되지 않음을 의미합니다. 이것이 당신의 의도인지 확실하지 않습니다.


그러니 하지 마세요. 다음을 iptables -F INPUT사용하여 이러한 모든 규칙을 지우십시오.

iptables -A INPUT -p icmp --icmp-type 8 --source 111.111.111.111 -j LOG

다른 사람은 없습니다. 이제 ping을 실행하여 시스템 로그에 나타나는지 확인하십시오(내 시스템에서는 나타남).

꼭 필요한 경우 나중에 핑을 제거하는 규칙을 추가할 수 있습니다.

답변2

vps 유형이 중요합니다.
내 vps 유형은 openvz입니다.
로그 파일은 dmesg를 통해 표시되며 클라이언트 로그 파일은 자동으로 기록되지 않습니다. 이는 openvz의 버그입니다.
내 vps를 kvm vps로 변경하고 문제가 해결되었습니다.

관련 정보