강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

소스 주소(source address)로 필터링

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

소스 주소(source address)로 필터링





 

다음은 소스 주소나 목적지 주소로 필터링 할 순서이다.

 

 

 

 

정상적인 상황에서 공용 네트워크인 인터넷에서는 존재할 수 없는 비정상적인 소스 IP들을 필터링 함으로써 IP 주소를 위조하는 서비스거부공격 등에 대비할 수 있다.

 

 

 

 

사실상 적지 않은 서비스거부공격이 존재하지 않는 소스 IP로 위조한 형태가 많이 있는데



아래는 필자가 운영하는 한 라우터에서 일정기간동안 비정상적인 소스 IP에 대해 access-list로 차단 설정한 후에 모니터링 한 결과이다.

 

 

 

 

결과를 보면 실제로 위조된 IP로 적지 않은 시도가 있었음을 알 수 있다.

 

 

 

 

 

deny ip 127.0.0.0 0.255.255.255 any (2538 matches)

deny ip 10.0.0.0 0.255.255.255 any (45679 matches)

deny ip 172.16.0.0 0.15.255.255 any (69907 matches)

deny ip 192.0.2.0 0.0.0.255 any (10 matches)

deny ip 169.254.0.0 0.0.255.255 any (17556 matches)

deny ip 192.168.0.0 0.0.255.255 any (195349 matches)

 

 



방화벽 자기 자신을 소스로 하는 IP


 

인터넷에 연결된 방화벽의 외부 인터페이스(통상적으로 eth0)를 통해 방화벽에 할당된 공인 IP를 소스 주소로 해서 방화벽으로 들어오는 트래픽은 위조된 트래픽이다.

 

 

 

 

따라서 이러한 트래픽은 차단하여야 한다.

 

 

 

 

이와 관련하여 예전에 “land attack”이라는 서비스거부공격이 있었는데, 이는 소스IP를 대상 시스템의 IP로 위조한 패킷 즉 소스와 목적지 IP가 동일한 패킷을 발송하여 시스템 내에서 무한루프가 돌아 결국 시스템을 마비시키도록 하는 공격이었다.

 

 

 

 

요즘은 대부분의 OS에서 이 부분에 대한 취약성이 패치되어 취약한 시스템은 별로 없을 것이다.

 

 

 

 

그러나 일부 응용프로그램의 경우 오작동을 할 수 있으므로 차단하는 것이 좋다.

 

 

 

 

여기에서 $IP_ADDR은 방화벽 자체의 IP이다.

 

$IPTABLES -A INPUT -i eth0 -s $IP_ADDR -j DROP


 

 

만약 방화벽에서 자기 자신으로 접속할 때에는 외부 인터페이스인 eth0을 통하지 않고 루프백(loopback) 인터페이스인 lo로 통신한다.

 

 

 

 

이를테면 eth0211.47.68.21인 서버에서 “iptables -A INPUT -p tcp -s 211.47.68.21 --dport 25 -j LOG”와 같이 설정한 후 로컬에서 211.47.68.2125번 포트로 접속하면 아래와 같은 로그가 생성되는데, 로그의 첫 줄에 IN=lo라는 것을 확인할 수 있다.

 

IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=211.47.68.21 DST=211.47.68.21 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=50649 DF PROTO=TCP SPT=32817 DPT=25 WINDOW=32767 RES=0x00 SYN URGP=0

 

 



사설 IP 주소

 

IANA(http://www.iana.org/)에서 특별한 목적으로 사용하기 위해 예약해 둔 사설 IP 대역이 있다.

 

 

 

 

이러한 IP 주소는 RFC1918(http://www.ripe.net/db/rfc1918.html)에 명시되어 있는데



특별한 목적으로 사용될 뿐 공인 네트워크인 인터넷에서는 라우팅 될 수 없기 때문에 다음과 같이 사설 IP 주소를 소스로 하여 들어오는 트래픽은 위조된 트래픽이므로 차단하여야 한다.

 

 

 

 

 

 

A Class 사설 IP 대역을 소스로 하는 패킷을 거부한다.


$IPTABLES -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP

 

B Class 사설 IP 대역을 소스로 하는 패킷을 거부한다.


$IPTABLES -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP

 

C Class 사설 IP 대역을 소스로 하는 패킷을 거부한다.


$IPTABLES -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP

 

D Class 멀티캐스트 대역을 소스로 하는 패킷을 거부한다.

 

 

 

 

 

$IPTABLES -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP

 

예약된 E Class 대역을 소스로 하는 패킷을 거부한다.



$IPTABLES -A INPUT -i eth0 -s 240.0.0.0/5 -j DROP

 

 



루프백(loopback) IP 주소


 

루프백 IP 주소는 내부의 루프백 인터페이스(lo)를 통해서만 통신하기 때문에 루프백 주소를 소스로 해서 외부 네트워크를 통해 들어오는 트래픽은 위조된 트래픽이다.

 

 

 

 

실제로 일부 웜 바이러스의 경우 127.0.0.1을 소스로 하여 공격하는 경우도 있다.

 

 

 

 

 

루프백 IP 주소 대역을 소스로 하는 패킷을 거부한다.




$IPTABLES -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP

 




기타 예약된 IP 대역

 

IP 할당기관인 IANA에서 특별한 목적으로 미리 예약해 둔 IP 대역이 있다.

 

 

 

 

이러한 IP 대역은 아직 할당된 것이 아니므로 인터넷에서 라우팅 될 수 없다.

 

 

 

 

그러나 IP주소 사용이 계속 늘면서 수시로 IP할당이 이루어지고 있으므로 “IANA - Reserved”라고 되어 있는 미 할당된 대역을 필터링할 때에는 주의하여야 한다.

 

 

 

 

IANA에서 할당된 대역 및 예약된 대역에 대한 정보는 http://www.iana.org/assignments/ipv4-address-space를 참고하기 바란다.

 



기타 예약된 IP 대역을 거부한다.

 

0.0.0.0/8248.0.0.0/5은 예약된 IP 대역이며 169.254.0.0/16DHCP등에서 IP할당 전에 임시로 사용하는 Link Local Network이며 192.0.02.0/24TEST-NET 대역이다.



 

$IPTABLES -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP

$IPTABLES -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP

$IPTABLES -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP

$IPTABLES -A INPUT -i eth0 -s 248.0.0.0/5 -j DROP

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  73 명