[WWW-KR Mark] 리눅스의 설치와 대형 서버 구축

노남석
대전 광역시 유성구 구성동 373-1
한국과학기술원 재료공학과
E-mail : nsroh@juno.kaist.ac.kr
URL : http://juno.kaist.ac.kr/~nsroh/


1.리눅스 배포본의 선택


리눅스는 1991년에 핀란드의 한 대학생이였던 Linus Torvalds가 취미삼아 시작해 만들어진 UNIX호환 OS이다. 최초에 제작되었을때에는 단지 kernel부분만 있었고 잠시 후 겨우 GNU C를 돌릴 수 있을 정도로 성장하였다. 그러부터 5년이 지나 지금의 리눅스는 상용 UNIX에 버금가는 수준으로성장하였으며, Windows 95, OS/2 등 여러 가지 32bit OS와 어깨를 나란히 할정도로 보 편화되었다. 리눅스가 여기까지 성장하게 된 이유는 Linus씨 혼자의 힘이 아니였다. 전세계에 퍼 져있는 hacker들의 욕구와 노력의 산실라고 할 수 있다. 특히 Richard Stallman을 필두로하는 FSF의 GNU Project덕분에 리눅스는 쉽게 OS로서의 자리를 굳힐 수 있었다. 즉, Linus씨와 그 추종자들(?)에 의해 리눅스의 핵심인 kernel이 제작되었고 리눅스에서 실행이 가능한 GCC등 개 발 도구의 등장, 이를 이용한 수많은 freeware들의 포팅으로 리눅스는 완성된 것이다.

리눅스가 등장한 초기에는 리눅스 kernel을 구하고 gcc를 구하고 그 다음에 자신이 필요한 프로그램을 구한 후 컴파일하여 사용하였다. 이와 같은 과장은 internet에 익숙하고 리눅스를 어 느정도 아는 사람들에게만 가능하였고 시간 또한 많이 걸렸다. 물론 초보자가 손대는 것은 무모 한 시도로 끝난는경우가 다반사였다. 그러나 지금은 여러기관, 단체에서 리눅스를 패키징화하여 유상,무상으로 배포하고 있으며 이것을 구하여 설치하면 쉽게 리눅스 시스템을 구축할 수 있게 되었다. 리눅스 커널이 아직 1.0이 되기 이전부터 여러 가지 배포본이 나왔었으나 배포본의 크기, 즉 포함된 프로그램의 다양성, 설치의 용이성 등에 의해 널리 사용되는 배포본이 결정되어 그 수 는 한두가지 였다. 리눅스의 버전 변천에 따라 배포본도 여러번 갱신을 거듭하였으며 국내에서는 다음과 같은 흐름을 따라 널리 사용되는 배포본이 변해가였다.

MCC Linux -> SLS Linux -> Slackware Linux

아직까지도 Slackware가 많이 사용되고 있으나 장점인 작은 크기의 패키지가 오히려 단점이 되어 포함된 프로그램의 빈약성 때문에 최근에 새로 나온 Redhat Linux나 Debian Linux가 선호 되고 있는 상황이다. 그러나 아직까지 그 설치의 용이성 때문에 Slackware Linux가 초보자들을 주축으로 널리 사용되고 있다.

현재 배포되고 있는 대표적인 리눅스 배포판으로는 다음과 같은 종류가 있다. 대부분의 경우 Internet상에서 무상으로 구할 수 있으며 CDROM판을 유상배포하고있는 상태이다.

이름 Homepage 배포형태 Platform
Craftworks Linux 2.2 http:/www.craftwork.com/ FTP, CDROM Intel, AXP
Debian Linux 1.1 http://www.debian.org/ FTP, CDROM Intel (Sparc, m68k, Alpha)
Red Hat 4.0 (Colgate) http://www.redhat.com/ FTP, CDROM Intel, Alpha, Sparc
Slackware 3.1 http://www.cdrom.com/ FTP, CDROM Intel
WGS Linux Pro http://www.wgs.com/ CDROM (FTP soon) Intel
Yggdrasil Plug-and-Play Linux http://www.yggdrasil.com/ CDROM Intel
S.u.S.E. GmbH German Linux CDROM Intel

