이제 모든 것이 작동될 것이다. 다음을 잊지 마라:
내부 네트워크에 있는 모든 클라이언트의 게이트웨이 값에 내부 IP 주소를 설정한다. (윈도우에서는 오른쪽 클릭하여 네트워크 환경->등록정보->게이트웨이에 가서 값을 리눅스 게이트웨이 내부 IP를 설정한다)
ISP의 HTTP 프락시가 있다면 설정하거나, 투명 프락시를 사용하게 모든 클라이언트들을 설정하고, (경고 - 큰 네트워크에서는 투명 프락시가 아주 느리다는 것을 자주 들었다) 혹은 새 리눅스 게이트웨이에 squid를 실행한다. (이것은 옵션이지만, 큰 네트워크에서 선호한다)
이제 보안을 생각해 보자. 먼저 일반적으로 포워딩을 끄자: "iptables -P FORWARD DROP", 그리고 iptables와 /etc/hosts.allow과 /etc/hosts.deny 사용법을 익힌다. 경고 - 마스커레이딩이 작동될 때까지는 이 iptalbes 룰을 시도하지 마라. 마지막 룰을 DENY할려면, 원하는 모든 패킷을 명백하게 통과하도록 해야 한다. (되돌릴려면, "ipatbles -P FORWARD ACCEPT")
이제 인터넷으로 접속할 수 있는 서비스를 허락한다.
예를 들어, 웹서버 접속을 위해선 다음을 한다:
$> iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT $> iptables -A INPUT --protocol tcp --dport 443 -j ACCEPT |
ident서비스(예: irc 접속)를 위해서는 다음을 한다:
$> iptables -A INPUT --protocol tcp --dport 113 -j ACCEPT |
테스트할려면:
웹 접속이 가능한 클라이언트에서 접속을 시도한다. 구글 IP는 216.239.33.100(많은 구글 IP 중 하나)이고 접속이 가능해야 할것이다. 예: "ping 216.239.33.100" "lynx 216.239.33.100".
도메인 네임으로의 접속이 가능한지도 시도한다. 예: "ping google.com" "lynx google.com" 혹은 IE/Netscape로의 접속
eth0는 외부 인터넷 카드이고, 123.12.23.43은 외부 IP이다.