it-swarm-ko.tech

ssh에 대한 무차별 대입 공격을 방지합니까?

Ssh 포트에 대한 무차별 대입 공격을 방지하기 위해 어떤 도구 또는 기술을 사용합니까? 보안 로그에서 ssh를 통해 다양한 사용자로 로그인하려는 수백만 번의 시도가 있음을 알았습니다.

이것은 FreeBSD 상자에 있지만 어디에서나 적용 할 수 있다고 생각합니다.

49
grieve

Rainer Wichmann의 해당 주제에 대한 좋은 게시물 입니다.

이 작업을 수행하는 방법에 대한 장단점을 설명합니다.

  • 강력한 비밀번호
  • RSA 인증
  • 'iptables'를 사용하여 공격 차단
  • Sshd 로그를 사용하여 공격 차단
  • Tcp_wrappers를 사용하여 공격 차단
  • 포트 노킹
25
paulgreg

fail2ban을 사용하면 구성 가능한 시간 동안 몇 번의 시도 실패 후 IP가 잠 깁니다.

이것을 암호 강도 테스트 (john (John the Ripper) 사용)와 결합하여 무차별 대입 공격이 성공하지 못하도록합니다.

39
Brent

당신이 할 수있는 작은 일은 DenyHosts와 같은 것을 사용하는 것입니다.

http://denyhosts.sourceforge.net/

내장 된 hosts.allow/hosts.deny를 사용하여 SSH 남용자를 차단합니다.

24
hernan43
  • 사용 된 포트 변경 ( Trent 언급)
  • 암호 대신 암호화 키 가 필요합니다. http://novosial.org/openssh/publickey-auth/
  • 블랙리스트 공격자 IP
  • 화이트리스트 우발적 인 블랙리스트를 방지하는 알려진 사용자입니다. (사무 엘라가 언급했듯이)
16
Chris Ballance

이러한 공격을 피하는 가장 쉬운 방법 중 하나는 sshd가 수신하는 포트를 변경하는 것입니다

15
trent

Chris가 지적했듯이 암호 대신 암호화 키를 사용하십시오.

그것에 추가하십시오 :

  • 가능하면 화이트리스트를 사용하십시오.

플로팅 퍼블릭 IP를 사용하는 사람 또는 위치는 몇 명이나 공용 ssh 연결에 실제로 액세스해야합니까?

유지 관리하는 공개 ssh 호스트 수와 일반 연결 기준을 좁힐 수 있는지 여부에 따라 몇 가지 외부 호스트에 대한 액세스를 제한하는보다 간단하고 유지 관리 가능한 구성 일 수 있습니다.

이것이 효과가 있다면 관리 오버 헤드를 단순화 할 수 있습니다.

12
samt

다른 좋은 제안 외에도, 정말 쉬운 방법은 속도 제한 수신 연결입니다. IP 당 분당 3 개의 연결로 제한 :

iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
11
sherbang

Sshd_config의 "AllowUsers"옵션을 사용하면 소수의 사용자 만 로그인 할 수 있습니다. 사용자 이름과 비밀번호가 정확하더라도 다른 모든 사용자는 거부됩니다.

사용자가 로그인 from 특정 호스트로 제한 할 수도 있습니다.

예 :

AllowUsers user1 [email protected]

이렇게하면 검색 공간이 줄어들고 실수로 배치되거나 활성화 된 기존 사용자를 피할 수 있습니다 (물론 비활성화해야하지만 SSH 기반 항목에 사용되는 것을 중지하는 쉬운 방법 임).

이것은 무차별 대입 공격을 완전히 막을 수는 없지만 위험을 줄이는 데 도움이됩니다.

6
David Gardner

PF와 같은 것을 사용하십시오 :

<ssh-brute> 테이블 지속
라벨 ssh_brute의 빠른 로그 차단
$ ext_if 프로토콜 tcp를 ($ ext_if) 포트 ssh 변조 상태로 전달하십시오.
(max-src-conn-rate 3/10, 과부하 플러시 글로벌)

3
CycyX

Port-knocking 는 이런 종류의 일을 막는 확실한 방법입니다. 약간 성 가시고 때로는 성가 시지만 문제가 사라집니다.

2
Luke

sherbang의 속도 제한 제안 에 더하여, 지연 길이가 중요합니다. 3 번의 로그인 시도 그룹 간 지연 시간을 2 분에서 20 분으로 늘림으로써, 한 번의 내 컴퓨터에서 2 주간의 기간을 44 번의 시도에서 3 번으로 비교하여 3 번 이상의 로그인 시도를 시도한 여러 IP 주소의 수가 줄었습니다. 이 세 주소 중 어느 것도 11 시간 이상 계속 시도하지 않았습니다.

매우 일화 적이지만 auth.log는 훨씬 더 읽기 쉽습니다.

2
Charles Stewart

상황은 중요하지만 다음과 같이 추천합니다.

  • FreeBSD를 사용하고 있으므로 PF 방화벽을 실행하고 견고한 연결 속도 제한 기능을 사용하십시오. 이것은 당신이 무차별 강제로 그들이 자주 연결하는 경우 블랙리스트에 보낼 수 있습니다
  • 외부에서이 상자에 액세스해야하는 경우 PF rdr 규칙을 사용하여 포트 22 로의 트래픽을 허용하지 않고 일부 포트를 해당 포트로 리디렉션하십시오. 즉, 22 대신 포트 9122에 연결해야합니다. 불분명하지만 두드리는 사람을 멀리합니다.
  • 키 기반 인증으로 만 이동하여 사전 공격을 쓸모 없게 만드는 것을 고려하십시오.
2
Michael Gorsuch

난 그냥 신경 쓰지 않아 항구에서 벨트를 떼어 놓으면 열쇠를 무차별 적으로 다루지 않을 것입니다.

1
womble

oSSEC을 설치하십시오. 반복되는 로그인을 모니터링 할뿐만 아니라 문제가되는 IP에 대해 iptables가있는 임시 블록으로 들어갑니다. 그리고 마지막에 세부 사항을 설명하는 보고서를 보내드립니다. 그것은 모든 것을 기록합니다. Somone은 로그인을 위해 8000 명 이상의 로그인 이름을 시도했습니다. 나는 로그를 파싱하고 좋은 사용자 목록을 얻었습니다.)

1
Marcin