여러분 시스템의 보안을 유지하는 것은 매우 중요합니다. 시스템 보안을 관리하는 한가지 방법은 시스템 서비스로의 접근을 주의깊게 관리하는 것입니다. 특정 서비스에 한해서는 시스템에 제한없이 접근할 수 있도록 개방해야할 경우가 있습니다. (예, 웹서버를 운영하는 경우 httpd가 그러합니다.) 그러나 이러한 서비스를 제공할 필요가 없는 경우에는 시스템에 버그가 발생할 위험을 최소화하기 위해 서비스를 꺼놓으셔야 합니다.
여러 가지 방법을 사용하여 시스템 서비스로의 접근을 관리하실 수 있습니다. 서비스와 시스템 설정 및 Linux에 대한 지식 수준에 기반하여 사용하실 방법의 종류를 결정하셔야 합니다.
서비스로의 접근을 거부하는 가장 쉬운 방법은 단순히 서비스를 끄는 것입니다. (다음에 나온 부분에서 더욱 자세하게 설명될) xinetd가 관리하는 서비스와 /etc/rc.d/init.d에 속한 서비스는 다음과 같은 3가지 응용 프로그램을 사용하여 시작하거나 멈추도록 설정 가능합니다:
서비스 설정 도구 — 개별 서비스에 대한 설명과 부팅시 (런레벨 3, 4, 5에서) 서비스의 시작 여부를 보여주는 그래픽 응용 프로그램입니다. 이 프로그램을 사용하여 개별 서비스를 시작, 정지하고 재시작하실 수 있습니다.
ntsysv — 부팅시 각각의 런레벨에서 시작될 서비스의 종류를 설정하게 해주는 텍스트 기반 응용 프로그램입니다. xinetd가 아닌 서비스에는 변경 사항이 즉시 적용되지 않습니다. xinetd가 아닌 서비스는 이 프로그램을 사용하여 서비스를 시작, 정지하거나 재시작하실 수 없습니다.
chkconfig — 다른 런레벨에서 서비스를 켜고 끌 수 있도록 해주는 명령행 유틸리티입니다. xinetd가 아닌 서비스에서는 변경 사항이 즉시 적용되지 않습니다. 또한 xinetd가 아닌 서비스는 이 유틸리티를 사용하여 시작, 정지 또는 재시작하실 수 없습니다.
위에서 언급된 도구를 사용하는 것이 다른 방법들 — 수동으로 /etc/rc.d 아래 디렉토리에 위치한 다수의 심볼릭 링크를 편집하거나 /etc/xinetd.d에서 xinetd 설정 파일 편집하는 것보다 쉽다고 느끼실 겁니다.
시스템으로의 접근을 관리하기 위한 또 다른 방법에는 iptables을 사용하여 IP 방화벽을 설정하는 방법도 있습니다. 초보 리눅스 사용자라면 iptables를 사용하는 것이 최선책이 아닐 수도 있습니다. iptables를 설정은 복잡한 작업이며 숙련된 리눅스 시스템 관리자만이 제대로 수행할 수 있습니다.
다른 한편으로 iptables를 사용하시면 설정에 융통성이 생긴다는 장점이 있습니다. 예로 들면, iptables를 사용하여 특정 서비스에 특정 호스트만 접근할 수 있도록 사용자 정의하실 수 있습니다. iptables와 관련된 보다 많은 정보를 원하시면 Red Hat Enterprise Linux 참조 가이드와 Red Hat Enterprise Linux 보안 가이드를 참조하시기 바랍니다.
만일 집에서 사용하는 컴퓨터에 보안 규칙을 설정할 유틸리티를 찾고 계시거나, 리눅스를 처음 사용해보신다면, 보안 수준 설정 도구 (redhat-config-securitylevel)를 사용해 보십시오. 이 도구는 설치 프로그램의 방화벽 설정 화면에서 선택하신 것과 유사하게 시스템 보안 수준을 선택할 수 있게 해줍니다.
보다 자세한 정보는 20 장을 참조하시기 바랍니다. 특정 방화벽 규칙에 대한 보다 많은 정보를 원하신다면, Red Hat Enterprise Linux 참조 가이드에서 iptables 장을 참조하십시오.
서비스로의 접근을 설정하기 이전에 먼저 Linux 런레벨을 이해하셔야 합니다. 런레벨이란 /etc/rc.d/rc<x>.d (여기서 <x>는 런레벨의 수) 디렉토리에 나열된 서비스에 의해 정의된 상태, 또는 모드(mode)를 의미합니다.
사용 가능한 런레벨은 다음과 같습니다:
0 — 정지
1 — 단독-사용자 모드
2 — 사용안됨 (사용자-정의가능)
3 — 완전 다중-사용자 모드
4 — 사용안됨 (사용자-정의가능)
5 — (X-기반 로그인 화면을 사용한) 완전 다중-사용자 모드
6 — 재부팅
텍스트 로그인 화면을 사용하신 경우 런레벨 3으로 작동합니다. 만일 그래픽 로그인 화면을 선택하신 경우에는 런레벨 5에서 작동합니다.
/etc/inittab 파일을 수정하여 기본 런레벨을 변경할 수 있습니다. /etc/inittab 파일을 보시면 처음 부분에 다음과 같은 줄이 포함되어 있습니다:
id:5:initdefault: |
이 줄에 나타난 숫자를 원하는 런레벨로 변경하십시오. 시스템을 재부팅하시면 변경 사항이 적용됩니다.
런레벨을 즉시 변경하기 위해서는 telinit 명령과 함께 원하시는 런레벨 숫자를 입력하십시오. 이 명령을 사용하시려면 반드시 루트 사용자로 로그인하셔야 합니다. telinit 명령은 /etc/inittab 파일의 기본 설정을 변경하지 않으며; 현재 실행중인 런레벨 만을 변경합니다. 따라서 시스템이 재부팅된 후에는 /etc/inittab 파일에 지정된 런레벨로 부팅할 것입니다.