저는 서버에서 Minecraft를 실행하고 있습니다. 내 친구에게 내 월드 폴더(루트 폴더), 명령 screen
및 일부 포트 에 대한 SSH 액세스 권한을 어떻게 부여할 수 있나요 ?
답변1
처음 두 가지 사항을 달성하려면 사용자를 원하는 디렉터리에 가둬야 합니다. 때로는 이를 샌드박싱이라고 부르며 chroot
Linux와 관련이 있습니다.
SSH 사용자를 chroot(감옥)하려면 여기에서 좋은 기사를 찾을 수 있습니다.여기.
세 번째 사항에 대해서는 잘 모르겠지만 한 번 살펴보세요.iptables를 사용하여 사용자/그룹에 대한 네트워크 액세스를 제한하는 방법 - 소유자 일치.
하지만 그에게 그러한 제한/특권을 주어야 하는지 잘 모르겠습니다.
답변2
FreeBSD에서는 사용자를 제한하기 위해 감옥을 사용할 수 있습니다. 하지만 리눅스에는 감옥이 없습니다. (존재할 수도 있지만 시스템의 일부는 아닙니다.) FreeBSD의 Jail은 운영 체제 수준 가상화입니다. Linux에서도 동일한 결과를 얻을 수 있습니다. 이 기사를 수행할 수 있는 일부 프로그램도 언급되어 있으므로 해당 기사를 읽어 보시기 바랍니다. 더 나은 성능을 위해 OS 수준에서 가상화를 권장합니다.
http://wiki.openvz.org/Introduction_to_virtualization
따라서 기본적으로 여러분은 두 번째 운영 체제처럼 실행되며 친구들은 운영 체제와 콘텐츠에 의해 제한을 받게 됩니다. 두 번째 운영 체제는 폴더 안에 있는 것처럼 실행되며 친구는 파일의 나머지 부분을 보기 위해 종료할 수 없습니다. 그는 이것으로 제한될 것입니다. chroot에 의해 생성된 샌드박스는 쉽게 이스케이프될 수 있으므로 chroot보다 더 많은 장점이 있습니다.
아무 문제 없이 Minecraft 폴더에 액세스할 수 있습니다. 그러나 친구가 화면에 액세스할 수 있도록 하려면 두 번째 운영 체제에도 화면을 설치하고 친구가 액세스할 수 있도록 하려는 다른 모든 항목도 설치해야 합니다.
일반적으로 두 번째 OS에는 특정 IP가 있으며 컴퓨터의 포트 x 및 y에 무언가가 연결될 때마다 해당 IP로 리디렉션하라고 말합니다. 따라서 SSH에 사용하려는 포트를 통해 사용자가 컴퓨터에 연결하면 두 번째 운영 체제로 리디렉션됩니다. 마인크래프트 포트와 동일합니다.
또한, 더 쉽게 하기 위해 "minecraft" 폴더에 대한 심볼릭 링크를 생성하여 "minecraft" 폴더에 접근하기 위해 항상 두 번째 운영 체제의 폴더로 이동할 필요가 없도록 할 수 있습니다.
이는 귀하에게 가장 적합한 솔루션이 아닐 수도 있고 그럴 수도 있지만 설정이 어렵지 않고 최대의 보안과 개인 정보 보호를 제공하므로 고려해야 할 실행 가능한 솔루션입니다.
답변3
SSH는 이 목표를 달성하도록 설계되지 않았습니다. 안전하다고 생각하는 솔루션을 찾을 수도 있지만 실제로는 어딘가에 백도어( ssh -W
, ssh -o ProxyCommand
등)가 있을 수도 있습니다.
내 생각에 가장 좋은 해결책은마인크래프트 폴더에 액세스할 수 있는 가상 머신을 생성하고 친구에게 가상 머신의 SSH 계정을 제공하세요..
가장 좋은 방법은 다음과 같습니다.운영 체제 수준 가상화좋다창사또는오픈VZ, 기본적으로 달성향상 chroot
성능에 거의 영향을 주지 않는 기타 커널 수준 격리 메커니즘입니다.