[네트워크][보안] Masquerading/DNAT 방식으로 네트웍 프린트 사용하기..
IP 공유기 (Masquerading)을 사용하는 경우에, DNAT (Reverse Mapping?)
을 사용하여, 외부로부터 내부의 private IP를 가진 네트웍프린터(HP JetDirect를
사용하는 경우만 테스트)로 프린팅이 가능한지 테스트해보았습니다.
– 결론: 잘 됩니다.
– Linux 2.2 Net Filter 를 사용하는 경우 다음과 같은 command 로 설정이 가능합니다.
# iptables -t nat -A PREROUTING -p tcp –dport 9100 -j DNAT –to <프린터_IP>
– Windows 2000 의 경우 “Standard TCP/IP Port” 형태의 프린터 포트 설정과정에서,
기본 포트인 9100 대신 다른 값을 사용하도록 바꿀 수도 있습니다.
예를 들면 “Standard TCP/IP Port” 를 두개만들면서 각각 port를 9100 과 9101 로 지정한뒤
# iptables -t nat -A PREROUTING -p tcp –dport 9100 -j DNAT –to <프린터1_IP>:9100
# iptables -t nat -A PREROUTING -p tcp –dport 9101 -j DNAT –to <프린터2_IP>:9100
와 같이 redirection 을 시켜 놓을 수 있습니다.
– 제약사항 및 문제점
– 프린터가 반드시 “Standard TCP/IP Port”를 지원하는 네트웍 프린터 이어야 합니다.
– Printer Port를 만드는 일은 상당히 번거롭고 관리자만이 수행할 수 있는 작업이므로,
masquerading 에 사용되는 대표 IP자체가 유동 IP인 경우 적용할 수 없습니다.
– registry의 printer port 등록정보
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors\\
Standard TCP/IP Port\\Ports\\IP_211.241.202.133]
를 직접조작하면 동적으로 IP를 바꾸는 것이 가능하지만 (테스트 했음),
– 사용자-프린터 명을 식별하여 어떤 프린터가 해당되는 것인지를 파악할 수 있는
정보를 유지할 방법이 없으므로, 현재로서는 “안되는 기능” 입니다.
– 따라서, 고정 IP를 사용하여야 합니다.
– 고정 IP를 사용하는 구성이 된다면, ㄱㅜㅌ이 IP하나만 받을게 아니라면, 프린터한테 global
IP를 주는 방법도 생각할 수 있습니다.
– 이때, 고정 IP를 모든 PC에 주지않고 원래처럼 PC들은 IP공유기를 그대로 사용하고,
프린터만 global IP를 가지게 할 수도 있습니다.
– 어째튼 Printer 가 global IP를 가지면, 앞의 DNAT Trick 은 적용할 필요가 애당초 없어집니다.
– Local PC 의 Drive Mapping을 요구할 가능성이 있는경우, 모든 PC, Printer에 Global IP를
사용하도록 하는 구성밖에는 답이 없습니다. (.NET 이전에는..)