ssh 보안을 높이려면 어떻게해야합니까? 키와 비밀번호를 모두 요구할 수 있습니까?


16

소규모 서버 네트워크가 있으며 일반 보안을 강화하고 싶습니다. VPN을 설정할 시간 / 돈 / 망상증이 충분하지 않습니다. 시스템의 보안을 강화할 수있는 기본 방법은 무엇입니까?

한 가지는 사용자가 자신의 키를 보내고 암호를 입력하도록 요구하는 것일 수 있습니다. "ssh key password"에 관한 모든 것이 비밀번호없이 sshing하는 것에 관한 것이기 때문에 구글에게는 다소 어렵다. :-)

내가 항상 가지고 싶었던 한 가지 계획은 들어오는 연결이 dyndns ip 주소의 허용 목록에서만 가져와야한다는 것입니다. 아이디어의 생각에 일부 보안 책임자가 토할 것이라는 것을 알고 있지만 문제의 사실은 상자를 악용하는 데 상당한 복잡성을 더할 수 있다는 것입니다.

어떻게 생각해? 거기에 또 뭐가 있습니까?


AllowUsers 또는 DenyUsers 지시문을 사용하여 연결할 수있는 사용자 목록을 제한 할 수도 있습니다. 이 게시물 에 대한 자세한 내용 .
Fred

답변:


8

비밀번호와 키를 사용한 로그인은 "키만으로"와 동일합니다. 키를 만드는 동안 암호를 입력하라는 메시지가 표시됩니다. 비워두면 비밀번호를 묻지 않습니다. 암호를 입력하면 로그인 할 때마다 암호를 묻는 메시지가 표시됩니다.

보안에 대해 우려가 있다면이 포럼에서 1 조 번 언급 된 다음 조언 중 일부를 고려하십시오.

  • 루트에 대한 ssh 로그인 비활성화
  • 정의 된 IP 주소 (iptables, hosts.allow, ...)에서만 ssh 액세스 허용
  • ssh 포트를 다른 포트로 이동하십시오 (보안보다 더 모호하지만 작동합니다)
  • 외국 로그인 시도를 모니터링하고 그에 따라 대응
  • 시스템을 최신 상태로 유지

업데이트 : OpenSSH 서버에서 공개 키와 로컬 시스템 암호를 모두 요구하는 방법은 여기의 답변을 참조하십시오 .


모든 팁에 감사드립니다. 키와 암호가 모두 필요한 경우 악용자가 암호를 알아 낸 경우 (사용자가 안전하지 않은 다른 곳에서 암호를 사용하는 경우) 키 없이는 침입 할 수 없으며 악용자가 사용자의 컴퓨터에서 키를 훔치는 경우 암호를 모르면 들어갈 수 없습니다… 맞습니까?
John Bachir

12
이건 같은게 아니야. 키만 필요한 경우 서버는 키에 대한 암호 강도 정책을 시행 할 수 없습니다. 부주의 한 사용자는 암호화되지 않은 개인 키를 클라이언트에두고 키를 도난 당했을 경우 서버를 취약하게 만들 수 있습니다.
200_success

mkudlacek-나는 호스트에 대해 몰랐다. 전에.
John Bachir

1
200_success-키와 비밀번호를 모두 요구할 수 있습니까?
John Bachir

또한 DenyHosts 응용 프로그램을 사용하여 계속 접속을 시도하고 실패하는 사람들을 잠그는 데 도움이됩니다. 사람들을 블랙리스트
James T Snell

6

내가 흥미로 웠던 한 가지 아이디어는 포트 노킹입니다 . 기본적으로 ssh 연결을 설정하려면 ssh 서버가 연결 요청을 승인하기 전에 먼저 다른 포트 시퀀스를 조사해야합니다. 올바른 포트 순서를 사용하지 않으면 응답이 없으므로 ssh 서버가 실행되고 있지 않은 것처럼 보입니다. 일련의 포트는 사용자 정의 할 수 있으며 원하는 사용자와 공유 할 수 있습니다. 다른 사람은 효과적으로 연결할 수 없습니다.

