Xmanager 목록의 서버들이 특정 PC에만 나오게 하고 싶습니다.

현상


주소 창이나 세션 파일에서 직접 지정하는 방법으로는 접속이 되지만 단지 Xmanager 목록에 자동으로 나오는 것을 제한하고 싶습니다.



원인 및 해결방법


XDMCP 자체로는 호스트(PC 등)마다 접속 자체를 제한할 수 있지만 단지 Xmanager 목록에 나타나지 않게만은 할 수 없습니다.

방화벽 룰을 통한 다른 방법을 사용하여야 합니다.

리눅스의 경우라면 서버 자체에 설치된 iptables 방화벽을 이용하여 브로드캐스트 패킷을 제어함으로써 가능합니다.

-A RH-Firewall-1-INPUT -m pkttype --pkt-type broadcast -s 192.168.1.14 -j ACCEPT -m comment --comment "winos"
-A RH-Firewall-1-INPUT -m pkttype --pkt-type broadcast -m iprange --src-range 192.168.1.50-192.168.1.100 -j ACCEPT -m comment --comment "Manager1"
-A RH-Firewall-1-INPUT -m pkttype --pkt-type broadcast -j DROP
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT

위 예제는 192.168.1.14번과 192.168.1.50~192.168.1.100번까지는 브로드캐스트를 허용하여 Xmanager 목록에 나타나고 그 나머지는 해당 패킷을 버림으로써 Xmanager 목록에 나타나지 않습니다.

하지만 XDMCP 접속을 위한 UDP 포트 177은 허용하므로 주소 창 등에서 직접 질의(query)하는 경우에는 응답하도록 되어 있습니다.

위 예제는 Redhat Enterprise Linux 5.8의 iptables 규칙입니다. /etc/sysconfig/iptables 파일을 수정하여 다음 내용을 추가합니다.