검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : 7 Uncommon uses of Iptables
관련 문서 : IptablesHowTo

  여러 소스를 통해 수집한 봇넷, 스패머, 브루트포서 등 악성 호스트의 IP 리스트를 제공하는 infiltrated.net이라는 곳이 있습니다. 참고로 저 사이트의 해당 리스트는 1시간에 1번씩 업데이트된다고 합니다. 이 글은 이곳에서 리스트를 끌어와 iptables에 적용시키는 팁입니다. 나중에 반전이 있으니 너무 흥미진진하게 읽진 마세요.

  일단 아래는 awk를 이용하여 IP 목록을 iptables 문법에 맞게 적용시킨 명령어를 화면에 출력하는 명령어입니다. 그냥 화면에만 출력하는 겁니다.
wget -qO - http://infiltrated.net/blacklisted|awk '!/#|[a-z]/&&/./{print "iptables -A INPUT -s "$1" -j DROP"}'
  그냥 화면에만 출력하는 거기 때문에 실제로 적용하려면 맨 뒤에 '| sh'을 붙여 화면에 출력하는 대신 진짜로 실행하게 만들어야 합니다. 단! iptables를 사용하려면 루트 권한이 필요하다는 걸 잊으시면 안 됩니다. 따라서 애초에 루트로 사용자를 변경한 후 실행하시거나 위 명령문 앞의 'iptables' 앞에 'sudo'를 추가로 넣어주셔야 합니다. 그럼 아래와 같이 되겠지요.
wget -qO - http://infiltrated.net/blacklisted|awk '!/#|[a-z]/&&/./{print "sudo iptables -A INPUT -s "$1" -j DROP"}' | sh
  아니면 리다이렉션을 통해 파일로 만든 다음에 해당 파일을 루트 권한으로 실행하는 방법도 있겠습니다.
wget -qO - http://infiltrated.net/blacklisted|awk '!/#|[a-z]/&&/./{print "iptables -A INPUT -s "$1" -j DROP"}' > black.lst
sudo sh black.lst
  또한 리스트는 1시간마다 업데이트되므로 일정 시간마다 cron으로 업데이트시키는 것이 좋겠지요.

  그런데 이 팁은 문제가 많습니다. 먼저 적용이 너무 오래 걸린다는 겁니다. 제가 실제로 실행을 해본 결과, 적용에 대략 1시간이 걸리더군요. 아무리 적용하는 줄이 4만 줄을 넘고 작업에 CPU를 많이 사용하지 않더라도 이렇게 오래 걸리면 사용하기 곤란하지요. 한 명령줄에 여러 IP를 등록하도록 스크립트를 좀 수정하면 훨씬 빨라질 것 같기는 한데 문제는 속도뿐만이 아닙니다. 몇 일 사용해보고 원문에 리플을 단 사람의 말에 따르면 자신이 가진 1달 분량의 데이터(어떤 데이터가 어느 정도인지 자세히 밝히진 않았습니다)와 해당 사이트의 리스트를 비교 분석한 결과 리스트 중 겨우 18개(그 중 스팸 메일 관련이라고 할 수 있는 25번 포트 건수는 겨우 2건)만이 일치했다고 합니다. 물론 그 사람이 가진 악성 호스트 데이터가 얼마나 있었는지 알 수 없으므로 그걸 통해 제가 효용성을 평가하기엔 무리가 있습니다. 하지만 그뿐만이 아닙니다. 며칠 후 또 리플을 달았는데 방화벽의 CPU 사용률이 100%를 찍기 시작했다고 합니다. 따라서 전 이 팁을 비추합니다 -_-;; 애초에 요즘 시대에 단순 IP 필터링만으로 뭘 막기엔 한계가 있죠. 그냥 이런 것도 있다는 정도로만 알고 넘어가는 것이 좋겠습니다.

2010/12/02 19:28 2010/12/02 19:28