IPv6에서 SSH Brute Force 공격 차단


10

최근에 IPv6에 연결된 일부 서버에서 작업해야했으며 fail2ban에 IPv6 지원이없고 denyhost도 없다는 사실에 놀랐습니다. Google에서 검색하면 사람들이 일반적으로 권장하는 것으로 나타났습니다.

  • IPv6를 통한 SSH 로그인 비활성화 (나를위한 해결책은 아님)
  • 암호 인증없이 서버에서 개인 / 공개 키 인증 만 사용 (작동하지만 많은 공격으로 인해 서버에 많은 처리 성능이 필요하거나 DDoS를 통해 서버를 사용하지 못할 수도 있음)
  • ip6tables를 사용하여 동일한 IP의 연속 공격 차단
  • IPv6를 지원하는 sshguard 사용

내가 지금까지 수집 한 것에서 IPv6의 주소 금지는 ISP가 사용자에게 단일 주소 (/ 128)를 제공하지 않고 전체 서브넷 (현재 / 48을 가지고 있음) 때문에 IPv4와 약간 다릅니다. 따라서 단일 IPv6 주소 금지는 공격에 효과적이지 않습니다. 공격 감지에서 ip6tables 및 sshguard blocking 서브넷의 주제에 대해 높고 낮게 검색했지만 정보를 찾지 못했습니다.

sshguard가 IPv6 공격에서 서브넷을 금지하는지 아는 사람이 있습니까?
IPv6 공격에서 서브넷을 금지하기 위해 ip6tables 구성을 만드는 방법을 아는 사람이 있습니까?
아니면 내가 이미 찾은 것보다 공격을 완화하는 더 좋은 방법을 아는 사람이 있습니까?

추신 : 나는 시스템에서 CentOS 7을 사용하고 있습니다.


3
IPv6 지원을 추가하는 fail2ban에 대한 자세한 정보는 github.com/fail2ban/fail2ban/issues/39를 참조하십시오 . 서브넷 차단 문제로 인해 추가 구현이 지연되는 것 같습니다 (실제로 우리에게서 멀어 질 것 같습니다 ...).
John WH Smith

iptables의 속도 제한 / 금지 규칙. 그것에 대한 질문을 바꾸고 두 명의 담당자가 정확하게 대답해야합니다.

이것은 가상의 문제입니까? 몇 대의 서버에서 무차별 대입 시도 로그를 살펴 보았고 모든 서버는 IPv4를 통해 시도되었습니다. 그리고 서버 측에서 암호 인증을 사용하지 않도록 설정하려는 시도로 인해 서버에 너무 많은 부하가 걸리지 않았습니다.
kasperd

1
@kasperd IPv6에서 하루에 수천 번의 시도를했기 때문에 가상의 문제는 아닙니다. 서버 주소는 사이트를 호스팅하기 때문에 공개이므로 매우 큰 문제입니다.
DarthRevan13

@ user123418 나는 질문의 제목을 그대로 두겠습니다. ip6tables의 규칙 대 규칙 때문에 sshguard와 같은 것을 선호합니다. 다음 주에 아무도 대답하지 않으면 질문을 변경하겠습니다.
DarthRevan13

답변:


4

서버를 공격하려면 먼저 IP 주소를 알고 있어야합니다. IPv6을 사용하면 선택할 수있는 주소가 너무 많아 IP 범위를 스캔하여 올바른 주소를 찾는 것이 불가능합니다.

즉, 인터페이스에 서로 다른 두 개의 IPv6 주소를 할당 할 수 있습니다. 사이트의 도메인 이름이 항상 같은 IP 주소를 가리 키도록하고 sshd가 새로 할당 된 IP 주소에서만 수신하도록합니다.

변경 후 사이트의 도메인 이름과 IP 주소를 알고 있으면 공격자가 sshd에 액세스 할 수 없습니다.

ssh를 사용하여 연결할 때 보조 호스트 이름을 사용해야합니다. 이 호스트 이름은 IPv6 주소보다 훨씬 더 엔트로피를 가질 수 있습니다. 63 개의 영숫자를 사용하면 ssh의 호스트 이름을 추측 할 수 없습니다.

누군가 sshd에 사용 된 IPv6 주소를 찾으면 sshd를 새 IPv6 주소로 옮기고 AAAA 레코드를 업데이트하면됩니다. 그런 다음 그들은 다시 시작해야합니다.

합법적 인 ssh 사용자가 호스트 이름 및 / 또는 IP 주소를 유출 할 우려가있는 경우, 각 사용자가 ssh로 액세스 할 수 있도록 다른 호스트 이름을 작성할 수 있습니다. 처음에는 업데이트 할 단일 AAAA 레코드 만 있도록 모든 호스트를 단일 호스트 이름으로 CNAME합니다.


현재 가지고있는 것보다 낫지 만 내가 찾고있는 것보다는 그렇지 않습니다. 어쨌든 고마워
DarthRevan13

0

좋은 소식은 fail2ban이 최근 IPv6에 대한 지원을 발표 했다는 것 입니다.

데비안 IPv6 서버의 경우이 튜토리얼 을 따르는 것이 좋습니다 .

CentOS IPv6 서버의 경우 여기 에서 다운로드 한 다음 그에 따라 버전 번호를 바꾸어 다음 명령을 실행 하는 것이 좋습니다 .

tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install

sshd에 대한 감옥이 /etc/fail2ban/jail.local 에서 활성화되어 있는지 확인하십시오. 예를 들면 다음과 같습니다.

[sshd]
enabled=1

1
fail2ban에있는 사람들이 한 일에 감탄하지만 여전히 충분하지 않습니다! 변경 로그 github.com/fail2ban/fail2ban/blob/0.10/ChangeLog 에 따라 모든 기능이 IPv6 프로토콜에서 지원 되는 것은 아니며 서브넷 금지에 대한 지원은 아직 없습니다. github.com/fail2ban/fail2ban/issues/927 모든 ISP는 고객에게 하나의 IPv6 주소 만 제공 할 것이 아니라 전체 서브넷을 제공하므로 IPv6. 이것이 사실이라면 생산 기계는 지금 ​​fail2ban을 사용해서는 안됩니다! 이 페이지는 많은 사람들이 방문하기 때문에이를 반영하여 답변을 변경하십시오.
DarthRevan13
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.