이와 같이 여러종류의 배포본 중에서 어떤 것을 선택할 것인가?

국내에서 구하기 쉬운 배포본으로는 Slackware, Redhat, Debian의 3종류이다. 이들 배포본은 쉽게 국내 ftp site에서 mirror된 것을 구할 수 있고 국내 잡지사의 부록 형태로 CDROM이 배포 되기도 하였다. 또한 국내 업체에의해 제작된 CD나 수입된 CD를 구입하여 사용할 수도 있다. 이 들 배포본 의 특징을 살펴보며는 다음과 같다.

Slackware 3.1

설치가 용이하다.
널리 퍼져있기 때문에 구하기가 쉽니다.
사용자가 많기 때문에 문제해결이 쉽다.
포함된 프로그램이 적다.
업그레이드가 어렵다.
초기 버전은 버그가 많다.

Redhad 4.0

Intel, Alpha, Sparc용 3가지가 있다.
설치가 용이하다.
포함된 프로그램이 많다.
업그레이드가 쉽다.

Debian 1.1

포함된 프로그램이 많다.
업그레이드가 쉽다.
설치가 어렵다.

이와 같이 볼 때 초보자의 경우 Slackware 3.1이 가장 좋을 것이다. 왠만한 작업에 필요한 프로그램은 다 포함되어 있고 무엇보다 설치가 용이하다. 그러나 포함된 프로그램이 적기 때문에 새로운 프로그램을 구하기 힘든 환경에 있는 경우 아에 처음부터 프로그램이 많이 포함된 Debian을 선택하는 것이 좋을지도 모른다. Debian의 경우 컴파일할일이 없을정도로 모든 프로그 램이 포함되어 있고 새로온 프로그램이 나오더라도 곧바로 패키지에 추가되고 있다. 한가지 흠이 라면 설치 프로그램이 난해하기 때문에 익숙해질때까지 좀 시간이 걸리는게 단점이다. Redhat는 설치도 용이하고 포함된 프로그램도 많다는 장점을 가지고 있다. 상업적으로 판매되는 Linux중에 서 꽤 성공을 한 편에 속한다. CDROM으로 구할 수 있다면 이것을 설치하는것도 좋을것이다.

2.리눅스 구하기


리눅스 버전 0.9x 시절만 하더라도 디스켓으로 배포되는 경우가 많았다. 아직 CDROM 드라 이브가 대중화 되지 않았고 리눅스 패키지가 디스켓으로 30장에서 50장 사이였기 때문이다. 1993 년에 주류를 이루던 SLS Linux가 디스켓 30장으로 배포되었으며 그 후에 주로 배포되던 Slackware Linux가 50장 정도로 배포되었다. 그러나 오늘날 배포본의 크기가 300메가에서 600메 가 까지 늘어남으로서 디스켓으로 배포하는 것은 상상도 할 수 없을 것이다. 현재 LAN환경이 좋 은 교육기관이나 연구소 등에서는 Internet을 통한 배포가 주력을 이루고 있으나 전화선에 Internet을 의존하는 일반인의 경우 Internet을 통한 배포보다는 CDROM에 의한 배포를 선호하고 있다. 국내에서 사용되는 배포본은 크게 3가지로 나눌 수 있다.
Slackware Linux 3.1 Debian Linux 1.1.13 Redhat Linux 4.0

2.1.FTP로 구하기

랜 환경이 좋은 곳에서는 가까운 mirror site로부터 배포본을 다 받아온 후 설치하면 좋을 것 이다. 현재 국내에서 배포본을 mirror한 곳은 다음과 같으며 나날이 늘어나고 있다.


배포본마다 약간식의 차이는 있으나 readme나 install.txt등을 읽어보면 필요한 파일이 무엇 인지 알 수 있으므로 그것을 받아오면 될 것이다.

각 배포본 별로 필요한 파일을 살펴보면 다음과 같다.

