Oneiric의 홈 디렉토리에서 사용자를 감옥에 넣는 간단하고 쉬운 방법이 필요합니다. 사용자를 도용하거나 전체적인 도움을 받거나 훌륭한 웹 링크를 제공하는 간단한 구성이 있습니까?
10-20GB의 여유 공간이있는 온라인 무료 공용 서버를 제공 할 것입니다. 얼마나 많은 사용자가 있는지 모르겠습니다. FileZilla를 통해 연결할 수 있도록 SSH 및 SFTP를 제공하고 싶습니다.
Oneiric의 홈 디렉토리에서 사용자를 감옥에 넣는 간단하고 쉬운 방법이 필요합니다. 사용자를 도용하거나 전체적인 도움을 받거나 훌륭한 웹 링크를 제공하는 간단한 구성이 있습니까?
10-20GB의 여유 공간이있는 온라인 무료 공용 서버를 제공 할 것입니다. 얼마나 많은 사용자가 있는지 모르겠습니다. FileZilla를 통해 연결할 수 있도록 SSH 및 SFTP를 제공하고 싶습니다.
답변:
Jailkit은 사용자 계정을 특정 디렉토리 트리 및 특정 명령으로 제한 할 수있는 유틸리티 세트입니다. '수동으로'하는 Jailkit 유틸리티를 사용하여 감옥을 설정하는 것이 훨씬 쉽습니다. 감옥은 파일 시스템 내에서 만드는 디렉토리 트리입니다. 사용자는 jail 디렉토리 외부에있는 디렉토리 나 파일을 볼 수 없습니다. 사용자는 해당 디렉토리와 하위 디렉토리에 갇혀 있습니다.
http://olivier.sessink.nl/jailkit/index.html#download
VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install
이제 jail 디렉토리를 설정할 차례입니다. jailed 사용자는이 디렉토리를 서버의 루트 디렉토리로 보게됩니다. / home / jail을 사용하기로 결정했습니다.
mkdir /home/jail
chown root:root /home/jail
jk_init를 사용하면 특정 작업 또는 프로파일에 필요한 여러 파일 또는 디렉토리가있는 감옥을 빠르게 만들 수 있습니다 (클릭하여 자세한 내용 읽기).
jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh
홈 디렉토리 및 bash 쉘을 사용하여 새 사용자를 추가하고 비밀번호를 설정하십시오.
useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest
다음 명령을 사용하십시오.
jk_jailuser -m -j /home/jail jailtest
당신 /etc/passwd
은 지금 다음과 같은 것을 포함해야합니다 :
jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh
jk_cp 를 사용 하면 bash 라이브러리가 감옥에 복사됩니다.
jk_cp -v -f /home/jail /bin/bash
/home/jail/etc/passwd
이 줄을 바꾸십시오 :
jailtest:x:1001:1001::test:/usr/sbin/jk_lsh
이것으로 :
jailtest:x:1001:1001::/home/jailtest:/bin/bash
사용하여 jk_update
실제 시스템에 업데이트를 감옥에 업데이트 할 수 있습니다.
드라이 런은 진행 상황을 보여줍니다.
jk_update -j /home/jail -d
-d 인수가 없으면 실제 업데이트가 수행됩니다. 더 많은 유지 보수 작업은 여기에서 찾을 수 있습니다.
( /home/jail/opt
없는 경우 ,로 작성하고 다시 mkdir -p /home/jail/opt/
실행 jk_update -j /home/jail
하십시오)
이제 감옥 사용자가 액세스 할 수있는 특수 폴더를 마운트 할 수 있습니다. 예 :
mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/
http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html
http://olivier.sessink.nl/jailkit/index.html#intro (아주 좋은 도움)
이것은 제대로 확인되고 확인되었습니다.
시스템 바이너리 및 / etc의 bash 및 구성 파일에 액세스해야하므로 / home로 제한 할 수 없습니다.
IMO는 사용자를 보호하는 가장 쉬운 방법은 의류를 사용하는 것입니다.
당신은 하드 링크를 만들
ln /bin/bash /usr/local/bin/jailbash
/ etc / shells에 jailbash를 추가합니다
그런 다음 jailbash를 사용자 쉘에 할당 한 다음 최소한의 액세스를 허용하는 jailbash에 대한 apparmor 프로파일을 작성하십시오.
sudo chsh -s /usr/local/bin/jailbash user_to_confine
Apparmor 프로파일을 직접 작성해야하지만 잠재적으로 시작할 수있는 프로파일이 있습니다.
http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash
You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etc
필요한 파일을 링크 / 복사하는 것을 막을 수있는 것은 없습니다.
jailkit
은 OP가 언급 한 도구와 같이이 프로세스를 자동화하는 도구를 지적하는 것이라고 생각 합니다.
어떤 목적을 달성하고자하는지 추측하기가 어렵습니다. FTP를 통해 탈옥 된 액세스를 제공하는 동안 ssh / sftp를 거부하려면 ... 쉬운 방법 :
새 쉘을 / etc / shells에 추가하십시오.
sudo -e /etc/shells
한 줄 추가 :
/bin/false
구하다. ssh / sftp를 거부하려는 각 사용자에 대해 사용자 쉘을 변경하십시오.
sudo chsh -s /bin/false userx
이제 userx는 ssh / sftp를 통해 로그인 할 수 없습니다.
vsftpd 설치 :
sudo apt-get install vsftpd
구성 파일을 편집하십시오.
sudo -e /etc/vsftpd.conf
그리고 약간의 변화 ....
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
구하다. vsftpd를 다시 시작하십시오.
sudo /etc/init.d/vsftpd restart