Linux에서 사용자 하위 시스템을 완전히 제거할 수 있습니까?
사람들이 로그인하는 것을 막는 것에 대해 말하는 것이 아닙니다. 나는 로그인할 수 있는 시스템 부분을 제거하는 것에 대해 이야기하고 있습니다.
결과적으로 운영 체제는 이미 실행 중인 응용 프로그램(예: 웹 서버)을 제외하고는 액세스할 수 없기 때문에 일단 부팅되면 운영 체제에 액세스할 수 없습니다.
목표는 사용자 수준 명령줄 시스템이 존재하지 않기 때문에 사용자 수준 명령줄 액세스 권한을 얻어야 하는 메커니즘을 통해 시스템을 해킹할 수 없도록 하는 것입니다.
답변1
흥미로운 차이점은 다음과 같습니다.
사람들이 로그인하는 것을 막는 것에 대해 말하는 것이 아닙니다. 나는 로그인할 수 있는 시스템 부분을 제거하는 것에 대해 이야기하고 있습니다.
의미론적 차이 외에 실제로 무엇이 있는지는 잘 모르겠습니다. 만약 제가 그것을 제거한다면, /bin/login
로그인을 불가능하게 만들었기 때문에 (물리적 터미널에서) 로그인할 수 없을 것입니다. 하지만 전체 로그인 하위 시스템을 제거하지는 않을 것입니다.
내 조언은 예상치 못한 종속성이 있을 수 있으므로 가능한 한 완벽하게 유지하라는 것입니다. 웹 서버가 다른 계정으로 실행되도록 사용자를 그대로 두십시오 root
. PAM 하위 시스템을 수정하여 대화형 및 비대화형 로그인을 방지합니다. sudo
비슷한 방식으로 유형 액세스를 차단 하도록 선택할 수 있습니다 .
"거부"에 대한 PAM 정의 준비
Create에는
/etc/pam.d/denied
다음 두 줄이 포함됩니다.auth requisite pam_deny.so session requisite pam_deny.so
터미널/화면에서 로그인 방지
/etc/pam.d/login
사본으로 교체/etc/pam.d/denied
네트워크 로그인 방지
ssh
/etc/pam.d/sshd
사본으로 교체/etc/pam.d/denied
편집
/etc/ssh/sshd_config
하여 설정되었는지 확인하세요UsePam yes
.(선택사항) 비활성화해 보세요.
sudo
/etc/pam.d/sudo
사본으로 교체/etc/pam.d/denied
실제로 모든 로그인을 거부하는 대신 물리적 터미널/화면에서 루트 로그인을 허용하고 다른 모든 로그인을 거부하십시오. 이는 PAM을 통해서도 수행할 수 있지만 질문의 특정 범위를 벗어납니다.
답변2
글쎄, 이론적으로는 명령의 이름을 바꾸거나 삭제할 수 있습니다 /bin/login
.
이것이 그것을 방지할 것인지 확실하지 않습니다 single user mode
. 당신도 예방을 원하는지 확실하지 않습니다 single user mode
.
모든 사용자가 로그인하는 것을 방지 하기 위해 흥미로운 작업을 수행할 수도 있지만 pam.d
이는 로그인 아이디어를 깨뜨리는 것이 아니라 사용자가 로그인하는 것을 방지하는 것뿐입니다.
집에 도착하면 기억나면 가상 머신을 실행해서 시도해 보겠습니다. 파일 을 삭제하는 것도 가능 /etc/shadow
하지만 다른 모든 파일도 삭제될 수 있습니다.
참고 사항:너원하지 않는다사용자가 생각하는 것을 완전히 단념시키고 싶습니다. 로그인 능력이 없다는 것이 나쁜 생각이기 때문이 아니라(그렇지만 이것이 이 스레드의 요점은 아닙니다) 권한 때문에 사용자가 존재해야 하기 때문입니다. 사용자가 없으면 rwx
서비스를 실행하려면 시스템의 모든 파일에 권한을 부여해야 하며 , 이로 인해 실행할 수 없는 문제가 발생합니다.필요해킹에 로그인하면 사람들은 원하는 모든 것에 액세스할 수 있습니다.