iptables의 맥락에서 MASQUERADE는 무엇입니까?


42

에서 iptables몇 번이나 대상을 참조 무도회를 . 그게 뭐야? 나는 많은 것을 찾아서 발견했다. 그러나 MASQUERADE 가 이해하기 쉬운 방식 을 설명해 줄 누군가가 필요 합니까?

이 답변 에서 가져온 예 는 다음과 같습니다.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

답변:


33

iptables 구현에 의존하는 알고리즘으로, 원래 트래픽을 방해하지 않으면 서 트래픽을 라우팅 할 수 있습니다.

가상 Wi-Fi 어댑터를 만들고 Wi-Fi를 공유하려고 할 때 가장 무도회 알고리즘을 사용합니다.

Wi-Fi를 통한 이더넷 연결 공유에 대해서는 이야기하지 않고 Im을 가상 어댑터로 가장하여 Wi-Fi를 통해 wifi 연결을 공유하는 것에 대해 이야기합니다. 이것은 사실상 당신이 와이파이를 통해 와이파이 연결을 공유 할 수 있습니다.

.

.

이것을 읽고 MASQUERADE로 스크롤하십시오 : http://billauer.co.il/ipmasq-html.html

자세한 내용은 http://oreilly.com/openbook/linag2/book/ch11.html을 참조하십시오.

"Linux 용 연결"에 대한 모든 질문은 MASQUERADE 알고리즘을 구현하여 해결할 수 있습니다.

직접 예를 보려면 다음 페이지를 방문하십시오. http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

마지막 링크를 읽지 못했습니다 !!!! 그러나 다음은 정확한 발췌 / 예입니다.

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

나는 검색 엔진이 알고리즘을 해킹의 악의적 유형으로 만드는 방법을 정말로 싫어합니다. 나는 그것을 사용하여 인터넷을 내 안드로이드 폰과 공유합니다.

최종 편집 : 이 링크는 최고 http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias


내가 찾던 첫 번째 링크처럼 :)
Mohammad Reza Rezwani

MASUERADE규칙 (코드 목록의 세 번째 줄)을 테스트했으며 링크가 인터페이스에서 정확하게 공유되고 사용 가능합니다. 따라서 나는 무엇을위한 FORWARD규칙에 좌절 합니까? (코드 목록의 두 번째 줄에있는 규칙)

34

MASQUERADE는 규칙을 작성할 때 (서버가 동적으로 외부 IP를 가져올 때) inet 인터페이스의 외부 IP를 알 수없는 경우 SNAT 대상 (소스 NAT) 대신 사용할 수있는 iptables 대상입니다.


IP 주소를 알 때 무엇을 사용해야합니까?
Luc

4
@Luc, 원본 호스트의 IP 패킷에 원본 소스 IP 대신 배치해야하는 소스 IP를 정의한 SNAT 대상 (소스 네트워크 주소 변환). 이처럼 -j SNAT --to-source xx.xx.xx.xxxx.xx.xx.xx 원하는 인터페이스의 외부 IP는입니다. 그리고 외부 IP를 알고있을 때 사용해야 한다고 말할 수는 없습니다 . SNAT 대신 MASQUERADE를 사용하여 규칙을 유연하게 만들고 현재 가지고있는 특정 외부 IP에 바인딩하지 않고 싶습니다.
Sergey P. 일명 azure

7

IP Masquerade 는 NAT (Network Address Translation) 및 다른 유명한 운영 체제와 같은 네트워크 연결 공유라고도합니다. 기본적으로 인터넷 전체 IP 주소가없는 컴퓨터는 다른 컴퓨터와 인터넷 사이에있는 다른 컴퓨터의 도움으로 인터넷의 다른 컴퓨터와 통신 할 수 있도록하는 방법입니다.

아시다시피 IP 주소는 인터넷에서 컴퓨터를 식별하는 데 사용됩니다. IP 주소를 가진 패킷이 주어지면 인터넷을 구성하는 모든 라우터는 해당 패킷을 목적지로 가져갈 위치를 알고 있습니다. 이제 로컬 영역 네트워크 및 인터넷에 직접 연결되지 않은 다른 네트워크 내에서 개인용으로 예약 된 몇 가지 IP 주소 범위도 있습니다. 이 개인 주소는 공용 인터넷에서 사용되지 않아야합니다.

개인 네트워크에 연결된 컴퓨터는 인터넷에 직접 연결할 수 없기 때문에 개인 IP 주소를 사용하는 경우 문제가 발생합니다. 공용 인터넷에서 사용할 수있는 IP 주소가 없습니다. IP Masquerade는 개인 IP 주소를 가진 컴퓨터가 인터넷과 통신 할 수 있도록하는 동시에 원래 개인 IP 주소 대신 유효한 공개 IP 주소를 사용하도록 컴퓨터의 패킷을 수정함으로써이 문제를 해결합니다. 인터넷에서 반환 된 패킷은 개인 IP 시스템에 도달하기 전에 원래 IP 주소를 사용하도록 다시 수정됩니다.

참고 이가 인터넷 네트워크 무도회에 한정되지 않고 / NAT는 다른하자의 말 10.0.0.0/24 및 192.168.0.0/24에 하나 개의 네트워크에서 트래픽을 라우팅하는 데 사용할 수 있습니다

iptables 가장 무도회 규칙을 SNAT 규칙으로 대체 할 수 있습니다

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

가장 무도회와 snat"1" > /proc/sys/net/ipv4/ip_forward 는 설정 파일 nano를 편집하여 에코 또는 영구적으로 커널 레벨에서 ip_forward를 사용하도록 설정해야합니다 /etc/sysctl.conf.

IP Forward 는 머신이 라우터처럼 작동하도록하여 대상 네트워크 (로컬 / 넷 / 기타 / 등) 또는 라우팅 테이블에 따라 논리적으로 모든 활성 인터페이스에서 패킷을 리디렉션 / 전달합니다. ip_forward를 사용하면 중요한 보안 위험이 발생할 수 있습니다. ip_forward를 피할 수없는 경우 추가 iptables / route 규칙에 의해 감독 / 보안되어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.