localhost를 가리 키도록 IP 주소를 변경하는 방법은 무엇입니까?


10

웹앱의 샌드 박스 환경은 http://<my_ip_address>로그인 이름없이 IP 주소로 직접 접근 할 수 있습니다 .

로 이름이 지정된 로컬 컴퓨터에서 가상 호스트를 만들고 <my_ip_address>/ etc / hosts를 변경 하여 로컬 호스트로 "리디렉션"할 수있는 방법이 있습니까?

127.0.0.1 <my_ip_address>

그래서 URL을로드하면 http://<my_ip_address>브라우저가 로컬 호스트를 가리 킵니까? 이미 도메인 이름을 리디렉션 할 수있는 방법입니다.

답변:


21

호스트 파일은 도메인 이름을 IP와 연결하는 데만 사용할 수 있습니다. IP를 IP에 매핑 할 수 없습니다.

방화벽을 통해 IP를 변경할 수 있습니다 . Linux에서 기본 방화벽은 iptables 명령으로 제어됩니다 . "man iptables"는 문서입니다. Google은 입문 설명을 위해 iptables를 설명합니다.

일부 링크 :

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

특히 PC에서 발신 요청을 IP 주소 ( <my_ip_address>)로 변경하여 다른 IP 주소 (이 경우 127.0.0.1)로 이동하려고합니다. "대상 IP"( 예 : 123.45.67.89)가 주어지면 NAT ( 네트워크 주소 변환 ) 를 수행 <my_ip_address>하여 다른 "대상 IP"(127.0.0.1)로 변경하려고합니다.

이것을 시도하십시오 ( 123.45.67.89 대신에 변경 해야하는 ip_address를 넣으십시오).

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1

세부:

-t nat = 한 주소를 다른 주소로 변환하기위한 테이블

-A OUTPUT = 로컬로 생성 된 발신 패킷에 대한 규칙 목록에 추가됩니다. 보안 경고 : 규칙에이 OUTPUT 지시문이 포함되어 있는지 확인하십시오. 그렇지 않은 경우, 규칙은 가능한 보안 허점을 생성합니다. 원격 위치에서 들어오는 패킷이 일치하면 localhost로 보내지기 때문입니다.

-p all = 모든 프로토콜 (tcp, udp 및 icmp)에 적용됩니다.

-d 123.45.67.89 = 패킷이 도착한 원래 IP 주소 (대상).

-j DNAT = 규칙이 일치하면 (이 경우 발신 패킷에 대상 IP 123.45.67.89가있는 경우) 대상을 변경하는 DNAT로 처리하십시오.

--to-destination 127.0.0.1 = DNAT에게해야 할 일을 알려줍니다. 원래 대상을 "127.0.0.1"로 바꾸십시오.

(참고 : 특정 웹 페이지에 대한 요청을 가로채는 것과 같이보다 복잡한 상황이 발생한 경우 다른 해결책은 "프록시"소프트웨어를 사용하는 것일 수 있습니다.)


여기에는 보안 문제가 있습니다. 127.0.0.1은 일반적으로 모든 원격 호스트에서 도달 할 수없는 것으로 이해됩니다. 필터링을 추가하지 않고 변경하면 실수로 보안 조치를 무효화 할 수 있습니다.
Slartibartfast

@Slartibartfast-OUTGOING 요청 만 변경합니다. 그리고 우리는이 PC의 방화벽을 변경하고 있습니다. (외부 사이트로 나가는 일부 요청은 우리 자신으로 되돌아갑니다.) 이것은 들어오는 요청을 변경하지 않으므로 원격의 누군가가보고 / 할 수있는 것에 영향을 미치지 않습니다. 이것을 감안할 때 여전히 보안 문제가 있습니까?
ToolmakerSteve

1
... 필수 안전 조치는 규칙에 "-A OUTPUT"을 포함시키는 것입니다. 귀하의 의견에 따라 사람들은 당신이 설명하는 위험을 생략하는 것을 알고 있어야합니다. 이를 강조하기 위해 의견을 추가하겠습니다.
ToolmakerSteve

3
잘 작동하지만 iptables --list 또는 --list-rules 어디에나 나열되어 있지 않습니다. 더 이상 필요하지 않은 경우 어떻게 나열하고 삭제합니까?
Filip Stefanov

@FilipStefanov (Bit late I know!) : 옆에 숫자가있는 nat 규칙을 나열하십시오. iptables -t nat --list --line-numbers 그런 다음 해당 숫자로 규칙을 정하지 마십시오. iptables -t nat -D OUTPUT <number>
Richard Walton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.