대규모 IP 차단이 서버 성능에 영향을 미치나요?

대규모 IP 차단이 서버 성능에 영향을 미치나요?

게임 서버가 있는데 누군가가 봇으로 스팸을 보내고 있습니다. SpamBot 클라이언트는 UDP 연결을 사용하여 내 서버와 핸드셰이크합니다. 이는 프록시 목록을 통해 수행됩니다. 기본적으로 Spambot 클라이언트는 많은 UDP 패킷을 내 서버로 보내고 봇을 사용하여 스팸을 보냅니다.

이제 나에게 스팸을 보내는 사람들이 사용하는 6개의 대규모 프록시 목록이 생겼습니다. 모든 목록의 모든 IP를 차단하는 쉘 스크립트를 작성할 수 있습니다. 각 IP는 새 줄에 있으므로 for 루프를 사용하면 쉽게 수행할 수 있습니다.

문제는 서버 성능이 걱정된다는 점입니다. 15,000개의 IP 주소를 차단하면 서버 성능에 영향을 미치나요?

현재 저는 CentOS 7을 사용하고 있습니다. IP 테이블이 좋은 접근 방식인지 아니면 어떤 다른 대안을 시도해야 하는지 알려주실 수 있나요? 명령어도 적어주세요. 내 서버가 이러한 IP 주소에 대한 응답을 중지하고 해당 IP 주소에 대한 연결을 설정하지 않기를 원합니다.

답변1

IP 수가 너무 많으면 다음을 사용해야 합니다.ipsets 모듈. ipset은 iptables가 반응할 수 있는 데이터 세트를 생성합니다.10~1000개의 항목을 쉽게 처리할 수 있습니다..

당신이 가지고 있는지 확인하십시오EPEL 저장소다음을 통해 ipset을 활성화하고 설치하십시오.

yum install ipset

한 가지 예:

ipset -N blockedip iphash

"iphash" 형식으로 "blockedip"이라는 컬렉션을 만듭니다(다른 형식이 있지만 이 형식은 IP에만 작동합니다).

ipset -A를 사용하면 데이터 세트에 데이터(이 경우 IP)를 추가할 수 있습니다.

ipset -A blockedip 192.168.1.1
ipset -A blockedip 192.168.1.2

등...

또는 IPv4 주소 목록이 한 줄에 하나씩 있다고 ipset가정하고 IP 주소당 단일 호출을 실행 하지 않고 일괄적으로 생성합니다 .big-file.list

ipset -N blockedip iphash
sed 's/^/add blockedip /' < big-file.list | ipsec restore

다음 iptables 명령을 사용하면 이 그룹의 모든 소스에서 모든 패킷을 삭제하도록 커널에 지시할 수 있습니다.

iptables -A INPUT -m set --set blockedip src -j DROP

답변2

15,000개의 서로 다른 IP 주소에 대해 이야기하고 있다면원하지 않는다iptables각 주소에 대해 별도의 규칙을 사용하고 싶습니다 . 이렇게 하면 네트워크 처리량이 줄어듭니다.

대신 단일 사용을 고려해야 합니다.IP 설정그런 다음 15,000개의 주소를 여기에 입력하세요.

ipset create spambots iphash
iptables -A INPUT -m set --match-set spambots src -j DROP

while read ip; do ipset add spambots "$ip"; done < ip_addresses.txt

delIP 세트, flush​​전체 항목 세트에서 개별 주소를 제거(제거)하거나 destroyIP 세트를 완전히 삭제할 수 있습니다 .

답변3

다음 형식의 입력 파일 "ips.txt"가 제공됩니다.

1.2.3.4
2.3.4.5

그런 다음 이 스크립트는 DROP 대상을 사용하여 모든 IP 주소를 iptables 입력 체인에 추가하므로 일치하는 패킷이 삭제됩니다.

 cat ips.txt| while read a; do echo $a;  iptables -I INPUT -p udp -s $a -j DROP ; done

많은 IP를 추가하려고 할 때, 아래 예시와 유사하게 IP를 축적해 보세요.

1.2.3.4
1.2.3.5

~이 되다

1.2.3.0/28

또는 유사합니다. 이 축적은 스크립트를 통해서도 수행할 수 있습니다.

답변4

또 다른 방법은 소위 라우팅 블랙홀을 사용하여 이러한 IP를 차단하는 것입니다. ip route add blackhole 8.8.8.8/32 이는 위 주소에 대해 데이터를 어디로도 보내지 않는 경로가 설정되어 있음을 의미합니다. 일반 iptables 솔루션보다 더 나은 성능을 발휘하는지 여부는 서버 구성에 따라 다릅니다. 프로덕션 시스템에 배포하기 전에 두 가지 접근 방식을 모두 벤치마킹해야 한다고 생각합니다.

관련 정보