기본적으로 부팅에 필요한 디스켓 이미지(1장에서 5장)와 실제 설치에 필요한 프로그램들 (.tgz, .rpm, .deb등)으로 구성된다.

Slackware 3.1

bootdsks.144 or bootdsks.12에서 시스템에 맞는 boot disk image
rootdsks에서 color.gz
slakware내의 각 series (a1에서 y1까지)

Redhat 4.0

images내에 있는 boot.img
RPMS내에 있는 rpm 파일들

Debian 1.1

disks-i386/1996-07-14내에 있는 부팅 디스크 이미지(1.44M 5장 또는 1.2M 6장)
binary내에 있는 deb파일들

2.2.CDROM으로 구하기


랜환경이 열악한 경우 또는 가까운 거리에 mirror site가 없는 경우 집에서 설치하는 경우, 역시 ftp보다는 CDROM으로 설치하는 것이 편리할 것이다. Slackware나 Redhat의 경우 정품 CDROM을 구입하면 부팅 디스켓 없이 설치를 시작할 수 있어 편리하다. 초보자의 경우 여러번 설치/삭제를 반복하는 경우 역시 CDROM이 편리할것이다.

CDROM의 경우 먼저 최근에 나온 잡지에서 부록으로 준 CD를 들 수 있다.

월간 프로그램세계 9월호의 "알짜웨어 Linux" (Slackware 3.1의 수장판)

월간 Hello PC 11월호의 "Debian Linux"

이 경우 잡지 가격으로 CDROM을 구할 수 있기 때문에 저렴하나 약간의 버그등이 존재한 다. 그러나 이들 버그는 통신상에서 수정판 등이 있기 때문에 큰 문제는 안될것이다.

국내에서 제작 판매되는 CDROM으로는 ClassData사의 Debian Linux가 대표적인 예이다.

그 외에 해외에서 제작된 것을 수입판매되는 경우가 많다.

해외의 경우 판매하는곳은 아주 많다. 각 배포본의 home site에 가면 쉽게 구입방법을 찾을 수 있을것이다.

Slackware 리눅스의 설치


앞에서 열가한 3가지 배포본 중 가장 널리 알려진 Slackware Linux의 설치법을 간략하게 살 펴보면 다음과 같다.

  1. boot disk, root disk의 작성
  2. boot disk로 부팅.
  3. 화면에 나오는 메시지를 따라 root disk로 교체.
  4. root로 login한다.
  5. fdisk를 사용하여 리눅스 파티션 작성
  6. setup 실행

    lqqqqqqqqqqqqqq Slackware96 Linux Setup (version HD-3.1.0) qqqqqqqqqqqqqqk
    x x
    x Welcome to Slackware Linux Setup. x
    x x
    x Hint: If you have trouble using the arrow keys on your keyboard, x
    x you can use '+', '-', and TAB instead. Which option would you like? x
    x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
    x x HELP Read the Slackware Setup HELP file x x
    x x KEYMAP Remap your keyboard x x
    x x MAKE TAGS Tagfile customization program x x
    x x TARGET Select target directory [now: /] x x
    x x SOURCE Select source media x x
    x x DISK SETS Decide which disk sets you wish to install x x
    x x INSTALL Install selected disk sets x x
    x x CONFIGURE Reconfigure your Linux system x x
    x x PKGTOOL Install or remove packages with Pkgtool x x
    x x EXIT Exit Slackware Linux Setup x x
    x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
    tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
    x < OK > <Cancel> x
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

  7. 여기서 SOURCE를 선택하여 어디로부터 설치하는지 선택을 한다.
    1 Install from a hard drive partition
    2 Install from floppy disks
    3 Install via NFS
    4 Install from a pre-mounted directory
    5 Install from CD-ROM

    중 자신이 가지고 있는 Slackware Linux package에 맞추어 선택한다.

  8. 그 다음에는 DISK SETS를 선택하게 되며 설치를 원하는 시리즈를 선택한다. 잘 모를 경우 그냥 다 선택하면 될 것이다.
  9. 그러면 설치가 시작되며 몇분 후면 리눅스가 완성된다.

4.서버로서의 리눅스

