저는 네트워킹이 처음이고 많은 기본 사항을 알고 있지만 어떻게 인터넷이 로컬 영역 네트워크에 있는 장치와 직접 연결할 수 없는지 이해가 되지 않습니다.
라우터와 NAT는 모든 장치가 네트워크에 대해 동일한 IP를 갖도록 허용하고 요청을 웹으로 라우팅한 다음 요청한 클라이언트로 다시 라우팅한다는 것을 알고 있지만 내 질문은 다음과 같습니다.
내가 누군가의 컴퓨터를 해킹하고 싶었고 그의 홈 네트워크(라우터) IP를 알고 있다고 가정해 보겠습니다. 가장 일반적인 개인 주소(예: 192.168.1.1-80)로 이동하기 위해 인코딩된 데이터를 사용하여 해당 IP로 데이터를 전송하고 실제로 "개인" 장치로 데이터를 보낼 수는 없나요?
IP는 일반적으로 요청한 장치와 직접 데이터를 주고받습니다. 따라서 라우터 IP를 알고 있고 개인 IP를 정확하게 추측했다면 해당 장치에 대한 해킹을 막을 수 있는 방법은 무엇입니까?
IP가 아닌 라우터/NAT에서 발생하는 올바른 클라이언트로 데이터를 라우팅하는 또 다른 수단이 있다고 가정하지만 이것이 어떻게 수행되는지 잘 모르겠습니다.
아니면 단순히 이런 식으로 악의적인 데이터를 보낼 수 있지만 모든 소프트웨어가 어쨌든 데이터에 대해 아무 작업도 수행하지 않으면(요청을 보내지 않음) 아무런 이점이 없습니다.
내가 찾은 모든 정보는 일반적으로 개인 IP가 전반적으로 더 적은 공용 IP를 사용하도록 허용하는 방법에 대해서만 설명하고 개인 IP 클라이언트에 대한 외부 세계 액세스를 차단하는 요인은 실제로 언급하지 않습니다.
누군가 나에게 이것을 설명해 줄 수 있습니까?
답변1
인터넷이 로컬 영역 네트워크에 있는 장치와 직접 연결할 수 없는 이유를 이해할 수 없습니다.
IP는 일반적으로 요청한 장치와 직접 데이터를 주고 받습니다.
인터넷의 원래 디자인은 이것이 모든 것이 작동하는 방식이라는 점을 명심하십시오. 인터넷은 "엔드 투 엔드"로 가정되고 IP 주소는 문자 그대로 전역적이어야 합니다. 주어진 IP 주소가 세상에 있다면 나는 그것에 말할 수 있고 그것은 나에게 말할 수 있습니다.
문제는 IPv4 주소가 부족하여 NAT와 같은 체계를 사용해야 한다는 것입니다.
NAT는 원래 예상했던 방식이 아니었고, 부작용으로 보안상의 이점도 있지만 인터넷의 종단 간 원칙을 깨뜨리고 중개인 역할만 하는 서비스를 장려합니다. 보안/임대에 좋습니다. 수집, 자유/가난한 사람들에게는 좋지 않습니다.
라우터와 NAT를 사용하면 모든 장치가 네트워크에 대해 동일한 IP를 가질 수 있다는 것을 알고 있습니다.
네트워크 외부에서만 이런 방식으로 나타납니다.
네트워크 뒤에 있는 각 시스템에는 개인 IP 범위 중 하나의 고유한 IP가 있습니다.
NAT는 라우터 뒤에 있는 시스템이 다른 IP에 연결할 수 있도록 라우터에서 이러한 환상을 관리하고, 포트가 제대로 전달되면 IP가 라우터 뒤에 있는 시스템과 통신할 수 있도록 합니다.
가장 일반적인 개인 주소(예: 192.168.1.1-80)로 이동하기 위해 인코딩된 데이터를 사용하여 해당 IP로 데이터를 전송하고 실제로 "개인" 장치로 데이터를 보낼 수는 없나요?
아니요.
192.168.1.80은 인터넷에 존재하지 않습니다. NAT 라우터 뒤에만 존재합니다. 먼저 NAT 라우터를 뒤져야 합니다. 이를 수행하는 유일한 방법은 먼저 NAT 라우터의 공용 IP와 대화하는 것입니다.
사실, 해당 IP 192.168.1.80과 자신의 IP가 동일한 서브넷에 있는 경우 트래픽이 네트워크를 떠나지도 않고 시스템이 로컬 NIC에서 192.168.1.80에 도달하려고 시도합니다. 라우터에도 도달하지 않습니다.
그렇다면 라우터 IP를 알고 있고 개인 IP를 정확하게 추측했다면 해당 장치에 대한 해킹을 막을 수 있는 방법은 무엇일까요?
NAT 라우터는 들어오는 연결을 모니터링하고 추적합니다.
새로운 TCP 연결이 전달된 포트에 연결을 시도하는 경우에만 라우터 뒤에 있는 시스템으로 데이터를 전달합니다.
UDP는 연결이 없으므로 NAT 라우터가 제대로 작동하는 경우 한동안 보지 못한 UDP 트래픽을 뒤에 있는 시스템으로 전달하지 않습니다. 연결이 없는 특성으로 인해 UDP로 NAT 라우터를 속이는 것이 가능합니다. 하지만 먼저 그 뒤에 있는 시스템이 해당 포트에 무언가를 보내도록 하고 들어오는 트래픽이 다시 돌아올 수 있다는 것을 NAT 라우터에 확신시킬 수 있는 경우에만 가능합니다. 예를 들어 STUN과 같이 이와 유사한 것에 의존하는 몇 가지 프로토콜이 있습니다.
답변2
라우터 공용 IP 주소와 내부 주소를 알고 있다고 해서 자동으로 내부 주소를 공개 주소로 지정할 수 있는 것은 아닙니다.
IP를 사용하면 공용 주소에 연결할 수 있지만 해당 공용 주소 뒤에 주소가 있다는 것을 자동으로 암시하거나 주소가 있더라도 데이터를 전달할 수 있는 수단을 제공하지 않습니다.
주소는 "이 시스템과 이 포트로 이동"이 아니라 "이 시스템과 포트로 이동한 후 다른 시스템과 포트로 전달되고 거기에서 이다른주소와 항구"
누군가가 당신에게 편지를 보낸다고 생각해보세요. 우체국은 상관없어요WHO주소에 있습니다. 게시물을 올바른 슬롯에 넣었을 뿐입니다. 우편물이 슬롯을 통과했다면 주소에 있는 누군가가 편지를 보고 편지가 누구에게 전달되어야 하는지 알아내야 합니다.
네트워크에서도 동일한 일이 발생하지만 NAT는 "Jim"을 영구 내부 주소로 허용하지 않습니다. 내부 대 외부 매핑은 네트워크 내부의 무언가가 연결을 요청하는 인터넷에 도달할 때 발생합니다. 이때 연결이 닫힐 때까지 사용되는 "jimTmp12345@PublicIP" 사서함이 효과적으로 생성됩니다. 이 지점에서 주소는 유효하지 않으며 주소가 지정된 모든 항목은 지역 매립지에 버려집니다.
답변3
대부분의 NATing 라우터는 단순한 라우터가 아닌 방화벽 역할을 하도록 구성됩니다.
다음 네트워크를 고려하십시오.
NAT가 없으면 장치는 직접 통신해야 합니다.
192.168.1.2
얘기하고 싶어192.168.0.2
- 기본 경로는
192.168.1.1
(라우터 A) 입니다. - 라우터 A는 (라우터 B)를
192.168.0.0/24
통해 연결할 수 있음 을 알고 있습니다.198.51.100.2
- 라우터 B는 직접 연결되어
192.168.0.0/24
패킷을 전달합니다.
- 기본 경로는
192.168.0.2
답장하고 싶어192.168.1.2
- 기본 경로는
192.168.0.1
(라우터 B) 입니다. - 라우터 B는
192.168.1.0/24
다음을 통해 도달할 수 있다는 것을 알고 있습니다.198.51.100.1
- 라우터 A는 직접 연결되어
192.168.1.0/24
패킷을 전달합니다.
- 기본 경로는
라우터 A에 NAT가 있지만~ 아니다라우터 B의 경우 상황이 약간 변경됩니다.
192.168.1.2
얘기하고 싶어192.168.0.2
- 기본 경로는
192.168.1.1
(라우터 A) 입니다. - 라우터 A는 "IP 매스커레이딩"이므로 소스 주소를
192.51.100.1
(외부 인터페이스) 로 다시 씁니다. - 라우터 A는 (라우터 B)를
192.168.0.0/24
통해 연결할 수 있음 을 알고 있습니다.198.51.100.2
- 라우터 B는 직접 연결되어
192.168.0.0/24
패킷을 전달합니다.
- 기본 경로는
192.168.0.1
답장하고 싶어198.51.100.1
- 기본 경로는
192.168.0.1
(라우터 B) 입니다. - 라우터 B는 직접 연결되어
198.51.100.0/24
패킷을 전달합니다. - 라우터 A는 번역 테이블을 검토하고 대상을 다음과 같이 다시 작성합니다.
192.168.1.1
- 라우터 A는 직접 연결되어
192.168.1.0/24
패킷을 전달합니다.
- 기본 경로는
이 시점에서아무것도 아님호스트가 192.51.100.1
라우터로 사용하는 것을 중지하고 호스트에게 패킷을 전달하도록 요청합니다 192.168.1.2
.아무것도 아님. 답변이 가장 무도회될 가능성이 높아 소통이 다소 미흡할 수 있습니다."도전적인"하지만 소통은 소통이다.
이를 확장해 "인터넷" 내 "를 바꿀 수도 있습니다멈출 일이 없어..." 진술이 다소 있습니다. 지원 자료는 없지만 인터넷 라우터가 실제로 개인 네트워크 주소를 대상으로 트래픽을 전달하도록 구성되어 있다면 매우 놀랄 것입니다. 대신 그러한 패킷을 삭제할 가능성이 높습니다. 결과는 이것을 시도한다는 것입니다. 라우터가 제대로 구성되지 않은 경우에도 인터넷이 작동하지 않을 수 있습니다.
이 외에도 라우팅 작동 방식으로 인해(예: 호스트가 로컬 네트워크에 없으면 MAC 주소는 라우터를 대상으로 하고 IP 주소는 최종 호스트를 대상으로 함) 이를 사용할 수 있는 방법이 없습니다. 192.51.100.1
A) 귀하가 라우터에 연결되어 있지 않은 한 라우터로 사용됩니다 . 또는 B) 기존 경로가 트래픽을 해당 방향으로 밀어냅니다.
198.51.100.1
다른 호스트가 단순히 단순 라우터로 사용하는 것을 방지하려면 방화벽 규칙이 필요합니다.
198.51.100.1
한 가지 접근 방식은 해당 주소를 명시적으로 대상으로 삼지 않는 라우터 A의 외부 인터페이스( )에서 들어오는 패킷을 거부(또는 삭제)하는 것입니다 .
이렇게 하면 문제도 해결됩니다.약한 호스트 모델Linux가 구현하는 것(예: 라우터 B는 이를 통해 라우터 A와 통신할 수 있습니다.외부인터페이스에 할당된 주소를 사용하여내부상호 작용).
답변4
[NAT] 요청을 웹으로 라우팅하고 이를 요청한 클라이언트로 다시 라우팅합니다.
맞습니다. 하지만 작동 방식을 명확히 설명하면 NAT를 사용하면 일반적으로 트래픽이 네트워크를 떠나기 전에 개인 IP 주소가 공용 IP 주소처럼 보이게 됩니다. 따라서 웹은 트래픽을 개인 IP 주소로 다시 라우팅하지 않습니다. 웹은 귀하가 볼 수 있는 공용 IP 주소로 트래픽을 반환합니다.
문제 번호 1:
NAT의 작동 방식을 자세히 이해하면 일부 질문에 대한 답을 찾는 데 도움이 될 것입니다. 내가 본 가장 일반적인 구현은 NAPT("네트워크 주소 포트" 기반 변환)입니다. 개인 주소에서 데이터를 보내면 라우터는 해당 개인 주소를 가져와 해당 정보를 라우터 메모리의 차트/테이블에 추가합니다. 라우터는 또한 TCP 또는 UDP 포트 번호(아마도 무작위로 선택됨)를 선택하고 동일한 차트/테이블에서 이를 추적합니다. 그런 다음 라우터는 공용 IP 주소를 사용하여 정보를 인터넷으로 전송하고 "소스 포트" 번호를 선택한 번호로 식별합니다. (TCP와 UDP는 모두 두 개의 포트 번호, 즉 "소스" 번호와 "대상" 번호를 사용합니다.) 대상(예: TCP 포트 443을 수신하는 웹 서버)이 TCP 포트 443으로 가고 다른 곳에서 들어오는 트래픽을 알아차릴 때 다른 TCP 포트(예: TCP 포트 53874)를 사용하는 경우 해당 서버는 동일한 TCP 포트(예: TCP 포트 53874)에서 원래 라우터의 공용 IP 주소로 트래픽을 다시 전송하여 응답할 수 있습니다. 그런 다음 라우터는 테이블/차트에서 정보를 조회하고 정보를 보낼 개인 IP 주소를 파악합니다.
개인 IP 주소를 무작위로 선택한 경우 라우터의 테이블/차트에 해당 개인 IP 주소가 없어야 하므로 작동하지 않습니다.
IP가 아닌 라우터/NAT에서 발생하는 올바른 클라이언트로 데이터를 라우팅하는 또 다른 수단이 있다고 가정하지만 이것이 어떻게 수행되는지 잘 모르겠습니다.
아니요.
내 말은, 네, 그렇습니다. 발생할 수 있는 다른 라우팅이 있으므로 이를 빠르게 인정하겠습니다. 일부 데이터/신호 클라우드에 사용할 수 있는 802.1q "VLAN" 태깅 및 기타 기술이 사용되며 트래픽이 네트워크를 통해 이동하는 방식에 영향을 줄 수 있습니다. 그러나 이러한 추가 라우팅 방법은 일반적으로 속도, 보안 또는 호환성(주로 전화 회사 내부의 일부 오래된 네트워크와 같은 비IP 네트워크)을 위해 배포됩니다. 이러한 고급 전문가 수준 네트워킹 기술이 기본 라우팅 작동 방식을 이해하는 데 새롭고 필요한 부분을 소개할 것이라고 생각할 필요는 없습니다. 기본 단순 IP 라우팅을 사용하여 원하는 내용을 설명할 수 있기 때문입니다.
문제 #2: 라우터의 내부 방어
이제 라우터가 NAPT를 수행하지 않는 것처럼 가정하고 공용 TCP/UDP 포트 번호와 개인 주소를 일치시키는 전체 테이블/차트를 무시하겠습니다. 당신이 고객의 ISP에 앉아 악의적으로 라우터를 통해 고객의 개인 IP 주소로 패킷을 보내고 싶다고 가정해 보겠습니다.
매우 기본적인 방화벽과 같은 작업을 수행하는 대부분의 라우터는 들어오는 트래픽이 "WAN"("Wide-Area Network"의 약자)이라고 표시된 포트에 도착하고 있음을 알아차립니다. 어느 정도 보호를 제공하기 위해 라우터는 해당 네트워크 포트로 들어오는 트래픽이 라우터의 공용 IP 주소를 사용해야 하며 일반적인 "개인" IP 주소 범위를 사용해서는 안 된다는 점을 인식하게 됩니다.
따라서 라우터는 패킷을 삭제하여 네트워크를 방어합니다.
문제 3: ISP가 우리를 더 잘 보호합니다
모든 ISP의 표준은 개인 IP 주소 범위(다음에서 식별된 네트워크 주소 범위)와의 트래픽을 허용하지 않는 것입니다.IETF RFC 1918 섹션 3IPv4의 경우, IPv6의 경우 "fd"로 시작하는 주소).
따라서 집에서 ISP를 거쳐 ISP의 나머지 주요 인터넷 백본을 거쳐 피해자의 ISP를 거쳐 피해자의 라우터를 거쳐 마지막으로 "개인 IP"로 트래픽을 전송하려는 경우 당신이 선택한 주소라면 당신은 실패할 것입니다. 이는 ISP가 일반적으로 개인 IP 주소와 관련된 트래픽을 차단하는 규칙을 따르기 때문입니다. (ISP가 이것을 하지 않는다면 미친 짓이 될 것입니다.)
위의 시나리오에서는 대상 피해자의 ISP가 보호를 제공하지 않습니다. 물론, 대상 피해자의 ISP가 패킷을 삭제하도록 설정되어 대상 피해자의 라우터를 보호할 가능성이 높습니다. 그러나 ISP가 패킷을 삭제할 가능성이 높으므로 패킷이 대상 피해자의 ISP에 도달하지 못할 수도 있습니다.
문제 4: ISP 동기 부여
ISP가 개인 IP와 관련된 트래픽을 허용하는 데 미친 이유는 무엇입니까?
모든 조직은 자체 내부 네트워크에 개인 IP 주소를 사용할 수 있다는 점을 명심하세요. 여기에는 ISP가 포함됩니다. ISP가 일부 ISP 로컬 장비에 대해 개인 주소 지정을 사용하고 있을 수 있습니다. 그들이 그렇게 하고 있는지 여부를 알아차리거나 감지할 수 없어야 합니다.
ISP가 트래픽을 라우팅하는 방식은 트래픽이 다음에 어디로 가야 하는지 결정하는 "라우팅 테이블"에 의존하는 것입니다. 이러한 "라우팅 테이블"은 개인 주소를 대상으로 하는 트래픽을 기꺼이 수신할 다른 ISP를 지정하지 않습니다. ISP는 자체 내부 장비 중 일부에 가능한 경우를 제외하고는 트래픽을 보낼 곳이 없습니다. 개인 IP 주소와 관련된 많은 트래픽은 악의적이거나 문제가 있을 수 있으므로(잘못 설정된 장치에서 들어오는 트래픽과 관련될 수 있음) ISP는 확실히 이러한 트래픽이 자체 내부 장비로 전송되는 것을 원하지 않습니다( ISP에 문제를 일으킬 수도 있음) 따라서 ISP는 개인 주소로 이동하는 패킷을 차단하려고 합니다.즉시, ISP 네트워크를 통한 트래픽을 더 이상 허용하기 전에.
ISP가 이러한 규칙을 위반한 경우 ISP는 대역폭을 사용하는 것 외에는 아무런 영향을 미치지 않을 가능성이 있는 악의적인 트래픽을 유도할 가능성이 높지만, 영향이 있는 경우 ISP에게는 좋지 않을 수 있습니다.
문제 5: 실제로 무슨 일이 일어날까요?
지금까지 인터넷이 트래픽을 차단하는 이유에 대해 설명했습니다. 하지만 실제로 무슨 일이 일어날지 살펴보겠습니다.
컴퓨터 앞에 앉아 개인 IP 주소로 악성 패킷을 보내기로 결정했다면 무슨 일이 일어날까요?
트래픽이 로컬 ISP까지 도달하면 해당 로컬 ISP는 이미 설명한 대로 트래픽을 즉시 차단합니다.
그러나 실제로 일어날 가능성이 있는 일은 트래픽이 로컬 ISP까지 도달하지 못한다는 것입니다. 대신 로컬 라우터가 해당 트래픽을 어떻게 처리할지 파악합니다.
동일한 "개인" IP 주소를 직접 사용하지 않는 경우 자체 라우터가 트래픽을 어떻게 처리할지 알 수 없으므로 트래픽이 삭제됩니다.
그렇지 않고 동일한 "개인 IP" 주소를 사용하고 있다면 현재 사용 중인 네트워크의 장치를 공격하게 될 가능성이 높습니다. 당신이 해당 네트워크의 관리자라면, 당신은 자신의 네트워크를 공격하는 것입니다!
어떤 경우에도 귀하의 라우터는 (공통 기본 구성을 사용하는 경우) 인터넷을 통해 트래픽을 전달할 가능성이 없습니다.
검토:
이러한 모든 문제는 인터넷이 개인 IP 주소에 대한 공격을 허용하지 않는 이유에 관한 것입니다. 실제로 대상과 동일한 로컬 네트워크에 있는 경우 라우터를 통과할 필요조차 없으므로 이러한 방어 수단 중 어느 것도 방해가 되지 않습니다. 그러나 인터넷의 다른 곳에 있는 경우에는 이러한 방어 기능이 그러한 공격을 시도하는 데 방해가 될 수 있습니다.
제어할 수 있는 라우터(적어도 일부 유형)에서는 특정 표준 규칙을 위반할 수 있지만 다른 조직에서도 개인 IP 주소를 차단하여 원격 시스템에 대한 공격을 효과적으로 방지할 수 있습니다.