Ben's

iptables hex-string 이용 본문

리눅스/iptables

iptables hex-string 이용

Ben Ko (SINCE 2013) 2013. 1. 16. 16:41
728x90

* 일반 iptables 의 STRING match 모듈은 웹로그에 찍히는 패턴만 등록이 가능하기 때문에 방어가 제한적입니다.
   그러나 아래와 같은 경우에서 hex-string 모듈을 이용하면 방어가 가능합니다.

 

61.98.219.208 - - [23/Jun/2009:11:55:26 +0900] "GET /images/700.exe HTTP/1.1" 403 300 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"

 

T 61.98.219.208:38333 -> xxx.xxx.xxx.xx:80 [AP]
  GET /images/700.exe HTTP/1.1..Accept: */*..Cache-Control: no-cache..Ryeol-Magic: My Magic Header..User-Magic: User's Magic Header..User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)..Host: rkdals21sdfdsf.nhkotest.com..Connection: Keep-Alive....


* 위와 같은 유형일때 아래와 같은 방법으로 방어 하시면 됩니다.

iptables -I STRING_MATCH -m string --hex-string "|5279656f6c2d4d616769633a204d79204d6167696320486561646572|" --algo kmp --to 65535 -j RECENT

 

    4276  1231788 RECENT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           STRING match "Ryeol-Magic: My Magic Header" ALGO name kmp TO 65535

 

* 참고링크(converter)
http://www.dolcevie.com/js/converter.html