ShellInABox은 Ajax를 통해 브라우저에 컬러 터미널 인터페이스를 제공하는 것으로 보입니다. (homepage) 별도의 웹 서버로 실행되므로 사용자를 사이트의 다른 포트에 연결해야 할 수 있습니다. 분명히 더 많은 대안 (이 같은 다른 프로젝트)이 있습니다.
다음 조언은 ShellInABox를 사용하는지 또는 ssh 액세스를 계속 제공하는지에 관계없이 적용됩니다.
완전히 알 수없는 경우와 신뢰 모든 사용자는 다음 중 하나 이상이 충돌 또는 시스템에 휴식에 결정되는 whizzkid 크래커, 가정. 그가 시도하려고하는 첫 번째 일은 로그인하고 forkbomb을 실행하는 것입니다.
따라서 사용자는 샌드 박스 사용자에게 최선을 다해야 시스템이나 서로를 해칠 수 없습니다. 허용 된 작업을 수행하는 데 필요한 것만 액세스 권한 (파일/폴더/네트워크 액세스)을 제한하십시오. SELinux와 AppArmor에는이 기능이 있습니다. 더 많은 샌드 박스 기술을 찾을 수 있습니다 here 및 here. Docker은 조사할만한 새로운 시스템입니다.
이가하는 모든 사용자가 동일한에되지 않습니다 샌드 박스에서 휴식을 관리 할 수 있도록, 당신의 주요 웹 서버에서하는 별도의 또는 가상 시스템에서 별개을 로그인 서버를 호스트하는 것은 매우 현명 할 것 다른 서비스와 마찬가지로 (하지만 그는 여전히 당신의 LAN에있을 것입니다!) User-mode-linux는 덜 안전한 대안이고 chroot는 여전히 나 빠졌지 만 아무것도하지 않는 것이 낫습니다! 사용자가 파일 저장 할 수 있어야합니다 경우
는 그때 자신의 파일은 세션간에 유지해야 특히, 각 사용자에게 별도의 계정을주고 추천 할 것입니다. 물론 자동 로그인의 문제 해결 방법으로 은 모든 사용자에 대해 암호 guest555
인 guest
계정을 제공 할 수 있지만 악의적 인 사용자는 파일을 삭제하거나 셸 시작 스크립트에 불쾌한 것을 넣어 다른 사용자를 괴롭힐 수 있습니다. (크래커들이 정기적으로 그 계정을 호스팅하는 ssh 서버에 대한 그물을 스캔하기 때문에 나는 확실히 guest/guest
을 추천하지 않는다.)
쉘을 열거 나 PHP를 통해 명령을 실행할 수있는 가능성이 있지만 나는 정말로 추천하고 싶지 않다. 그.SSH가 해결책이 아닌 이유는 무엇입니까? – frlan
예 SSH는 직접적인 해결책입니다. 나는 가능하다면 다른 대안을 모색 중입니다. 또한 웹 서버는 사설망에 있습니다. 보안이 PHP 기반 솔루션의 유일한 관심사입니까? –
@bhp : 음 .... 보안은 웹에서 무언가를하지 않는 첫 번째 이유 중 하나 여야합니다.)하지만 실제로 배포 할 솔루션은 무엇이든간에 사용자 계정과 암호로 퍼지해야합니다. 서비스를 차단하고 사용자 권한뿐만 아니라 사용자 권한을 차단합니다. – frlan