다음 명령으로 모든 Tor 노드를 차단했습니다.
sudo iptables -A INPUT -s $ip -j DROP
나는 이와 같은 약 1,700 개의 IP 블록이 있다고 생각합니다.
이 명령을 사용하여 차단하는 것이 느릴 수 있다는 것을 읽었습니다. 이것이 사실입니까? 그렇다면 더 좋은 대안은 무엇입니까?
답변
Jan Engelhardt (OpenSUSE 커뮤니티에서 커널 패키징에 참여한 사람)에 따르면 :
32 비트 환경에 대한 최대 규칙 수의 이론상 한은 약 3 천 8 백만
그러나 거대한 규칙을 가진 실제 병목 현상은 메모리입니다. /proc/vmalloc
이러한 규칙을 적용 할 때 컴퓨터 속도를 크게 저하시키는 스와핑을 피하기 위해 메모리를 모니터링해야합니다 .
이미 언급했듯이 IPSet 은 이러한 과도한 차단 규칙을 관리하는 것이 좋습니다. 새 규칙을 할당하고 다음과 같은 효과적인 방식으로 이전에 할당 된 규칙을 삭제할 수 있습니다.
# Create the new set and add the entries to it
ipset -N new-set ....
ipset -A new-set ....
...
# Swap the old and new sets
ipset -W old-set new-set
# Get rid of the old set, which is now under new-set
ipset -X new-set
답변
속도가 느리고 규칙에 따라 하드웨어에 문제가 없을 수 있습니다. 더 좋은 대안은 세트를 참조하는 ipsets 및 iptables 규칙을 사용하는 것입니다. Ipsets 는 주소와 네트워크를 효율적인 데이터 구조로 저장하여 기본 넷 필터 처리와 비교할 때 훨씬 더 빨리 검색 할 수 있습니다.