아니요, 방화벽이 없습니다.

아니요, 방화벽이 없습니다.

example1.com제가 도메인 두 개를 소유하고 있고 example2.com
Node.js 웹 애플리케이션 2개를 실행하는 서버도 있다고 가정해 보겠습니다 .

  • app1이 포트 81에서 실행 중이고
  • app2가 포트 82에서 실행 중입니다.

이제 두 도메인이 모두 이 서버에 연결되어 있습니다. 즉, 방문하거나 http://example1.com:81방문 하면 http://example2.com:81app1 페이지가 표시되고, 방문하거나 http://example1.com:82방문하면 http://example2.com:82app2 페이지가 표시됩니다.

이제 내 질문: iptables를 사용하여 도메인의 모든 요청을 차단할 수 있습니까?

누군가 요청하면 http://example1.com:81app1을 받게 됩니다.
그러나 물어보면 http://example1.com:82대답을 듣지 못합니다.

마찬가지로 누군가 요청하면 http://example2.com:82app2를 받게 되지만
요청하면 http://example2.com:81응답을 받지 못합니다.

내 질문이 명확해지기를 바랍니다. 제목에 설명하는 데 어려움이 있었습니다. 죄송합니다.

답변1

"이제 내 질문은: iptables를 사용하여 도메인의 모든 요청을 차단할 수 있습니까?"

아니요, 방화벽이 없습니다.

도메인 이름은 IP나 TCP 또는 레벨 1 -> 3의 일부가 아니기 때문입니다. 먼저 클라이언트는 도메인 이름에서 IP 주소를 조회한 다음 해당 IP 주소를 사용하여 통신합니다.

이를 수행하는 방법에는 여러 가지가 있습니다.

일부 프로토콜(예: http)은 요청에 도메인 이름을 포함합니다. 따라서 웹 서버 구성에 필터링을 배치할 수 있습니다.

원한다면 단일 포트를 통해 모든 작업을 수행할 수 있습니다. 아니면 질문에 명시된대로.

답변2

아니요, IPtables에 포트 81의 모든 트래픽을 차단하도록 지시할 수는 없지만 포트 81의 트래픽은 허용합니다. 어느 것? 수락하시겠습니까, 아니면 차단하시겠습니까? 차단하는 경우 그들이 원하는 도메인 이름을 어떻게 알 수 있나요? 그들이 원하는 도메인 이름을 어떻게 알 수 있다면 차단하기로 결정하기 전에 이를 수락하지 않습니까?

HTTP 수준에서 원하는 작업을 수행해야 합니다. Apache를 사용한다고 가정하면 특정 포트의 특정 도메인만 수신하도록 가상 호스트 컨테이너를 구성할 수 있습니다. 사용자의 연결은 IPtables에 의해 차단된 것처럼 시간 초과되지 않지만 블랙 페이지, 오류 메시지, 리디렉션 등을 수신할 수 있으며 이로 인해 실제로 잘못된 포트에서 서비스를 사용하는 것이 방지됩니다.

귀하의 프로젝트에 대해서는 잘 모르겠지만 Apache를 사용하여 트래픽을 으로 전달할 수 있다고 생각합니다. node.js그렇게 할 수 있다면 다른 포트를 사용할 필요가 없습니다. Apache는 동일한 포트에서 모든 트래픽을 허용할 수 있으며 프록시는 제공된 호스트 이름에 따라 node1.js해당 트래픽을 전달합니다 .node2.jsexample1.comexample2.com

관련 정보