SSH를 통한 명령 목록 제한

SSH를 통한 명령 목록 제한

다수의 프로덕션 서버에 로그인하는 것은 모든 Linux 시스템 관리자의 업무의 일부이기 때문에 문제가 발생하여 프로덕션 시스템이 손상되기 쉽다는 의미입니다. 많은 경우, 누군가 피곤하거나 밤에 전화를 받을 경우 "rm -rf test.1" 대신 "rm -rf test"를 실행할 수 있습니다. 따라서 유사한 상황을 예상하고 사용자 수준이나 커널에서 특정 명령을 차단하는 방법이 있지만 루트 액세스를 사용하는 것은 좋은 방법이 아닙니다. 또한 많은 시스템(100-200)에 연결되어 있는 경우 모든 시스템에서 특정 명령을 잊도록 구성하는 것도 어려운 작업입니다.

그래서 저는 이 일을 쉽고 안전하게 할 수 있는 방법을 찾고 있습니다. SSH를 통해 로그인한 경우에만 작동하며 때로는 제거되기도 합니다. 그래서 터미널/터미네이터/ssh 에이전트/또는 기타 명령줄 도구의 기본 설정에서 사용자 정의 명령과 같은 것을 생각했습니다. 이것이 가능한지는 잘 모르겠지만 많은 사람들에게 유용할 것이라고 생각합니다.

답변1

SSH를 통해 명령 실행을 제한할 수 있지만 로그인 셸을 허용하면 이 제한이 적용되지 않습니다.

한 가지 방법은 파일을 살펴보고 authorized_keys키 행 앞에 command="/bin/foo/bar"를 넣는 것입니다.

sudo또 다른 보다 안전한 접근 방식은 사용자가 권한을 부여하고 실행할 수 있도록 허용하려는 항목을 사용하고 지정하는 것입니다 . 사용자가 test.1 대신 test를 삭제하는 데 자주 문제가 발생하는 경우 여기가 안전망을 유지하는 데 적합한 장소입니다.

/usr/local/bin정기적인 작업을 수행하는 관리자가 있는 경우 디스크 공간을 정리하기 위해 작업을 스크립트에 캡슐화하면 스크립트는 일반적인 관리 작업을 수행하거나 로그를 중앙 위치로 보내거나 로그를 일부만 보낼 수 있습니다. 로그 더 이상 사용되지 않는 아카이브로 압축합니다. 나중에 문제를 해결하는 데 시간을 절약할 수 있습니다!

답변2

전투선이나 지원선을 배치하려면 SSH 배너 사용을 고려해야 합니다. 그러나 "su" 명령을 사용하여 사용자 전환 기능을 비활성화할 수 있습니다.

sudo chmod u-s /bin/su

음, sudo 그룹만이 이 작업을 수행할 수 있습니다.

또한 디렉터리의 모든 내용은/etc/skel/새로 생성된 각 사용자에게 복사하고 거기에 몇 가지 별칭과 미리 알림을 추가합니다.

관련 정보