Chroot가 잘못되어 사용자와 SSH를 연결할 수 없습니다.

Chroot가 잘못되어 사용자와 SSH를 연결할 수 없습니다.

배포: Scientific Linux 6.5(Carbon), 일반적인 Linux 브랜드는 아닙니다.

다음을 사용하여 사용자를 chroot하려고 시도했습니다.이 지침SSH의 경우 분명히 실패했으며 이제 해당 사용자로 로그인할 수도 없습니다. 나는 /var/log/secure그것이 그것에 대해 어떤 빛을 비출 수 있는지 확인 했고 다음과 같은 것을 얻었습니다.

: Address aaa.bbb.ccc.ddd maps to "A_Certain_Computer"
: Accepted password for student.fesns from aaa.bbb.ccc.ddd port ##### ssh2
: pam_unix(sshd:session): session opened for user student.fesns by (uid=0)
: error: /dev/pts/2: No such file or directory
: error: open /dev/tty failed - could not set controlling tty: No such file or directory
: pam_unix(sshd:session): session closed for user student.fesns

두 파일을 모두 확인했는데 실제로 존재합니다. 그런 다음 사용자를 chroot하기 위해 변경한 내용을 되돌리려고 시도하여 홈 디렉터리가 로 돌아가고 /home/User시작 스크립트가 ot로 설정되었으며 원래 설정으로 되돌리기 위해 /bin/bash에서 코드 섹션을 제거했습니다. /etc/ssh/sshd_config.

나는 이 시점에서 완전히 길을 잃었습니다. 어떤 통찰력이라도 감사하겠습니다.

새로운 정보 또한 다른 사용자를 추가하여 성공적으로 로그인할 수 있었습니다. 그런 다음 그룹을 첫 번째 사용자의 그룹으로 변경했는데 첫 번째 사용자와 동일한 작업을 수행했습니다.

그 후 그룹을 삭제하고 다시 생성했지만 여전히 로그인할 수 없습니다. 그런 다음 사용자와 테스트 계정을 다른 그룹으로 변경했는데 제대로 작동했습니다.

....이건 해결된 것 같은데 대체 무슨 일이 일어난 걸까요?

업데이트

알았어, 그래서 오늘 다시 돌아왔어. 모든 것을 깔끔하게 정리한 후 거의 동일한 지침을 사용했습니다. make_chroot_jail.sh 스크립트를 사용하여 환경을 생성했습니다. /etc/ssh/sshd_configchroot 폴더로 chroot되도록 변경했습니다 .

폴더 구성표: /home/chroot/{bin,dev,etc,home,lib,lib64,sbin,usr}

dev 폴더에 tty 문자 장치가 포함되어 있는 것도 확인했고, 추가적으로 pts 항목은 정상적으로 호출할 수 없다는 것을 알게 되었습니다.그것들은 실제로 파일 같은 것이 아니었습니다. 어쨌든 그 리드를 따르고 서비스를 다시 시작했는데 원래 오류 대신 다음이 표시되었습니다.

: error: /dev/pts/1: Permission denied
: error: open /dev/tty failed - could not set controlling tty: Permission denied

오늘은 시간이 다 되어서 두 파일에 대한 권한을 해제하려고 합니다. 하지만 그렇게 하면 chroot를 수행하는 목적의 일부가 무효화됩니다.

답변1

다음 디렉토리에 'mount --bind'를 시도하십시오. /dev를 먼저 수행한 다음 /dev/pts를 수행하십시오.

루트 쉘> 마운트 --bind /dev /var/jail/dev

루트 쉘> 마운트 --bind /dev/pts /var/jail/dev/pts

감사합니다, 데이비드

답변2

솔루션에 대한 설명을 고려하면 chroot를 설정할 때 그룹 권한에 일부 오류가 발생한 것 같습니다. 모두 삭제하고 다시 만들어서 어떤 내용이었는지 정확히 파악하기 어렵습니다. 추측컨데, 시작할 때 사용자가 속한 그룹을 제외한 모든 사람이 chroot 내의 파일을 읽을 수 있는 설정을 만들었습니다.

관련 정보