방화벽 로그는 공격, 방화벽 규칙의 문제 파악, 그리고 여러분 네트워크 상의 비정상적인 행동을 알아낼 수 있는 필수적인 것 입니다. 여러분은 반드시 방화벽 설정에 로그가 만들어지도록 로그 규칙을 포함시키고, 로그 규칙은 어떠한 적용된 끝내기 규칙 (타겟을 가지고 ACCEPT, DROP, 또는 REJECT와 같이 패킷의 운명을 결정하는 규칙) 전에 반드시 오도록 해야 합니다. 예를 들어:
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "
로컬 기계에서 포트 80 번의 요청은 dmesg 내의 로그로 만들어지고 다음과 같이 보일 겁니다:
[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0
위의 로그는 또한 /var/log/messages
, /var/log/syslog
, 그리고 /var/log/kern.log
파일에도 나타납니다. 이 동작은 /etc/syslog.conf
파일을 적당하게 편집하거나, ulogd 를 설치/설정하고 LOG 대신에 ULOG 타켓을 사용하는 것으로 변경될 수 있습니다. ulogd 데몬은 사용자 공간의 서버이고 특별히 방화벽을 위한 커널에서 오는 로깅 지시를 듣고, 여러분이 원하는 어떠한 파일, 또는 심지어 PostgreSQL 과 MySQL 데이타베이스로 기록을 할 수 있습니다. 방화벽 로그를 알아보기 쉽게 꾸미는 것은 fwanalog, fwlogwatch, 또는 lire 같은 로그 분석 도구를 사용하는 것으로 간단해 질 수 있습니다.