과거에 했던 것처럼 CentOS 7에서 IP 테이블을 설정하려고 하는데 어떤 이유로 삭제된 패킷을 원하는 대로 기록할 수 없습니다. IP 테이블 구성에는 다음이 있습니다.
*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# Log and drop packets that don't match the above rules
-N LOGGING
-A INPUT -j LOGGING
-A OUTPUT -j LOGGING
-A LOGGING -j LOG --log-prefix "IPTables-Dropped: " --log-level 6
-A LOGGING -j REJECT
-A INPUT -j REJECT
-A OUTPUT -j REJECT
COMMIT
보시다시피 포트 22(SSH)만 열려 있으므로 HTTP 요청을 시도하면 방화벽이 이를 허용하지 않기 때문에 요청을 차단할 것이라고 예상했지만(그렇습니다) 또한 var/log/messages에 IPTables-Dropped
표시되지 않는 로그 줄이 표시됩니다 .
또한 /etc/rsyslog.conf를 업데이트하고 추가해 보았지만 kern.warn /var/log/messages
아무런 차이가 없습니다(rsyslog 서비스를 다시 시작했습니다).
답변1
규칙의 순서는 중요합니다.
이 규칙은 다음과 같습니다.
-A INPUT -j REJECT --reject-with icmp-host-prohibited
이 규칙 이전에는 다음과 같습니다.
-A INPUT -j LOGGING
실행 방지: 로깅이 없습니다.
다른 체인도 마찬가지다.
iptables-save
출력 규칙의 "새로 고침" 버전을 사용하고 그에 따라 순서를 편집하면 됩니다 .
또한 읽어보세요이 링크REJECT
DROP
INVALID 상태를 먼저 사용하지 않는 (드물게) 문제에 대해 설명합니다 .