몇몇 프로토콜은 폴트 번호에 관한 것들을 가정하거나 주소와 폴트에관한 데이터 흐름을 암호화하기 때문에 마스큐레이딩이 현재 작동하지 않는다. 이들 요즘의 프로토콜은 그들이 작동하도록 만드는 마스큐레이딩 코드로 지어진 특별한 프록시를 필요로 한다.
마스큐레이딩은 들어오는 서비스를 전혀 다루지 못한다. 그들을 가능하게 하는 몇가지 방법이 있으나 그들은 마스큐레이딩과는 완벽하게 분리되어 있고 정발로 표준 방화벽 실습의 부분이다.
만일 당신이 고수준의 보안이 필요하지 않으면 단순히 폴트를 새방향으로 돌릴수 있다. 이것을 하는 여러 가지 방법이 있다. 나는 수정된 redir 프로그램(선사잇이나 그 미러에 곧 가능하게 되기를 바란다)을 사용한다. 만일 당신이 들어오는 연결상에서 몇가지 수준의 위임을 가지 기를 원한다면 단지 지정된 IP 주소를 통하는 것만을 허락하는 redir(0.7 혹은 그이상)의 꼭대기에서 TCP wrappers, Xinetd 혹은 다른 도구를 사용한다. TIS 방화벽 툴킷은 도구와 정보를 찾기 위해서 좋은 장소이다.
보다 자세한 내용은 IP Masquerade Resource에서 찾을수 있다.
** 아래 목록은 도이상 유지되지 않는다. 리눅스 IP 마스큐레이딩이 작동하는 프로그램상의 this page와 보다 자세한 내용을 위해 IP Masquerade Resource을 참조하기 바란다. **
일반적으로 TCP와 UDP를 사용하는 프로그램은 작동해야 한다. 만일 IP 마스큐레이드를 하는 프로그램에 관한 어떤 제안이나 힌트 혹은 질문이 있으면 Lee Nevo의 applications that work thru Linux IP masquerading를 방문하기 바란다.
일반 클라이언트
모든 지원되는 플랫폼, 웹 파도타기
모든 지원되는 플랫폼, 전자우편 클라이언크
모든 지원되는 플랫폼, 원격 컴퓨터사용
모든 지원되는 플랫폼, ip_masq_ftp.o 모듈 필요 (특정한 클라이언트로 모든 사이트가 가능하지 않다; 몇몇 사이트는 ws_ftp32로 갈 수 없지만 netscape는 갈 수 있다)
모든 지원되는 플랫폼, 파일 찾기 클라이언트(모든 알치 클라이언트는 지원되지 않는다)
모든 지원되는 플랫폼, 유즈넷 뉴스 클라이언트
윈도우즈(아마도 모든 지원되는 플랫폼), 가상현실 파도타기
대부분이 유닉스 기반의 플랫폼, 몇몇 변형된 것들은 작동하지 않는다.
모든 플랫폼, ICMP 패치가 필요
모든 지원되는 플랫폼, ip_masq_irc.o 모듈 필요
모든 지원되는 플랫폼
모든 지원되는 플랫폼
멀티미디아 클라이언츠
윈도우즈, 네트웍 흐름 오디오, ip_masq_raudio 모듈의 적재 필요
윈도우즈, 네트웍 흐름 오디오
윈도우즈, 네트웍 흐름 오디오
윈도우즈, 클라이언트-서버 3D 대화 프로그램
윈도우즈, 클라이언트-서버 3D 대화 프로그램
윈도우즈, 피어-투-피어 오디오 통신, 당신이 전화를 걸면 사람들과 연결 될 수 있으나 다른 사람들은 당신에게 전화할수 없다.
윈도우즈, 피어-투-피어 문자/오디오 칠판 통신, 당신이 연결할 때만 다른 사람들과 연결할 수 있으나 다른 사람들은 당신에게 연결할수 없다.
모든 지원되는 플랫폼, cuseeme 모듈 필요, 자세한 것은 IP Masquerade Resource을 보기 바람
윈도우즈, vdolive 패치가 필요
다른 클라이언츠
도스, telnet, ftp, ping등을 담고있는 꾸러미
윈도우즈, TCP/IP상에서 컴퓨터를 원격조종, 단지 클라이언트일때만 작동하고 호스트 일때는 작동하지 않는다.
ntp를 사용 - 네트웍 시간 프로토콜
리눅스, 네트웍 관리계정 꾸러미
연결되지만 한쪽방향으로만 소리가 전달된다.
서버에 연결할수 없다.
상대편으로 연결할수 없다.
작동하지 않는다. - 쓰여진 커널 프록시가 필요.
현재까지 작동안함 (주소에 대하여 잘못된 가정을 만듬).
시험 안됨, 내 생각엔 아마도 마스큐레이딩 코드로의 외부 프로그램인 X 프록시를 만들지 않는한 작동하지 않을 것이다. 이것의 한 방법이 연결로서의 ssh와 성공하게 만드는 그것의 내부 X 프록시를 사용하는 것이다.
이 섹션에서는 ipfwadm을 사용하는 좀더 자세한 내용을 다룬다.
이것은 따르는 정적 PPP 주소를 가지는 PPP 링크 뒤의 방화벽/마스큐레이딩을 위한 설정이다. 믿을만한 인터페이스는 192.168.255.1이고 PPP 인터페이스는 죄의식을 덜기 위해 바꾸었다. :). 나는 채워진 루팅 그리고/혹은 마스큐레이딩과 마찬가지로 개인적으로 IP 속임수를 잡아내는 각각의 들어오고 나가는 인터페이스들의 목록을 작성하였다. 마찬가지로 명백하게 허락되지 않은 어떤 것도 금지된다.
#!/bin/sh # # /etc/rc.d/rc.firewall, 방화벽 설정의 정의, rc.local로부터 불려진다. # PATH=/sbin:/bin:/usr/sbin:/usr/bin # 테스팅, 잠시 기다린 후 모든 방화벽 규칙을 제거한다. # 만일 10분후에 방화벽이 자동적으로 해제 되기를 바란다면 아래 줄들의 주석을 제거하라. # # (sleep 600; \ # ipfwadm -I -f; \ # ipfwadm -I -p accept; \ # ipfwadm -O -f; \ # ipfwadm -O -p accept; \ # ipfwadm -F -f; \ # ipfwadm -F -p accept; \ # ) & # 들어오기의 모든 방침을 없애고 기본방침을 거부로 정의한다. # 실제로 기본 방침은 거부와 기록의 모든 규칙을 잡아내기 때문에 부적절하다. ipfwadm -I -f ipfwadm -I -p deny # 지역 인터페이스, 지역 컴퓨터, 어디로 나가던지 유효 ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 # 원격 인터페이스, IP 속이기를 몰아내도록 지역 컴퓨터에 요구 ipfwadm -I -a deny -V 당신의.정적.PPP.주소 -S 192.168.0.0/16 -D 0.0.0.0/0 -o # 원격 인터페이스, 영구 PPP주소로 가는 어떠한 출처도 유효 ipfwadm -I -a accept -V 당신의.정적.PPP.주소 -S 0.0.0.0/0 -D 당신의.정적.PPP.주소/32 # loopback 인터페이스가 유효 ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # 모든 규칙을 잡아내고 모든 다른 들어오는 것들을 거부하고 기록함 # 방침에는 기록하도록 선택하는 것은 없지만 대신에 이것이 그역할을 한다. ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # 나가기의 모든 방침을 없애고 거부의 기본 방침을 정한다. # 실제로 기본 방침은 거부와 기록의 모든 규칙을 잡아내기 때문에 부적절하다. ipfwadm -O -f ipfwadm -O -p deny # 지역 인터페이스를 거쳐 지역 넽으로 오는 어떠한 출처도 유효 ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16 # 원격 인터페이스를 거쳐 지역 넽으로의 나가기, 채워진 루팅, 거부 ipfwadm -O -a deny -V 당신의.정적.PPP.주소 -S 0.0.0.0/0 -D 192.168.0.0/16 -o # 원격 인터페이스를 거쳐 지역 넽으로부터 나가기, 내용을 가진 마스큐레이딩, 거부 ipfwadm -O -a deny -V 당신의.정적.PPP.주소 -S 192.168.0.0/16 -D 0.0.0.0/0 -o # 원격 인터페이스를 거쳐 지역 넽으로부터 나가기, 채워진 마스큐레이딩, 거부 ipfwadm -O -a deny -V 당신의.정적.PPP.주소 -S 0.0.0.0/0 -D 192.168.0.0/16 -o # 원격 인터페이스를 거쳐 나가는 것은 유효 ipfwadm -O -a accept -V 당신의.정적.PPP.주소 -S 당신의.정적.PPP.주소/32 -D 0.0.0.0/0 # loopback 인터페이스 유효 ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # 모든 규칙을 잡아내고 모든 다른 나가는 것들을 거부하고 기록함 # 방침에는 기록하도록 선택하는 것은 없지만 대신에 이것이 그역할을 한다. ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # 되돌리기의 모든 방침을 없애고 거부의 기본 방침을 정한다. # 실제로 기본 방침은 거부와 기록의 모든 규칙을 잡아내기 때문에 부적절하다. ipfwadm -F -f ipfwadm -F -p deny # 지역 넽으로부터 지역 인터페이스를 거쳐 다른 곳으로 나가는 마스큐레이딩 ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 # 모든 규칙을 잡아내고 모든 다른 되돌리기를 거부하고 기록함 # 방침에는 기록하도록 선택하는 것은 없지만 대신에 이것이 그역할을 한다. ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o당신은 특정한 사이트로의 트래픽을 -I, -O or -F.를 사용하여 막을수 있다. 규칙의 모임들은 위에서부터 아래로 읽혀지고 -a는 기존의 명령어들에다 추가하는 것을 뜻하므로 어떠한 제약들이 전역적인 규칙앞에 와야만 한다. 예를들면(시험되지 않음) :-
-I 규칙을 사용하기. 가장 빠른 것이지만 단지 지역 컴퓨터들만을 막을 뿐이고 방화벽 자신은 금지된 사이트로 접근할수 있다. 물론 당신은 이러한 조합들을 허락하기를 원할 것이다.
... -I 규칙의 시작 ... # 204.50.10.13으로 가는 지역 컴퓨터들을 지역 인터페이스가 거부하고 기록함 reject and log local interface, local machines going to 204.50.10.13 ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # 지역 인터페이스를 거쳐 다른 곳으로가는 지역 컴퓨터가 유효 ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 ... -I 규칙의 끝 ...
-O 규칙 사용하기. 패킷이 마스큐레이등을 먼저 거치기 때문에 가장 느리지만 이 규칙은 금지된 사이트에 방화벽이 접근하는 것도 막는다.
... -O 규칙의 시작 ... # 204.50.10.13으로가는 것을 거부하고 기록함 ipfwadm -O -a reject -V 당신의.정적.PPP.주소 -S 당신의.정적.PPP.주소/32 -D 204.50.10.13/32 -o # anything else outgoing on remote interface is valid ipfwadm -O -a accept -V 당신의.정적.PPP.주소 -S 당신의.정적.PPP.주소/32 -D 0.0.0.0/0 ... -O 규칙의 끝 ...-F 규칙 사용하기. -I 보다는 느릴테지만 아직 마스큐레이드된 내부 컴퓨터들을 막을 수 있지만 방화벽은 아직도 금지된 사이트에 갈수 있다.
... -F 규칙의 시작 ... # PPP 인터페이스를 거쳐 지역 넽으로부터 204.50.10.13으로가는 것을 거부하고 기록함 ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # 지역 인터페이스를 거쳐 지역 넽으로부터 다른 곳으로 가는 것을 마스큐레이드함. ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 ... -F 규칙의 끝 ...192.168.0.0/16을 204.50.11.0로 가는 것을 허락하는 특별한 규칙은 필요없다. 그것은 전역 규칙에 의해 커버된다.
위의 규칙들에서 인터페이스를 짜는 여러 가지 방법이 있다. 예를 들면 -V 192.168.255.1대신에 -W eth0로 쓸수 있다. -V 당신의.정적.PPP.주소 대신에 -W ppp0라고 쓸 수 있다. 개인적인 취향과 작성방법일 뿐이다.
IPautofw은 리눅스 마스큐레이딩을 위한 TCP와 UDP의 포괄적인 전달자이다. 일반적으로 UDP를 필요로 하는 꾸러미를 사용 가능하게 하려면 ip_masq_raudio, ip_masq_cuseeme 등과 같은 지정된 ip-masq 모듈이 적재되어야 한다. ipautofw는 보다 포괄적인 방법으로 행동한다. 특정한 그 어플리케이션에 특정한 모듈이 전송하지 않을 것들을 포함하는 어떠한 형태의 트래픽도 전송할 것이다. 이것은 적절하게 관리되지 않으면 보안에 구멍을 만들 수 있다.