이유를 기록하기 위해 재부팅하는 등 명령 기능 확장

이유를 기록하기 위해 재부팅하는 등 명령 기능 확장

예를 들어 시스템 명령의 기능을 확장하여 이러한 명령이 실행될 때 사용자가 감사 추적의 일부로 이유 및 기타 정보를 입력해야 하는 것이 가능합니까 reboot? Windows 서버와 같습니다.shutdown -r nowinit 6

따라서 재시작 목적을 입력한 후에는 로그 어딘가에 저장해야 합니다. 예를 들어 목적에는 사용자가 명령을 실행한 변경 번호, 날짜가 포함되어야 합니다.

답변1

Windows Server에 익숙하지 않은 분들을 위해 잠시 비교 설명을 드리겠습니다. Windows Server를 종료하거나 다시 시작하라는 메시지가 표시되면 GUI는 사용자에게 요청 이유를 제공하라는 메시지를 표시하고 해당 내용은 감사 로그에 기록됩니다. (이는 PowerShell(명령줄) 다시 시작 요청의 경우 선택 사항입니다.) 또한 다시 시작할 이유 없이 Windows Server가 시작되면 다음에 적절한 권한이 있는 사용자가 시스템에 로그인할 때 다시 시작하라는 메시지가 표시됩니다. .


귀하의 제안은 어느 정도 효과가 있습니다. reboot예약된 작업이나 로그인한 관리 사용자가 없는 다른 위치에서 명령이 실행되는 경우 어떤 일이 발생하는지 고려해야 합니다 . 또한 간단한 감사 추적을 제공하려는지, 아니면 우회가 거의 불가능할 정도로 시스템에 너무 깊은 감사 추적을 제공하려는지 여부와 같이 시나리오에서 어느 정도까지 진행하고 싶은지 고려해야 합니다. 분명히 후자의 비용은 증가할 것이다.

이 문제를 해결하는 한 가지 방법은 명령을 예를 들어 로 옮기는 것 입니다 reboot. 그런 다음 GUI나 명령줄을 통해 필요한 이유와 기타 정보를 표시하는 reboot.bin스크립트를 만듭니다 . 이는 적절한 로그 파일(아마도 ) reboot에 기록하여 수행됩니다 . 이 프로세스는 다른 "보호된" 명령에 대해 반복될 수 있습니다. 에티켓 외에도 권한이 있는 사용자가 실제 사용자 등을 직접 실행하는 것을 막을 수 있는 방법은 없습니다 .syslogauth.logreboot.bin

이것molly-guard이것을 구현, 실제 명령을 실행하기 전에 일련의 스크립트를 실행합니다.

이 문제를 처리하는 또 다른 방법은 "보호된" 명령의 소스 코드를 가져와서 기본적으로 확장하는 것입니다. 작업이 더 어렵고, 피하기가 조금 더 어렵습니다. (Windows에서 닫기 대화 상자를 우회하는 것은 어렵지 않습니다. 명령줄을 사용하면 됩니다.)

관련 정보