![shellinabox 사용자를 특정 계정으로 제한](https://linux55.com/image/227842/shellinabox%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%ED%8A%B9%EC%A0%95%20%EA%B3%84%EC%A0%95%EC%9C%BC%EB%A1%9C%20%EC%A0%9C%ED%95%9C.png)
설정과 목표
서버를 운영 중이고 ssh
특정 사용자 한 명만 shellinabox
로그인하도록 제한하고 싶습니다 .shellinabox
추론과 방법
보안상의 이유로 마스터 사용자는 main_acc
인증서 기반 ssh
액세스만 갖습니다( ssh
LAN IP 범위 밖에서 직접 사용하는 경우). 명령을 통해 인터넷에서 접속할 때 비밀번호 접속이 작동하지 않는 것을 확인할 수 있습니다 ssh
.
사용 사례 에서는 shellinabox
비밀번호를 통한 로그인이 필요합니다. 이는 특히 내 컴퓨터에 개인 키를 사용할 수 없는 경우를 위한 것이기 때문입니다. 아이디어는 shiabox_acc
허용된 명령만 로컬 호스트에서 ssh
실행되는 제한된 셸이 있는 "프록시" 사용자를 사용하여 보안 계층을 추가하는 것입니다 main_acc
. 이렇게 하면 fail2ban
무차별 대입 공격자가 일을 어렵게 만드는 데 사용할 수 있는 두 개의 암호 계층과 두 개의 계층이 있습니다 .
그래서 내가 한 일은
- 존재하다
sshd_config
- 사용자는
main_acc
일반적으로 비밀번호 인증을 받지 않습니다. main_acc
LAN-IP 범위 및 포트 22에서 비밀번호 인증 허용(로컬 유지 관리상의 이유로)- 사용자는
shiabox_acc
포트 1011(shellinabox 포트)의 localhost에서 비밀번호 인증을 허용했습니다.
apache
웹사이트 설정 에서
- revese 프록시는 내 웹사이트의 ssh-loaction에 대한 액세스를
shellinabox
포트 로 전달합니다.
- 라우터 방화벽 설정에서
- 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