나는 이것을 직접 시도하지는 않았지만 (실제로 많지는 않지만) 들었던 것에서 오버 헤드는 무시할 수 있고 가시성 프로파일을 엄청나게 낮 춥니 다.


"일반 보안 향상"을 원하지만 특정 보안 문제를 해결하려고 시도하는 경우이 방법을 사용합니다.
Stefan Thyberg

나는 그것을 ssh하는 모든 사이트에서 이것을 사용하며 매우 효과적인 imho입니다.
Sirex

비밀번호가 4 자 이상인 것과 동일하지 않습니까?
John Bachir

실제로는 아닙니다. 65536 개의 포트와 26 개의 문자가 있습니다. 또한 노크 시퀀스의 길이에 관계없이 표준 방화벽 기술을 사용하여 재 시도를 제한 할 수 있습니다. 보안 자체는 아니지만 가지고있는 것이 좋습니다.
Sirex 2012

잘 다음 8 또는 12 문자 더 긴 :-D
John Bachir

3

SSH에서 직접 활성화하는 것과 관련된 패치 및 많은 관련 토론 :

암호 확인 스크립트를 ForceCommand구성 옵션 과 함께 사용하면 수정없이 수행 할 수도 있습니다 .

마지막으로 모듈이 없지만 공개 키 인증을 PAM으로 옮긴 경우 PAM이 인증에 성공하기 전에 두 단계를 모두 통과해야 할 수 있습니다.


2

그냥 사용

RequiredAuthentications publickey, password

에서 sshd_config당신이 ssh.com에서 SSHD를 사용하는 경우. 이 기능은 OpenSSH에서 사용할 수 없습니다.


RequiredAuthenticationsOpenSSH에 대한 비표준 확장입니다
Hubert Kario

어떤 sshd 구현이이를 지원하는지 알고 있습니까?
John Bachir

Tectia SSH 서버가이를 지원합니다. BTW : 댓글에 답장을 보낼 때 @nameOfUser를 사용하면 답장에 대한 알림을받을 수 있습니다.
Hubert Kario

OpenSSH에서도 버전 6.2와 유사한 기능이 지원됩니다. serverfault.com/a/562899
Søren Løvborg

1

당신은 또한 사용할 수있는 일회용 암호를 보안을 강화할 수 있습니다. 이를 통해 사용자는 안전하지 않은 터미널에서 로그인 할 수 있으며, 이전에 다음 비밀번호를 생성 한 경우 키로거가있을 수 있습니다. 또한 구식 Java MIDP 전화에도 설치할 수있는 암호 생성기가 있으며 항상 휴대 할 수 있습니다.


예, 개인 서버에서는 비밀번호 외에 Yubikey 토큰을 사용합니다. 토큰은 일회성 비밀번호를 생성합니다. 둘 다 인증해야합니다. 또는 SSH 키로 인증하면 암호 / otp 쌍을 무시할 수 있습니다. Yubikey는 저렴하며 Linux의 확장 가능한 인증 시스템 인 Pam과 통합 할 수있는 소프트웨어가 많이 있습니다.
Martijn Heemels

1

IP 제한없이 sshd, rdp 또는 이러한 관리 서비스를 실행하지 않는 것이 좋습니다. 실제로 VPN을 통해 연결하는 관리자에게 이러한 서비스에 대한 액세스를 제한하는 것이 좋습니다.


1

RHEL 또는 CentOS 6.3을 실행하는 경우 키와 비밀번호가 모두 필요하다는 원래의 질문과 관련하여 이제 가능합니다. RHEL 6.3 릴리즈 노트는 그것이 당신의 sshd_config를이 추가의 문제, 그것을 설명

RequiredAuthentications2 publickey,password

0

나는 3molo에 강력하게 동의합니다. OpenSSH는 Linux 및 Unix의 기본 SSH 서버입니다. 특히 보안을 위해 변경할 이유가 없습니다. VPN은 트래픽을 암호화하고 2 단계 비밀번호 인증을 제공 할 수있는 최상의 솔루션이어야합니다.


0

아무도 언급하지 않은 이유는 확실하지 않습니다. 더 이상 안전한 것으로 간주되지 않는 기본 1024 비트보다 긴 키를 생성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.