Linux에서 파일 경로를 다른 파일 경로로 위장하는 방법

Linux에서 파일 경로를 다른 파일 경로로 위장하는 방법

사용자 test123에 대해 /var/test 파일 경로가 /root로 표시되기를 원합니다. 나는 그들이 실제로 루트 디렉토리에 있는 것을 원하지 않지만, 그들이 조금 기웃거리지 않고는 알 수 없도록 /root에 있는 것처럼 나타나기를 원합니다. 나는 그것을 그들의 홈 디렉토리로 설정하고 그 아래에 완전한 디렉토리 구조를 만들 것입니다. 일반적인 아이디어는 chroot 감옥과 비슷한 것을 갖는 것입니다.

로그인한 사용자를 기반으로 디렉토리 이름을 위장하는 것에 대한 정보를 찾을 수 없습니다. 다른 사람이 제안할 수 있습니까?

답변1

SSH chroot Jail과 바인드 마운트를 결합하고 싶다고 생각합니다. chroot 루트 디렉터리가 /home/test123이라고 가정합니다.

  • chroot 환경을 만드십시오. 나는 Jailkit을 사용하고 싶습니다(https://olivier.sessink.nl/jailkit/)

  • chroot 내에 바인드 마운트 생성 mount -o bind /var/test /home/test123/root

  • chroot에 대해 sshd를 설정합니다. 이에 대한 몇 가지 방법이 있지만 기본적으로 test123을 sshchroot 사용자 그룹에 추가한 다음 /etc/ssh/sshd_config에 추가하려고 합니다. Match group sshchroot ChrootDirectory /home/%u
  • SSH를 다시 ​​시작

답변2

진정한 chroot 감옥을 원하지 않는다면 사용자 세션을 별도의 세션으로 격리해야 합니다.마운트 네임스페이스, 그럼 있어요/var/test 번들 설치/root이 네임스페이스 내에서만 가능합니다 . 이를 달성하려면 사용자 정의 사용자 세션 생성이 필요합니다. 맞춤형 PAM 라이브러리가 이를 수행할 수 있을까요?

(구현은 독자에게 연습으로 남겨 둡니다. 저는 실제로 이 목적에 적합한 기성 도구를 알지 못하므로 아마도 사용자 정의 PAM 라이브러리를 작성해야 할 것입니다. 그러나 컨테이너화 기술로 인해 Linux 네임스페이스의 빠른 개발이 많이 이루어지고 있습니다. 실제로는 이미 사용 가능한 것이 있지만 그에 대해 잘 모르겠습니다.

하지만:test123루트가 아닌 사용자와 같은 사용자가 홈 디렉토리는 물론이고 에 대한 쓰기 액세스 권한을 갖고 있는 시스템을 발견하면 /root즉시 일종의 스푸핑이 있다고 가정할 것입니다. 그리고 안전하지 않은 구성. 이 사실을 발견하고 루트 액세스 권한이 없으면 가능한 한 빨리 실제 시스템 관리자에게 알리도록 노력하겠습니다. 내가 시스템 관리자이고 다른 설명이 없다면 이 시스템을 네트워크에서 연결 해제하고(가능하다면 포렌식 메모리 덤프를 먼저 수행) 시스템을 종료한 다음 분석을 위해 디스크를 다른 컴퓨터로 가져가는 것을 강력히 선호합니다. 부작용으로 당신의 속임수를 물리치십시오.

따라서 진단 및 법의학 외에 이 설정으로 무엇을 얻을 수 있는지 잘 모르겠습니다.

관련 정보