웹사이트 검색

Debian 9에서 Jailkit으로 Jailed SSH 사용자를 생성하는 방법(Stretch)


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 9(Stretch)
  • 데비안 7(Wheezy)

이 페이지에서

  1. 1 서문
  2. 2 Jailkit 설치
  3. 3 사용자 감옥
  4. 4 Jailed 환경에서 서비스 및 명령 실행\n
  5. 5개의 링크

이 문서는 Debian 9(Stretch) 서버에서 Jailkit을 설치하고 구성하는 방법을 설명합니다. Jailkit은 chroot() 및/또는 특정 명령을 사용하여 사용자 계정을 특정 파일로 제한하는 유틸리티 세트입니다. chroot 쉘, 일부 특정 명령으로 제한된 쉘 또는 chroot 감옥 내부의 데몬을 설정하는 것이 훨씬 쉽고 이러한 유틸리티를 사용하여 자동화할 수 있습니다.

Jailkit은 여러 주요 IT 보안 회사의 네트워크 보안 장비, 여러 대기업 조직의 인터넷 서버, 인터넷 서비스 제공업체의 인터넷 서버, cvs, sftp, shell을 보호해야 하는 많은 소규모 회사 및 개인 사용자에 사용되는 것으로 알려져 있습니다. 또는 데몬 프로세스.

1 서문

이 가이드는 Debian 9 서버를 기반으로 하므로 이 가이드를 계속하기 전에 기본 Debian 서버 설치를 설정해야 합니다. 시스템에는 정적 IP 주소가 있어야 합니다. 이 튜토리얼에서는 192.168.0.100을 IP 주소로 사용하고 server1.example.com을 호스트 이름으로 사용합니다.

2 Jailkit 설치

먼저 Jailkit을 다운로드하여 설치합니다. 이 가이드를 작성할 당시 사용 가능한 Jailkit의 최신 버전은 2.20입니다. 다음과 같이 다운받아 설치하겠습니다.

cd /tmp    
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20

Jailkit을 설치하기 전에 몇 가지 패키지가 필요합니다. 다음과 같이 패키지를 설치합니다.

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python

이제 시스템이 Jailkit을 설치할 준비가 되었습니다. 다음과 같이 설치하십시오.

echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb

Debian Server에 Jailkit을 설치하고 /tmp에서 추가 패키지를 제거할 수 있습니다.

rm -rf /tmp/jailkit*

3 사용자 감옥

이제 다음과 같이 Jailkit을 사용하여 투옥될 사용자를 생성합니다.

adduser srijan

제 경우에는 사용자 srijan을 생성하고 있으므로 어떤 이름이든 사용할 수 있습니다.

다음으로 /etc/passwd에서 사용자 srijan에 대한 정보를 다음과 같이 확인합니다.

egrep srijan /etc/passwd

다음으로 생성된 사용자를 감옥에 넣습니다. Jail 환경을 위한 디렉토리 /jail을 생성합니다.

mkdir /jail

이제 다음과 같은 일부 기본 프로그램 환경을 감옥에 제공합니다.

jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp

다른 값도 제공할 수 있습니다. Jail 환경의 전체 목록은 파일에서 확인할 수 있습니다.

nano /etc/jailkit/jk_init.ini

이제 Jail이 준비되었습니다. 환경 내부에 사용자를 추가하기만 하면 됩니다.

jk_jailuser -m -j /jail/ srijan

사용자 srijan에 대해 /etc/passwd의 값을 다시 확인합니다.

egrep srijan /etc/passwd

이제 Jailed 환경에 사용자가 추가되었습니다. IP 192.168.0.100을 사용하여 데비안 서버를 bash 터미널과 연결하겠습니다.

ssh 

사용자에게 로깅 쉘이 없으므로 연결이 닫힙니다. Jail의 구성 파일에 추가할 수 있습니다.

nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash

투옥된 사용자 srijan에 대한 bash 프롬프트를 추가합니다. 이제 다시 srijan 사용자로 ssh 로그인을 시도하면 로그인할 수 있습니다.

ssh 

이제 루트 디렉토리 내용을 확인하면 다음과 같은 내용이 있음을 알 수 있습니다.

ls /

4 Jailed 환경에서 서비스 및 명령 실행

Jail은 Jailed 환경에서 서비스를 실행하는 데 사용할 수 있습니다. Jailed 환경에서 서비스를 실행하고 싶다고 가정하면 jk_chrootlaunch 명령을 사용합니다.

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'

여기에서 Apache 서비스를 시작합니다. 마찬가지로 Jail 환경에서 서비스나 데몬을 실행할 수 있습니다.

Jail 환경에서 특정 명령을 실행하고 싶다고 가정하면 jk_cp를 사용합니다. cal을 실행할 때 Jailed 환경에서 테스트하면 다음과 같이 표시됩니다.

cal

그것은 감옥 환경이 cal 명령을 모른다는 것을 의미합니다. 이제 다음과 같이 데비안 서버에 추가하겠습니다.

jk_cp  -v -j /jail/ /usr/bin/cal

Jailed 환경에서 cal 명령을 다시 실행합니다.

cal


따라서 Jailed 환경에 대한 명령을 추가했습니다. 축하합니다! 이제 Debian 9에서 Jail 환경을 성공적으로 구성했습니다. :)

5 링크

  • 데비안:
  • Jailkit: https://olivier.sessink.nl/jailkit/