[서평] 무라니는 편집증?

GunSmoke의 이미지

리눅스 보안과 최적화 완벽 솔루션을 읽고 나서 강컴 독자 서평에 쓴 감상문입니다.

--------------------------------------------------------------------------------------

어제 새벽 3시까지 열심히 서평을 작성했건만 '확인'버튼을 클릭하니 다시 로그인 창이 뜨는 것이었다. 아차 싶어 뒤로가기 버튼을 열심히 클릭했지만 내가 쓴 서평은 몽땅 날라갔으니... 전의는 상실해서 잠은 안오고 오늘 하루종일 입맛도 없고, 그렇게 자려니 또 억울해 못자겠고...
그래서 또 썼다. 괴롭게 기억을 더듬으며 가뜩이나 나쁜 머리를 쥐어짜가며 또 썼다... 앞으로 웹 인터페이스를 다시는 신뢰하지 않으리라 이를 갈며 또 썼다. 다 쓰고 나니 전에 쓴게 더 잘 쓴거 같아 또 괴롭구나.

꽤 시간이 지난 뒤에야 무라니의 책을 읽었다.

이 책의 원서 Redhat Linux security and optimization은 굉장히 유명한 시스템 관리 서적으로서 소위 말하는 ‘중급이상’의 시스템 관리자라면 누구나 읽어야할 필독서 중의 하나라고 할 수 있다. 국내에 번역되기 이전부터 본문에 있는 커널 파라미터를 통해 시스템을 최적화하는 방법, sysctl.conf를 통해서 TCP/IP 네트워크를 최적화 하는 방법이 인터넷을 통해 알려져 시스템 관리자들의 관심과 기대를 모았던 것을 기억한다.

어떤 응용프로그램의 설정 파일 옵션을 수정함으로서 그 시스템의 보안과 최적화를 도모할 수 있다는 얘기는 빵꾸난 자전거 바퀴를 임시방편으로 청테이프로 감싸서 바람이 새는 것을 막아보겠다는 얘기와 다를 바가 없다. (실제 중학교때 저렇게 땜질한 자전거를 타고 다니다 동네에서 큰 사고가 난 경험이 있다.) 응용 프로그램 레벨이 아닌 커널 레벨에서의 보안과 최적화는 기초와 기본을 먼저 생각하는 바람직한 시스템 관리라고 생각한다.

저자가 기초와 기본을 강조하는 것은 여기에서 그치지 않는다. 이 책에서는 일반적으로 시스템 보안하면 떠오르는 패킷 필터링을 통한 방화벽, 프록시, secure shell, 포트 스캐너 같은 시스템 무결성 확인 툴에 대한 설명은 뒤로 미루고 있다. 이런 것들보다 시스템을 ‘잘’ 설치하는 것이 더 중요하다는데 리눅스를 설치할 때 패키지 목록을 일체 선택하지 않고 가장 기본적인 패키지만 설치하며 설치 뒤에는 독자가 일일이 필요 없는 파일, 디렉토리, 패키지들을 삭제함으로서 침입자가 시스템의 허술한 보안 구멍을 통해 침입할 만한 여지를 주지 않는 것이 바로 이 시스템을 ‘잘’ 설치하는 것의 요지라고 할 수 있다. 이렇게 설치했을 때 디스크 용량까지 일일이 체크해주니 저자의 친절함에 절로 고개가 숙여지는구나.

이렇게 좋은 책임에도 불구하고 다음의 몇가지 단점 때문에 좋은 점수를 주지는 않기로 했다.

DNS, Sendmail, Qmail, IMAP, MySQL, PostgreSQL, OpenLDAP, squid, WuFTP, Apache, Samba 등 각각의 서버 서비스에 대해 설치부터 활용까지 보안과 최적화를 위해 필요한 내용을 모두 전달하고자 하는 말 그대로 ‘완벽 솔루션’을 지향하고 있으니 짐작하겠지만 이 책의 분량은 실로 엄청나다. (1324페이지) 한빛 미디어의 유닉스 파워 툴(1328페이지), 시스템 관리의 핵심(1312페이지)에 버금가는 배개책이니 읽어도 읽어도 줄지 않는 분량은 독자에게 큰 부담일 수 밖에 없다.

이렇게 방대한 분량임에도 불구하고 내용을 찬찬히 뜯어보면 중복되는 내용은 또 왜 이리 많은지 모르겠다. 대상 독자의 수준을 고려했을 때 똑같이 반복되는 컴파일 옵션에 대한 설명, 패키지는 tgz 형식으로 어디에서 받을 수 있다는 얘기들은 지루하다 못해 짜증이 날 지경이다. 각 장의 패키지 설치 방법을 소스 파일을 컴파일하는 방식으로 결정했다면 굳이 바이너리 패키지의 설치 경로와 동일하게 컴파일 환경변수를 수정하는 이유는 무엇인가. 게다가 각 장의 마지막에 이 패키지를 설치했을 때 생성되는 파일들을 하나씩 다 나열하는 이유는 또 무엇인가. 물론 각 장별로 일관성을 유지하기 위한 피치 못할 선택이었다는 것으로 이해할 수도 있겠지만 가뜩이나 두꺼운 책을 읽는 독자의 심기를 불편하게 하리라 믿어 의심치 않는다. 이쯤에서 서평의 제목을 다시 한번 음미해보기 바란다.

덧붙여, 잠깐 얘기가 나왔지만 이 책에서는 모든 패키지를 소스 파일을 기반으로 설치하고 있다. 개인적으로 이것은 시대착오적 발상이라고 생각한다. 이미 우리는 최적화를 위해 릴리즈 노트의 컴파일 옵션을 일일이 점검하고 스펙 문서에 매달리는 노력보다 예산을 들여 메모리를 증설하거나 CUP를 교체하는 것이 더 생산적인 시대에 살고 있다. apache + php/python/perl + mysql 환경을 구축해본 시스템 관리자라면 아무리 컴파일을 많이 주어 최적화하려해도 mysql.com에서 배포되는 바이너리 mysql보다 성능이 떨어지는 허탈한 경험을 해본 적이 있을 것이다. 이 책에 출간되었을 당시에 이 책은 시스템 관리자에게 꼭 필요한 내용들을 담고 있어 그런 인기를 누릴 수 있었겠지만 지금은 얘기가 다르다는 말이다. 그런 의미에서 이 책 역시 ‘무어의 법칙’의 또 다른 희생자가 아닐까.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.