shellinabox 사용자를 특정 계정으로 제한

shellinabox 사용자를 특정 계정으로 제한

설정과 목표

서버를 운영 중이고 ssh특정 사용자 한 명만 shellinabox로그인하도록 제한하고 싶습니다 .shellinabox

추론과 방법

보안상의 이유로 마스터 사용자는 main_acc인증서 기반 ssh액세스만 갖습니다( sshLAN IP 범위 밖에서 직접 사용하는 경우). 명령을 통해 인터넷에서 접속할 때 비밀번호 접속이 작동하지 않는 것을 확인할 수 있습니다 ssh.

사용 사례 에서는 shellinabox비밀번호를 통한 로그인이 필요합니다. 이는 특히 내 컴퓨터에 개인 키를 사용할 수 없는 경우를 위한 것이기 때문입니다. 아이디어는 shiabox_acc허용된 명령만 로컬 호스트에서 ssh실행되는 제한된 셸이 있는 "프록시" 사용자를 사용하여 보안 계층을 추가하는 것입니다 main_acc. 이렇게 하면 fail2ban무차별 대입 공격자가 일을 어렵게 만드는 데 사용할 수 있는 두 개의 암호 계층과 두 개의 계층이 있습니다 .

그래서 내가 한 일은

  1. 존재하다sshd_config
  • 사용자는 main_acc일반적으로 비밀번호 인증을 받지 않습니다.
  • main_accLAN-IP 범위 및 포트 22에서 비밀번호 인증 허용(로컬 유지 관리상의 이유로)
  • 사용자는 shiabox_acc포트 1011(shellinabox 포트)의 localhost에서 비밀번호 인증을 허용했습니다.
  1. apache웹사이트 설정 에서
  • revese 프록시는 내 웹사이트의 ssh-loaction에 대한 액세스를 shellinabox포트 로 전달합니다.
  1. 라우터 방화벽 설정에서
  • WAN에서 포트 1011에 액세스할 수 없습니다.
  • 포트 22 및 443이 열려 있습니다.

이제 질문이 온다:

main_acc여전히 비밀번호를 통해 로그인 할 수 있습니다 .shellinabox

왜? shiabox_acc액세스를 제한하는 방법은 무엇입니까 ?

내가 이해한 바로는 Apache는 포트 443에서 웹 사이트 기반 요청을 수신하고 이를 로컬 호스트에서 포트 1011로 전달합니다. 그런 다음 ssh규칙은 액세스 포트를 1011과 일치시켜 이를 허용하지 않아야 합니다 main_acc.

내가 어디서 잘못됐나요?

apache추신: 인증 옵션을 알고 있지만 내 방법이 실패하는 이유를 이해하고 싶습니다.


설정하다/etc/ssh/sshd_config

#Global:
#DenyUsers
AllowUsers main_acc
PasswordAuthentication no

#shellinabox access
Match LocalPort 1011 User shiabox_acc
        PasswordAuthentication yes
        PubkeyAuthentication no

#LAN access w/ password
Match Address <LAN-IP>,127.0.0.1,::1 LocalPort 22 User main_acc
        PasswordAuthentication yes
        PubkeyAuthentication yes

사이트 설정 apache:

<Location /shellinabox>
    ProxyPass http://localhost:1011/
    Order allow,deny
    Allow from all
</Location>

shellinabox설정:

SHELLINABOX_PORT=1011
SHELLINABOX_ARGS="--no-beep --localhost-only --disable-ssl"  

버전

  • 아파치/2.4.57
  • ShellInABox 버전 2.20
  • 운영 체제: 라즈비안 12

관련 정보