특정 IP 주소에 대한 호스트 액세스 제어

현상


특정 호스트(IP 주소)에 대해서 액세스 제어를 하고 싶습니다.



원인 및 해결방법


XDMCP, Xstart(1.3.9의 리모콘) 두 가지 접속방법에 대한 제어 설정을 통해 해결할 수 있습니다. 

- Xaccess 파일을 통한 제어 : XDMCP를 이용한 접속. xdm, kdm, dtlogin을 사용하는 경우
- 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을 허락합니다.

규칙에 적용된 호스트를 만나면 그 뒤는 읽지 않기 때문에 '!'는 '*'보다 먼저 와야합니다.
# 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