설정 설명
소규모 공격, 플러딩, 비밀번호 추측 공격으로부터 보호하기 위해 웹 서버 서비스를 구성합니다. 이러한 유형의 공격은 웹 서비스의 부하를 증가시키고, 서버 리소스를 소비하며, 리소스 고갈 및 부족으로 인해 서비스 거부를 유발하도록 설계되었습니다. 이 가이드를 사용하면 서버 수준에서 다양한 유형의 공격에 대해 기본 보호를 얻도록 서버를 구성할 수 있습니다. 구성 예에서는 Centos 7 운영 체제를 사용했습니다.
DDOS공격방지 서비스와 차이점은 무엇인가요?
DDOS 공격 방지 서비스는 보호된 IP 주소의 형태로 제공됩니다. 특수 장비를 통과하여 네트워크 장비를 비활성화하도록 설계된 중대형 공격으로부터 보호합니다. 그러나 웹 서버에 액세스하는 봇 수가 적기 때문에 단순히 서비스를 인식하지 못하기 때문에 해를 끼칠 수도 있는 사소한 범람으로부터 서비스를 보호하지는 않습니다. 서버 보호에 대한 올바른 접근 방식의 경우 홍수 방지 및 DDoS 공격 방지라는 두 가지 규칙이 모두 적용됩니다. 여기에서는 홍수로부터 웹 서버를 보호하기 위해 웹 서버를 구성하는 방법을 설명합니다.
웹 서비스
선택한 웹 서버에 따라 설정 방법과 유형이 다릅니다. 우리는 가장 인기 있는 웹 서비스를 나열하고 각 서비스에 대한 설정을 설명했습니다.
BruteForce 공격으로부터 보호
이러한 유형의 공격은 웹 서비스의 부하를 크게 증가시킵니다. 공격자는 사이트 관리 영역에 로그인 양식에 대한 링크를 제공하고 이를 여러 봇에서 실행합니다. 이 봇은 get 및 post 메소드를 사용하여 비밀번호를 추측하기 시작합니다. 로그에는 동일한 IP 주소에서 발생한 수백, 수천 개의 요청이 표시됩니다. 이로 인해 상당한 부하가 발생하고 웹 서비스가 실패할 수 있습니다. 보호를 위해 동일한 링크에 대한 요청 제한이 10분 이내에 초과되면 일정 시간 동안 IP 주소를 차단하는 Fail2Ban 서비스를 사용합니다. 우리의 경험과 관찰에 따르면 이러한 유형의 공격을 통해 서비스는 서버에 부하를 주지 않고 짧은 시간 내에 약 5000개의 IP 주소를 차단할 수 있습니다.
SYN Flood 공격으로부터 보호
이러한 유형의 공격은 일반 웹 사이트 방문자의 요청을 에뮬레이트하지만 실제 클라이언트와 달리 봇은 서버의 응답을 기다리지 않고 수천 개의 요청이 있을 때 웹 서비스에 새로운 요청을 보내면 서비스가 정지됩니다. 요청에 대한 응답을 중지합니다. 이러한 유형의 공격은 보호되지 않은 서버를 비활성화하는 데 큰 리소스가 필요하지 않기 때문에 매우 널리 사용됩니다. ddos deflate 서비스는 이러한 유형의 공격을 완벽하게 반영합니다.
연결 제한 설정
여기에서는 모든 서비스에 대해 하나의 IP 주소로부터의 연결 수에 대한 제한을 설정해야 하는 방화벽 규칙에 대해 설명합니다. 이 규칙은 커널 설정에 제한이 설정된 스택 오버플로를 방지하는 데 도움이 됩니다. Centos의 iptables에서 설정을 수행하겠습니다.
과부하 및 부하 평균 증가로부터 보호
어떤 식으로든 다양한 유형의 공격이 있으며 보호 서비스가 작동할 시간이 없거나 모든 필터가 설정되지 않은 경우 공격 중 서버의 로드가 증가하고 궁극적으로 서버에 대한 액세스를 잃게 됩니다. 응답이 중지됩니다. 서버가 공격을 받았을 때 액세스 권한을 잃지 않으려면 부하가 높은 경우 필요한 서비스를 다시 시작하고 다른 작업을 수행하는 스크립트를 설정하는 것이 좋습니다.
결론
이러한 유형의 설정을 사용하면 성능 저하 없이 대부분의 소규모 DDoS 공격을 막을 수 있으며, 가능한 비밀번호 추측으로부터 사이트를 보호할 수도 있습니다. 이 설정은 한 번만 수행해야 합니다. 잠시 후 로그 파일을 확인하여 logrotate가 작동 중이고 파일이 5-10MB를 넘지 않는지 확인해야 합니다. 크기가 큰 경우, 데이터 양이 많아 Fail2Ban 서비스가 제대로 작동하지 않을 수 있습니다. 이 설정을 사용하면 프로세서와 메모리 리소스가 적은 서버라도 안정적으로 작동합니다. 또한 이메일로 알림을 받게 되며 어떤 IP 주소가 언제 차단되었는지 항상 알 수 있습니다.