Linux 보안 및 루트 액세스 문제…
저는 블록체인 검증인 노드가 실행되는 서버를 설정하고 있습니다. 서버 보안을 강화하려고 합니다. 노드 실행에 필요한 포트를 제외한 모든 포트에 대해 ufw를 설정했습니다. 나는 ed25519를 사용하여 2FA, SSH를 설정한 다음 어떤 말도 안되는 이유로 누군가가 접속했는지 알아내려고 시간을 보냈습니다. 어떻게 누군가가 권한을 사용 systemctl
하거나 poweroff
갖는 것을 막을 수 있습니까? sudo
목표는 가동 시간을 최대화하고 항상 다른 노드와 동기화되는 것입니다.
어쨌든 bash
SSH를 허용하는 사용자 계정에 대한 명령을 차단하기 시작했고 SSH를 root
. 그래서 너무 많은 걸 차단하기 시작했어요, 하하. 사용자를 비활성화하고 노드 뿐만 아니라 sudo
사용자가 계속 사용할 수 있는 많은 명령을 차단 하더라도 . 마침내 나는 이것을 발견했다systemctl
stop
service
가이드사용자가 몇 가지 명령만 실행하도록 허용하는 방법에 대해 설명합니다.
결국 사용자의 명령을 모두 삭제하고 su 명령을 심볼릭 링크한 후 나만 아는 임의의 명령으로 이름을 바꿨습니다. 사용자가 실행한 다른 모든 명령은 응답합니다.
-rbash: /usr/lib/command-not-found: restricted: cannot specify /' in command names
내가 가져갔고 bash history
, bash autocomplete/tab completion
. 이제 당신이 할 수 있는 유일한 일은 명령을 추측하는 것뿐입니다. 이 경우 여전히 내 root
비밀번호를 전달해야 합니다.
어쨌든, 최고의 보안 관행에는 "루트 비활성화"가 포함된다는 말을 계속 들었기 때문에 이렇게 말하는 것입니다. 때때로 나는 그것이 단지 루트 SSH를 비활성화한 것이라고 생각하지만 때로는 루트 계정을 비활성화하는 것과 같다는 것을 읽었습니다. 어떤 사람들은 sudo
개별 사용자를 더 쉽게 추적할 수 있도록 비밀번호를 비활성화하고 비밀번호를 권한과 분리하려고 한다고 말합니다 .
제 경우에는 어떻게든 루트 액세스 권한을 유지해야 하는데 기본적으로 루트 사용자에게는 모든 것을 숨깁니다. 따라서 누군가 루트 액세스 권한을 얻으면 그걸로 끝입니다. 그러나 그 뒤에는 2FA, SSH 및 알 수 없는 명령이 있으며 루트에 액세스하려면 비밀번호를 입력해 볼 수 있습니다.
"루트 보안 비활성화"는 완전히 잘못된 것이므로 완전히 비활성화해야 한다고 생각합니까, 아니면 지금까지 수행한 작업이 의미가 있습니까?