
Rust를 이용한 자동화 네트워크 보안: 포트 스캐너 탐지 및 차단
이 도구는 Linux 커널의 nfnetlink_queue 기능의 역량을 시연하기 위해 만들어졌습니다.
더 자세한 정보는 이 글을 읽어보세요.
패킷이 커널에 의해 드롭되기 전에, 해당 패킷은 추가 처리를 위해 이 도구로 전송됩니다. 원격 피어가 머신의 너무 많은 닫힌 포트에 연결을 시도하면, 네트워킹 스택의 매우 초반부(패킷 조각화 해제나 연결 추적이 발생하기 전)에 해당 IP 주소에 대한 드롭 규칙을 삽입하여 자동으로 차단됩니다.
차단된 IP는 일정 시간이 지나면 자동으로 차단이 해제됩니다. 이는 다음과 같은 경우에 유용합니다:
이 도구가 작동하려면 nftables 입력 체인 끝에 다음 구문을 추가해야 합니다:
queue num 0-3 fanout
그런 다음 nftables 서비스를 재시작하세요:
sudo systemctl restart nftables
이 도구를 소스에서 설치하려면 안정적인 Rust 툴체인이 설치되어 있어야 합니다. 이를 위해 rustup을 사용할 수 있습니다.
그런 다음 다음 명령어를 실행하세요:
make
sudo make install
set 기능을 활용하여 차단된 IP 조회를 더 빠르게 수행합니다.