Iptables/Firewalld를 사용하여 IP 차단

Iptables/Firewalld를 사용하여 IP 차단

저는 올해 두 번이나 중국의 만리방화벽(Great Firewall)의 DDos 공격을 받았습니다.

이제 다음에서 영역 파일을 다운로드합니다.http://www.ipdeny.com/ipblocks/.나는 이런 일을 하고 싶습니다:

  1. 누구든지 내 서버의 특정 포트에 연결하고 싶다면 들어올 수 있습니다.
  2. 중국에서 온 누군가가 내 서버의 다른 포트에 연결하려는 경우 모든 패킷을 삭제해야 합니다. 다른 나라의 누구든지 내 서버에 올바르게 연결할 수 있습니다.

어떡해?

Cloudflare CDN 무료 요금제를 사용하고 있지만 내 서버에서만 위 작업을 수행하고 싶습니다.

답변1

이를 사용하는 경우 iptables첫 번째로 일치하는 규칙이 반환됩니다. 예를 들어, http를 허용하고 중국의 다른 포트를 거부하려면 http 허용 규칙이 먼저 와야 합니다.

iptables -A INPUT -d myhost --dport 80 -j ACCEPT
iptables -A INPUT -m set --match-set china src -j DROP

ipset위 명령문을 사용하여 다음 명령을 사용하여 중국용을 생성 해야 합니다 .

ipset create china hash:net
while read line; do ipset add china $line; done < china.ipblock-file

답변2

Apache 모듈 사용을 방지하려면 다음을 시도해 볼 수도 있습니다.

MaxMindDBEnable On
MaxMindDBFile DB /path/to/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code

SetEnvIf MM_COUNTRY_CODE ^(CN|RU|DE|FR) BlockCountry
Deny from env=BlockCountry

관련 정보