Linux
udp 53 무작의 질의
CHOMAN
2019. 10. 24. 17:22
cat /var/log/messgaes
Oct 24 17:16:52 ip-172-31-35-71 named[23893]: client @0x7fb1580c6370 101.xx.xx.159#40860 (PEACECORPS.GOV): query (cache) 'PEACECORPS.GOV/ANY/IN' denied
정상적인 질의로는 보이지 않음 (PEACECORPS.GOV) 는 관련없는 도메인임
기본적으로 /etc/named.conf 에 리커즌은 노로 무조건
/etc/named.conf
recursion no;
logging {
channel default_debug {
file "/var/log/queries";
severity dynamic;
};
불법 접근 아이피 수집
/root/depend.sh
#!/bin/bash
#PATTERN="PEACECORPS.GOV"
PATTERN="denied"
cnt=1
while (( "${cnt}" < 29 )); do
DROPIP=`tail -n 1 /var/log/queries | grep $PATTERN | awk '{print $3}' | sed "s/#.*$//g"`
DROPIP1=`ipset -L DROP_IP | grep $DROPIP`
if [ ! -z "$DROPIP" -a "$DROPIP" != " " ] && [ "$DROPIP1" != "$DROPIP" ]; then
/sbin/ipset -A DROP_IP $DROPIP
fi
(( cnt = "${cnt}" + 1 ))
sleep 2
done
다시 수정 (스크립트)
#!/bin/bash
PATTERN="denied"
cnt=1
while (( "${cnt}" < 29 )); do
DROPIP=`tail -n 1 /var/log/queries | grep $PATTERN | awk '{print $3}' | sed "s/#.*$//g"`
ipset -A DROP_IP $DROPIP -quiet
(( cnt = "${cnt}" + 1 ))
sleep 2
done
crontab
* * * * * root sh /root/depend.sh
logrotate 설정
/etc/logrotate.d/named (아래 내용 추가)
/var/log/queries {
compress
create 0644 named named
daily
dateext
missingok
notifempty
rotate 30
sharedscripts
postrotate
/usr/sbin/rndc reconfig > /dev/null 2>/dev/null || true
endscript
}
ipset 설정은 아래 링크 참고
https://kensei.co.kr/980
ipset 개수가 65535개인가 여튼 제한이 있는걸로 알고 있는데 수시로 확인해서 초기화 해주자
ipset 초기화
ipset -F DROP_IP
일단 DNS 는 정상적인 질의가 아니므로 refuse 처리하지만 패킷은 계속 발송되는 상황
named.conf 에서 정상적인 질의가 아닌 경우 응답하지 않는 옵션이 없다면
방화벽에서 차단해야지만 불필요한 아웃바운드 트래픽이 발생하지 않으며 named 의 부하도 떨어짐