리눅스 배포본을 설치하며는 기본적으로 필요한 서버기능은 다 설치되어 있다. 서버에 필요 한 daemon들이 부팅시에 전부 작동하여 랜설정만 제대로 하였다면 곧바로 서버로 활용할 수 있 다. 물론 세부적인 설정은 각 daemon마다 손을 보아야한다. Slackware 3.1의 경우 기본적으로 포 함된 서버로는


등이 있으며 필요에 따라 MAPI server, Samba server, Gohper server 등도 설치가 가능하 다. 몇가지 서버의 특징과 설정방법을 살펴보면 다음과 같다.

4.1.INET SuperServer

Internet 상에서 가장 널리 사용되는 것은 역시 telnet와 ftp가 아닐까 생각된다. 그 외에 UNIX에서 네트워크를 사용함에 있어서 기본적으로 필요한 서버들은 INET Superserver로 작동 이 된다. 이는 /etc/inetd.conf에 등록된 daemon들을 외부의 교구에 응하여 실행을 시켜 외부로부 터의 접속을 가능하게 해준다. 가장 기본적인 서버이므로 설치된 그대로 사용해도 아무 이상이 없을 것이다.

한가지 문제가 있다며는 보안상의 문제일 것이다. 예를 들어 Slackware에서 기본적으로 열려 있는 finger, netstat등의 포트는 헤커들의 침입경로가 될 수도 있기 때문에 아에 막아버릴 수도 있다. 막는 것은 아주 쉽다. 아레 예와 같이 해당 daemon앞에 #를 붙여 remark시켜버리면된다.

#finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -w
systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx
netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat -a

이렇게 하면 외부에서 finger를 할 수 없게 된다.

4.2.Mail server

최근에 리눅스에서 주류를 이루고 있는 mail server는 sendmail이다. Slackware의 경우 sendmail-8.8.2 (10월 29일 현재)가 포함되어 있다. 그러나 이 sendmail을 사용하는 경우 한글편지 를 사용하는데 문제가 있으므로 한글 sendmail로 교체하던가 사용자 에이전트인 elm이나 pine을 적단당히 수정을 가할 필요가 있다. 그런데 한글 sendmail이나 초기 배포판에 포함된 8.8.2버전 이전의 영문 sendmail는 보안상 문제가 있는 버전이므로 가능한한 최신 sendmail로 교체하는게 좋다. 메일서버를 실행하려면 단순히

/usr/sbin/sendmail -bd -q 15m

를 실행하면 되며 slackware의 경우 부팅시 자동으로 실행이 된다.

4.3.HTTP server

HTTP server로는 Apache httpd server가 기보적으로 설치 된다.

Slackware의 경우 /var/lib/httpd에 설치가 되는데 설정을 위해서는 conf내에 있는


를 수정하면 된다.

4.4.기타 서버

앞에 열거된 NAMED/BIND name server, ROUTEd server, RWHO server, SUN RPC server 등은 /etc/rc.d/rc.inet2 파일내에서 실행이 된다. 필요한 서버가 있는 경우 앞에 붙은 # comment를 빼면 되고 사용하지 않는 서버는 #를 부쳐 빼버리면 된다.

다음은 Slackware 에서의 초기상태이며 NFS (Network File System) 서버에 필요한 portmap, mountd, nfsd deamon만 실행이 되는 상태이고 나머지 서버는 comment out 되어 실행 이 안되는 상태이다.

