12장. 서버를 안전하게 지키기 위한 전략

리눅스는 다른 회사에서 나온 운영체제만큼 -- 또는 더 -- 안전하다고 생각된다. 리눅스가 점점 더 인기가 있어짐에 따라 크래커들이 공격 노력을 집중할 만한 매우 매력적인 표적이 되어가고 있다. 가끔은 헛점이 발견되기도 하지만 리눅스가 갖고 있는 개방성때문에 그러한 헛점은 빨리 패치가 되고 임시로 어떻게 대처할 것인지 또는 갱신된 소프트웨어는 어디서 구할 수 있는지 등을 담은 보안관련 안내문이 널리 배포된다.

나는 보안분야에서 전문가인척 하려는 것은 아니다. 하지만 나는 이러한 문제에 관심을 갖고 있으며 어떤 시스템을 최대한 안전하게 만드는 전투에서 중요한 부분이라고 믿고 있다. 보안관련 최신 뉴스에 관심을 갖고 부지런히 대처한다고 해서 시스템의 보안이 무너지지 않는다고 보장할 수는 없지만 침입의 가능성은 상당히 낮추어 줄 수 있다.

비록 크래커가 시스템에 침입하기 위하여 악용할 수 있는 외부 서비스에서도 보안상 취약성이 발견되기도 하지만 (예를 들어, IMAP 데몬 취약성) 내 생각으로는 어떤 크래커가 시스템을 내부로부터 뚫고 들어올 가능성이 훨씬 높다고 본다. 외부 세계와 통신하는데 사용되는 서비스는 한 줌 밖에 안되는데 비하여 쉘에서 사용할 수 있는 명령과 유틸리티는 수천개가 넘는다. 이들 중 어떤 것은 버그가 있어서 보안을 무너뜨릴 가능성이 있다. (물론, 내가 관리하는 서버 중 하나가 최근에 외부 서비스를 통하여 탈취당한 적이 있긴하다)

이런 이유로 나는 사용자들에게 절대적으로 필요한 경우가 아니라면 쉘 계정을 주는 것을 피하도록 권고한다. 비록 사용자들이 전적으로 믿을만 하고 쉘을 제공하는데 전혀 마음에 꺼림칙한 구석이 없다고 하더라도 사용자중에 간단한 패스워드를 갖고 있는 사람이 하나만 있어도 모든 것은 허사가 된다. 외부의 크래커는 바로 이 간단한 패스워드를 이용하여 들어올 수 있고 이를 발판으로 안에서 작업을 하면서 그 외의 약점을 노리게 된다.

리눅스 시스템의 보안성을 엄청나게 끌어올리는 방법이 다행스럽게도 있다. 보안관련 사항에 대한 자세한 설명은 이 문서의 범위를 넘는 것이므로 보안수준을 높이기 위하여 하여야 할 몇가지 사항에 대한 체크 리스트를 제시하였다:

보안 관련 이슈에 대한 더 자세한 정보는 http://redhat-security.ens.utulsa.edu/ 에 있는 훌륭한 자원인 "Securing RedHat 5.x" 문서를 참조하기 바란다. 리눅스에서의 암호화나 관련 소프트웨어에 대한 훌륭한 정보는 http://replay.com/redhat/ 에 있다.