다음 이전 차례

4. 2.0, 2.2 커널로부터의 빠른 전환

아직 2.0 (ipfwadm)에서 2.2 (ipchains)로의 전환의 쇼크에 빠져 있는 사람에게는 미안하다. 좋은 뉴스와 나쁜 뉴스가 있다.

이전대로 ipchains와 ipfwadm을 사용할 수 있다. 이렇게 하기위해서는 단순히 넷필터의 배포판에 포함되있는 'ipchins.o' 나 'ipfwadm.o' 커널 모듈을 삽입하기만 하면 된다. 이들은 서로 호환되지 않는다. 그리고 어떤 다른 넷필터 모듈과도 함께 사용될 수 없다.

이들 모듈이 한번 설치되고 나서는 다음과 같은 차이점 외에는 정상적으로 ipchains와 ipfwadm을 사용할 수 있다.

해커들은 다음에도 주의하여야 합니다.

4.1 나는 단지 마스쿼레이딩 하기만 원한다... 도와죠..

이것은 대부분의 사람들이 원하는 것이죠. 여러분이 자동으로 할당되는 IP PPP dialup을 사용한다면(어떤것인지 모른다면, 여러분이 사용하는 게 이거다.), 여러분의 모든 내부 네트워크로부터 오는 패킷은 PPP dialup 박스로부터 오는 것으로 보여지도록 하라고 여러분의 컴퓨터에게 이야기하기를 원할 것이다.

# 할당되는 IP 주소를 받은후 (POSTROUTING) NAT 테이블에 (-t nat) 밖으로 향하는
# ppp0 (-o ppp0) 의 모든 패킷들이 마스쿼레이드 되도록 접속하도록 (-j
# MASQUERADE) 새로운 규칙을 추가하면 (-A) 된다.
iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE

# IP forwarding 을 켠다.
echo 1 > /proc/sys/net/ipv4/ip_forward

여기서 어떠한 패킷 필터링도 하지않은것에 주의하세요. 패킷 필터링을 위해서는 패킷 필터링 하우투를 보세요.

4.2 ipmasqadm은 어떻하죠 ?

사용자 입장에서 이것이 훨씬 적절하므로 나는 이전것과의 호환성에 대하여 많이 걱정하지 않습니다. 포트 포워딩하기위해서 간단히 'iptables -t nat'를 사용하면 됩니다. 예로 리눅스 2.2 에서는 다음과 같이 하였을 것입니다.

# 리눅스 2.2
# 1.2.3.4의 8080포트로 가는 TCP 패킷을 192.168.1.1의 80 포트로 가도록 포워딩
ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80

이제는 다음과 같이 하여야 합니다.

# 리눅스 2.4
# 라우팅 전에 규칙을 추가하도록 (-A PREROUTING) NAT 테이블에게 (-t nat) 이야기
# 하는데 대상 패킷은 TCP 패킷으로 (-p tcp) 원래 목적주소는 1.2.3.4 이고 (-d
# 1.2.3.4) 8080 포트이던것을 (--dport 8080) 새로운 목적 주소를 갖도록합니다.
# (-j DNAT) 그 새로운 목적 주소는 192.168.1.1 이고 80 포트를 이용합니다 (--to
# 192.168.1.1:80)
iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \
        -j DNAT --to 192.168.1.1:80

지역 접속에서도 위의 규칙이 적용되도록 할려면(즉, NAT 박스 자신이 1.2.3.4의 8080포트로 접속할려할때 192.168.1.1의 80포트로 연결되도록 할려면), 똑같은 규칙을 출력 체인에도 추가시켜주면 됩니다.

# 리눅스 2.4
iptables -A OUTPUT -t nat -p tcp -d 1.2.3.4 --dport 8080 \
        -j DNAT --to 192.168.1.1:80


다음 이전 차례