SSH: 루트 비밀번호 로그인을 비활성화하지만 프롬프트는 유지합니다.

SSH: 루트 비밀번호 로그인을 비활성화하지만 프롬프트는 유지합니다.

사용자의 비밀번호 로그인을 비활성화하고 싶습니다. 하지만 사용자가 비밀번호 로그인이 비활성화되어 있다는 사실을 인지하고 오류 메시지(공개 키) 대신 비밀번호를 묻는 메시지를 표시하는 것을 원하지 않습니다.

지금까지 나는 다음을 제외한 모든 사용자에 대해 비밀번호 로그인을 비활성화할 수 있다는 것을 알고 있습니다.

PasswordAuthentication no
Match User toto
PasswordAuthentication yes

하지만 "not_toto"로 로그인을 시도하면 서버에서 원하지 않는 오류 메시지가 표시됩니다.

이를 수행하려면 openssh 소스를 수정해야 합니까? 아니면 해당 작업을 수행하는 구성 옵션이 있습니까?

편집하다:

두 개의 SSH 서버를 실행하는 옵션이 있으므로 iptablesSSH 구성 외부에서 또는 다른 수단을 사용하여 연결을 종료하면 됩니다.

편집 2:

두 개의 SSH 인스턴스가 필요하기 때문에 이렇게 하고 싶습니다. 하나는 입장을 위한 공식 게이트에 있고 다른 하나는 허니팟으로 사용됩니다. 그래서 봇은 그들에게 비밀번호를 알려주지만 절대 들여보내지 않습니다. (참고: 이것은 개인 프로젝트입니다. 저는 서버를 사용하는 유일한 사람이고 동료의 비밀번호나 기타 불쾌한 내용을 기록하지 않습니다. 단지 봇에서 몇 가지 통계를 실행하고 싶습니다.)

"허니팟" 서버는 포트 22에서 수신 대기하고 "공식" 서버는 344와 같은 다른 포트에서 수신 대기합니다.

첫 번째 SSH 서버(공식 서버)는 OpenSSH_7.4p1 Debian-10+deb9u1, OpenSSL 1.0.2l 25 May 2017Debian 패키지를 사용하여 설치됩니다.

Openssh-7.4p1"허니팟"은 로그인 시도를 기록하는 사용자 이름과 비밀번호의 수정된 버전입니다. 실제로 PAM이 활성화되어야 하지만 다시 한 번 확인하겠습니다. 아마도 당신의 선택기호 콩맞을 수도 있습니다.

답변1

여기서 무엇을 요구하는지 잘 모르겠습니다. 이 사용자가 키 쌍을 사용하여 로그인할 수 있도록 허용하시겠습니까? "루트라고 말하세요"라고 했는데 루트인가요? 루트 사용자는 항상 특별한 경우입니다.

또 다른 분명한 질문은 왜인가? 누군가가 시스템에 침입하는 것을 원하지 않는다면 마지막으로 해야 할 일은 그들이 공격할 수 있는 API를 제공하는 것입니다.

줄 사이를 읽으면 Linux에서 Opensshd를 사용하고 있는 것처럼 보입니다(사용 중인 애플리케이션과 OS 버전을 명시적으로 밝히는 것이 도움이 될 것입니다).

그건 제쳐두고...

클라이언트가 서버로 보낸 사용자 이름은 암호화 협상 후 전송됩니다. 따라서 단순히 연결을 프록시하고 다시 라우팅할 수는 없습니다.

당신이 할 수 있는 일은 sshd에게 PAM을 사용하도록 지시하고 특정 사용자에게 제공된 비밀번호에 관계없이 액세스를 거부하도록 적절한 정책을 구성하는 것입니다. 이를 수행하는 방법은 여러 가지가 있지만 pam_listfiles를 사용하면 많은 구성을 pam 스택 자체 밖으로 이동할 수 있음을 의미합니다(서버에서 자신을 잠글 가능성이 높으므로 pam 구성에 대한 수정 양이 줄어듭니다). ) ).

답변2

해당 계정에 대한 비밀번호 로그인을 완전히 비활성화하려고 할 수도 있습니다. 즉, SSH뿐만 아니라 일반 콘솔이나 그래픽 창 관리자 등을 사용하여 해당 사용자 계정으로 로그인하는 것도 방지할 수 있습니다. 이는 SSH 로그인 시도를 수집하는 것 외에는 다른 목적이 없는 허니팟 서버에 적합합니다.

Linux에서는 다음 명령을 사용하여 계정 비밀번호를 비활성화할 수 있습니다.

# usermod --lock <username>

또는

# passwd --lock <username>

공개 키 인증을 설정한 경우에도 SSH 키를 사용하여 계정에 로그인할 수 있으며, sudo적절하게 구성하면 해당 계정에서 계속 명령을 실행할 수 있습니다.

물론 루트 계정으로 이 작업을 수행하는 경우 다음을 설정해야 합니다.sudo 첫 번째따라서 필요한 경우 프로세스를 되돌릴 수 있습니다. 잠긴 비밀번호는 usermod --unlock또는 를 사용하여(또는 직접 편집하여) 잠금을 해제할 수 있습니다 . 이렇게 하지 않으면 루트 계정에 대한 액세스 권한이 완전히 상실될 수 있습니다.passwd --unlock/etc/shadow

관련 정보