이것은 기술적인 질문이나 문제가 아니라 제가 직면하고 이를 파악하고 해결하려고 노력해야 했던 프로그래밍 시나리오이므로 이 시나리오에 대한 몇 가지 팁이 필요합니다.
우리 팀은 클라우드(AWS)에서 수많은 다른 사용자의 Linux 머신을 관리해야 합니다. 각 시스템은 데이터베이스 서버, 애플리케이션 서버 또는 웹 서버입니다. 프로그래밍 방식으로 이를 감지할 수 있는 방법이 있습니까?
이 사용자는 우리 팀이나 회사의 일부가 아닙니다. 이들은 최종 사용자일 뿐이며 우리는 허가를 받아야만 Linux 서버를 제어할 수 있습니다. 따라서 문제는 우리가 그들의 기계를 어떻게 감지하는가입니다.
예를 들어, 특정 Linux 시스템 내에서 검색하여 그것이 데이터베이스 서버인지 애플리케이션 서버인지 식별할 수 있는 방법은 무엇입니까?
Linux 시스템의 유형을 식별할 수 있는 방법이 있습니까?
예를 들어:
- 일부 개발자는 클라우드에서 일부 Linux 시스템을 만들고 MySQL, Oracle 또는 기타 관련 데이터베이스 소프트웨어만 설치하여 데이터베이스 작업만 처리하는 데이터베이스 Linux 서버가 됩니다.
- 그리고 일부 개발자는 Apache 또는 기타 웹 서버 관련 소프트웨어를 설치하여 웹 서버로 만들고 웹 관련 작업만 수행하며 어떤 종류의 데이터베이스 작업도 처리하거나 수락할 수 없는 일부 Linux 시스템을 만듭니다.
미리 감사드립니다.
답변1
nmap을 사용하여 열려 있는 포트에서 이러한 노드를 검색할 수 있습니다. 이러한 서비스가 표준 애플리케이션 포트를 사용한다면 안정적이어야 합니다.
nmap 사용법의 간단한 예가 있습니다:
nmap -sS -O server.mydomain
...
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
514/tcp open shell
2301/tcp open compaqdiag
2381/tcp open compaq-https
...
관심 있는 서비스에서 사용되는 더 많은 예제와 포트를 보려면 Google을 참조하세요.