리눅스의 설치와 대형 서버 구축리눅스는 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
Debian 1.1
이와 같이 볼 때 초보자의 경우 Slackware 3.1이 가장 좋을 것이다. 왠만한 작업에 필요한
프로그램은 다 포함되어 있고 무엇보다 설치가 용이하다. 그러나 포함된 프로그램이 적기 때문에
새로운 프로그램을 구하기 힘든 환경에 있는 경우 아에 처음부터 프로그램이 많이 포함된
Debian을 선택하는 것이 좋을지도 모른다. Debian의 경우 컴파일할일이 없을정도로 모든 프로그
램이 포함되어 있고 새로온 프로그램이 나오더라도 곧바로 패키지에 추가되고 있다. 한가지 흠이
라면 설치 프로그램이 난해하기 때문에 익숙해질때까지 좀 시간이 걸리는게 단점이다. Redhat는
설치도 용이하고 포함된 프로그램도 많다는 장점을 가지고 있다. 상업적으로 판매되는 Linux중에
서 꽤 성공을 한 편에 속한다. CDROM으로 구할 수 있다면 이것을 설치하는것도 좋을것이다.
리눅스 버전 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
랜 환경이 좋은 곳에서는 가까운 mirror site로부터 배포본을 다 받아온 후 설치하면 좋을 것
이다. 현재 국내에서 배포본을 mirror한 곳은 다음과 같으며 나날이 늘어나고 있다.
배포본마다 약간식의 차이는 있으나 readme나 install.txt등을 읽어보면 필요한 파일이 무엇
인지 알 수 있으므로 그것을 받아오면 될 것이다.
각 배포본 별로 필요한 파일을 살펴보면 다음과 같다.
기본적으로 부팅에 필요한 디스켓 이미지(1장에서 5장)와 실제 설치에 필요한 프로그램들
(.tgz, .rpm, .deb등)으로 구성된다.
Slackware 3.1
Redhat 4.0
Debian 1.1
랜환경이 열악한 경우 또는 가까운 거리에 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에 가면 쉽게 구입방법을 찾을
수 있을것이다.
앞에서 열가한 3가지 배포본 중 가장 널리 알려진 Slackware Linux의 설치법을 간략하게 살
펴보면 다음과 같다.
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
중 자신이 가지고 있는 Slackware Linux package에 맞추어 선택한다.
리눅스 배포본을 설치하며는 기본적으로 필요한 서버기능은 다 설치되어 있다. 서버에 필요
한 daemon들이 부팅시에 전부 작동하여 랜설정만 제대로 하였다면 곧바로 서버로 활용할 수 있
다. 물론 세부적인 설정은 각 daemon마다 손을 보아야한다. Slackware 3.1의 경우 기본적으로 포
함된 서버로는
등이 있으며 필요에 따라 MAPI server, Samba server, Gohper server 등도 설치가 가능하
다. 몇가지 서버의 특징과 설정방법을 살펴보면 다음과 같다.
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를 할 수 없게 된다.
최근에 리눅스에서 주류를 이루고 있는 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의 경우 부팅시 자동으로 실행이 된다.
HTTP server로는 Apache httpd server가 기보적으로 설치 된다.
Slackware의 경우 /var/lib/httpd에 설치가 되는데 설정을 위해서는 conf내에 있는
를 수정하면 된다.
앞에 열거된 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에 다음과 같이 마운트하려는 디바이스를 지정을 해야한다.
끝으로 리눅스 서버에 필요한 하드웨어를 살펴보자.
리눅스를 서버로서 사용하는데 있어서 어느정도의 장비가 필요할것인가?
단순한 소형 ftp, mail등의 서버로 사용할 경우는
정도만 되더라도 충분히 그 기능을 만족할 수 있다. 그러나 좀더 본격적인 서버를 원하는 경
우 각 부품을 좀도 고급사양으로 맞추어도 될 것이다.
리눅스는 현재 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 서버를 구축할 수 있다.
RAM은 많을수록 빨라진다. 물론 커질수록 성능상승폭은 감소하지만 많아서 손해될 것은 없
다. 최근에는 램값의 하락으로 쉽게 고용량 램을 탑제할 수 있을 것이다. 적어도 16MB는 있어야
원할히 사용할 수 있으며 64MB, 128MB등이 되면 왠만한 작업에는 문제가 없을 것이다.
HDD는 사용용도에 맞추어 그 용량을 선택하면 될 것이다. 대용량 파일서버라면 수십GB의
하드를 달면 될것이고 단지 WWW서버로만 사용할 경우 그 규모에 맞추어 선택해야하지만 수GB
정도면 충분할 것이다. 하드디스크의 경우 EIDE방식과 SCSI방식 중 어느것을 선택할 지 고민이
되지만 서버로 사용할 경우 가능하면 SCSI를 권장한다. 단독사용자의 경우 EIDE가 성능이 좋게
나오지만 여러사람이 동시에 access하는 경우는 역시 SCSI HDD가 탁월하다.
일반 PC를 서버로 사용할 경우 문제가 되는 것은 내구성이다. 하루종일 쉬지않고 컴퓨터를
켜놓아야하기 때문에 부품의 내구성이 중요하게 된다. 필자의 경험에 의하면 일반 PC에 사용하는
부품으로도 1년정도는 아무문제 없이 사용이 가능한 것 같다. 그래도 가능하면 안정성있는 부품
을 사용하고 하드디스크는 SCSI방식을 선택하는등 배려가 있어야할 것이다.