# Start the SUN RPC Portmapper.
if [ -f ${NET}/rpc.portmap ]; then
echo -n " portmap"
${NET}/rpc.portmap
fi
# # Start the NAMED/BIND name server.
# if [ -f ${NET}/named ]; then
# echo -n " named"
# ${NET}/named
# fi
# # Start the ROUTEd server.
# if [ -f ${NET}/routed ]; then
# echo -n " routed"
# ${NET}/routed -g -s
# fi
# # Start the RWHO server.
# if [ -f ${NET}/rwhod ]; then
# echo -n " rwhod"
# ${NET}/rwhod -t -s
# fi
# # Start the various SUN RPC servers.
if [ -f ${NET}/rpc.portmap ]; then
# Start the NFS server daemons.
if [ -f ${NET}/rpc.mountd ]; then
echo -n " mountd"
${NET}/rpc.mountd
fi
if [ -f ${NET}/rpc.nfsd ]; then
echo -n " nfsd"
${NET}/rpc.nfsd
fi
# # Fire up the PC-NFS daemon(s).
# if [ -f ${NET}/rpc.pcnfsd ]; then
# echo -n " pcnfsd"
# ${NET}/rpc.pcnfsd ${LPSPOOL}
# fi
# if [ -f ${NET}/rpc.bwnfsd ]; then
# echo -n " bwnfsd"
# ${NET}/rpc.bwnfsd ${LPSPOOL}
# fi
fi # Done starting various SUN RPC servers.


실제로 다른 호스트에서 리눅스 서버의 디바이스를 마운트하려면

/etc/export에 다음과 같이 마운트하려는 디바이스를 지정을 해야한다.

5.리눅스 서버 하드웨어


끝으로 리눅스 서버에 필요한 하드웨어를 살펴보자.

리눅스를 서버로서 사용하는데 있어서 어느정도의 장비가 필요할것인가?

단순한 소형 ftp, mail등의 서버로 사용할 경우는


정도만 되더라도 충분히 그 기능을 만족할 수 있다. 그러나 좀더 본격적인 서버를 원하는 경 우 각 부품을 좀도 고급사양으로 맞추어도 될 것이다.

5.1.CPU

리눅스는 현재 Intel x86 계열, Alpha 계열, Sparc 계열의 3가지 종류가 나와 있으므로 IBM PC호환기종이 아니더라도 리눅스를 서버의 OS로 사용할 수 있다. IBM PC호환 기종을 사용할 경우 Pentium급이면 대부분의 서버에서 문한히 사용할 수 있을 것이다. 만일 좀더 많은 CPU work를 하는 서버인 경우 Pentium Pro를 사용하던가 아니면 Pentium 또는 Pentium Pro의 Dual CPU Main Board를 사용하면 리눅스를 듀얼CPU PC에서 사용할 수도 있다. Linux kernel 2.0이 후에서는 기본적으로 SMP(Shared Memory multiProcessor)를 지원하므로 시중에서 판매되는 Dual CPU Main baord를 사용하면 듀얼 CPU 서버를 구축할 수 있다.

5.2.RAM

RAM은 많을수록 빨라진다. 물론 커질수록 성능상승폭은 감소하지만 많아서 손해될 것은 없 다. 최근에는 램값의 하락으로 쉽게 고용량 램을 탑제할 수 있을 것이다. 적어도 16MB는 있어야 원할히 사용할 수 있으며 64MB, 128MB등이 되면 왠만한 작업에는 문제가 없을 것이다.

5.3.HDD

HDD는 사용용도에 맞추어 그 용량을 선택하면 될 것이다. 대용량 파일서버라면 수십GB의 하드를 달면 될것이고 단지 WWW서버로만 사용할 경우 그 규모에 맞추어 선택해야하지만 수GB 정도면 충분할 것이다. 하드디스크의 경우 EIDE방식과 SCSI방식 중 어느것을 선택할 지 고민이 되지만 서버로 사용할 경우 가능하면 SCSI를 권장한다. 단독사용자의 경우 EIDE가 성능이 좋게 나오지만 여러사람이 동시에 access하는 경우는 역시 SCSI HDD가 탁월하다.

5.4.기타 주변기기

일반 PC를 서버로 사용할 경우 문제가 되는 것은 내구성이다. 하루종일 쉬지않고 컴퓨터를 켜놓아야하기 때문에 부품의 내구성이 중요하게 된다. 필자의 경험에 의하면 일반 PC에 사용하는 부품으로도 1년정도는 아무문제 없이 사용이 가능한 것 같다. 그래도 가능하면 안정성있는 부품 을 사용하고 하드디스크는 SCSI방식을 선택하는등 배려가 있어야할 것이다.