클라이언트에서 서버로 이동할 수 있고 자동화된 방식으로 서비스 중지와 같은 루트 수준 작업을 수행할 수 있는 것(특히 Linux 상자)이 있습니까? (서비스와 관련 없음)
예: 서버 측에서 dnsmasq를 실행하는 DHCP 서버에서 클라이언트에 주소를 발행합니다. 클라이언트는 주소를 수신하고 어떻게든 서버에 "괜찮습니다. 이제 dnsmasq를 중지해도 됩니다"라고 말합니다. 이것이 가능합니까? 그렇다면 어떻게 해야 할까요?
이것이 큰 보안 허점이 될 것이라는 점을 충분히 인식하고 많은 경우 일종의 인증이 필요하다고 추측하지만 이것이 가능한지 궁금합니다. 나는 이것에 대해 본 예를 생각할 수 없습니다.
답변1
이를 수행하는 안전한 방법은 SSH를 사용하는 것입니다. 클라이언트가 다음 명령을 실행할 수 있도록 서비스별 사용자("dhcpkiller")와 개인/공개 키 쌍을 만듭니다.
ssh dhcpkiller@dhcpserver pkill dnsmasq
이 한 줄 스크립트는 dhcp 환경에 의해 트리거되며 클라이언트의 DHCP 제품군에 따라 다양한 방식으로 발생할 수 있습니다. dhclient/RHEL 맨페이지 인용:
dhclient는 REBOOT/BOUND 상태에서 새 IP 주소, 서브넷 마스크 및 경로를 인터페이스에 가져온 후 즉시 실행 파일이 있는지 확인
/etc/dhcp/dhclient-up-hooks script
하고원천 발견된 경우. 이 스크립트는 사용자 환경에서 기본적으로 처리되지 않는 DHCP 옵션을 처리합니다.dhclient가 클라이언트 구성 스크립트를 호출해야 하는 경우 환경에서 변수 세트를 정의한 다음 /sbin/dhclient-script를 호출합니다. 모든 경우에 $reason은 스크립트를 호출한 이유의 이름으로 설정됩니다. 현재 정의된 이유는 MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL, STOP, RELEASE, NBI 및 TIMEOUT입니다.