특정 IP 주소에 대한 호스트 액세스 제어
현상
특정 호스트(IP 주소)에 대해서 액세스 제어를 하고 싶습니다.
원인 및 해결방법
XDMCP, Xstart(1.3.9의 리모콘) 두 가지 접속방법에 대한 제어 설정을 통해 해결할 수 있습니다.
- Xaccess 파일을 통한 제어 : XDMCP를 이용한 접속. xdm, kdm, dtlogin을 사용하는 경우
- TCP Wrapper 를 통한 제어 : Xstart를 이용한 접속(telnet, ssh, rlogin, rsh, rexec로 하는 접속). XDMCP 데몬 중 gdm(gdm-binary)를 사용하는 경우
- TCP Wrapper 를 통한 제어 : Xstart를 이용한 접속(telnet, ssh, rlogin, rsh, rexec로 하는 접속). XDMCP 데몬 중 gdm(gdm-binary)를 사용하는 경우
Xaccess 파일을 통한 제어
$XDM_CONFIG_DIR/Xaccess파일에서 액세스 제어를 할 수 있습니다.
$XDM_CONFIG_DIR
Unix : /usr/lib/X11/xdm
Linux : /etc/X11/xdm
CDE : /usr/dt/config
형식 :
host_name(host_IP Addr) -> 특정 호스트에게 XDMCP 세션을 허락합니다.
!host_name -> 특정 호스트에게만 XDMCP Session을 허락하지 않습니다.
* -> 모든 호스트에게 XDMCP Session을 허락합니다.
!host_name -> 특정 호스트에게만 XDMCP Session을 허락하지 않습니다.
* -> 모든 호스트에게 XDMCP Session을 허락합니다.
규칙에 적용된 호스트를 만나면 그 뒤는 읽지 않기 때문에 '!'는 '*'보다 먼저 와야합니다.
# vi Xaccess . . . #* #any host can get a login window . . .
위와 같은 경우 Xmanager를 비롯한 어떠한 원격 장비에서도 로그인을 할 수 없습니다. 위 주석을 풀어 위의 설명에 따라 원하는 설정을 합니다.
TCP Wrapper 설정
/etc/hosts.allow, /etc/hosts.deny 파일을 편집하여 설정할 수 있으며 기본적인 사용법은 다음과 같습니다.
/etc/hosts.deny -> 접속을 허용하지 않을 서비스와 host목록
/etc/hosts.allow -> 접속을 허용할 서비스와 host목록
적용 순서는 hosts.deny 다음에 hosts.allow이므로 주의하여야 합니다.
형식 :
서비스 목록:호스트 목록
각 목록은 공백 문자나 ,(콤마)로 나열할 수 있습니다.
ex) /etc/hosts.deny
telnet:192.168.1.*-> 192.168.1.0 ~192.168.1.255로부터의 telnet접속을 차단함.
gdm : 192.168.1. .netsarang.com -> 192.168.1.*과 호스트 이름이 *.netsarang.com인 요청을 모두 차단함.
ALL:ALL -> 모든 호스트에 대해 모든 서비스 차단.
hosts.deny와 hosts.allow 사용법에 대한 자세한 내용은 man 페이지를 참고하십시오.
# man hosts.deny