· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linux Admin Bookmark For Novice

리눅스 서버 운영 초보자를 위한 북마크

1. 목적

처음 구상은 http://kldp.org/node/92255#comment-435383 게시물에서 나왔습니다.
막상 자료를 정리하려다 보니 상당히 어려운 작업입니다. 대상자가 "초보자용을 위한 간단한 안내서" 였기 때문입니다.
각자 분리된 주제였기 때문에 리눅스를 처음 사용하는 분들을 위한 북마크와 분리하여 게시합니다.

2. 보통 언급되고 사용되는 서버 용도의 배포판

3. 리눅스 서버 배포판의 선택의 기준

리눅스 서버 배포판의 선택의 기준은 유지보수, 기술지원, 호환성이라고 생각한다.
유지보수는 패키지 업데이트, 보안 업데이트 등이 잘 이루어지고 있는지 살펴봐야 하며,기술지원은 상업용 배포판인 경우 메일, 전화, 홈페이지 등을 통하여 신속하게 지원을 받을 수 있는지 확인해야 겠다.
호환성은 자신이 하드웨어 업체(보통 위에서 언급한 배포판에 대해서 하드웨어 업체에서 바이너라 드라이버등을 제공한다.)의 서버나 오라클 데이타베이스나 기타 다른 상업용 프로그램을 사용해야하는 경우, 해당 업체(제품)에서 추천하는 배포판이 있는데 다른 배포판을 사용함에 따라 예상치 못한 문제를 겪을 수가 있다.
이럴때는 기술지원 받는데도 시간이 오래걸리고 경우에 따라서는 처음 선택한 배포판을 교체해서 작업하는데 시간비용상 이득인 경우가 있다.
물론, 개인용이거나 기술인력이 충분히 문제해결을 할 수 있는 경우에는 별 고민이 필요가 없겠다.
다만 개인용이라고 하더라도 보안 업데이트등의 문제는 반드시 신경써야 한다.
이제 보안 문제는 개인만의 문제가 아니라, 다같이 죽는냐 사느냐의 문제이다.

한 서버는 괜찮아도 같은 네트워크에 있는 다른 서버로 인해 네트워크 부하과 발생하여(DDOS) 서비스를 못하게 될 수 있다는 것이다.

또는 보안에 취약한 다른 서버를 경유하여 내가 관리하는 서버로 들어오는 경우 허술한 IDS, 방화벽 정책을 회피 할 수도 있다.

4. 공부 방법

리눅스는 자체는 입문자를 위한 2-3 일 정도의 정규교육을 받으면 될 정도로 쉽다.
아래의 내용만 알고 있다면 금새 operater 업무를 수행할 수 있다고 생각한다.
직장에서 갑자기 리눅스 서버 관리를 하라고 한다면, 교육을 보내달라고 하자.
꼭~! 아니면 난 서버 망가져도 책임 못진다고~
그래도 안된다면 http://wiki.kldp.org/wiki.php 의 내용을 잘 활용하자.
기본 명령어

파일 및 디렉토리 관련 cp, mv, rm, cd, cat, pwd, mkdir, rmdir, ls, du, df, mount

프로세스 관련 ps, kill, top, vmstat, free

검색 및 문자 처리 관련 : grep, more, less, find, sed, awk

편집기 vi

프로그램 설치 방법(소스 컴파일, YUM과 같은 패키지 관리 툴)

bash 쉘에 대한 기본(파이프라인, 리다이렉션, 쉘 변수, 연산처리 등등)과 이를 이용한 쉘 프로그래밍


백업 관련한 명령(tar, gzip, dump 등등)

그렇다면 무엇이 어렵게 만들까?
윈도우에서는 화면 따라하기 방식의 문서들이 많아서 그냥 마우스로 클릭 몇번이면 쉽게 서버를 만들 수 있다. (물론 아닌경우도 다반사다.)
또는 같은 웹서버라도 APM_Setup 과 같이 자동화되고 그래픽 관리툴을 함께 제공된다.
그러나 리눅스에서는 console이 주 작업환경이며, 요 몇년사이에 GUI 설정툴이나 web front-end 도 많이 있지만 역시 상세한 설정으로 들어가면 console 에서의 설정이 주이다. 게다가 대부분의 리눅스 강의는 텍스트 위주이다.
그래서 console 에서 text 설정파일을 다루기 위해 vi, emacs 등을 알아야하기 때문에 어려움을 느끼는 경우가 있다.
그래서 나는 이렇게 말씀드린다 윈도우에서 메모장을 쓰듯이 gedit 나 kedit 등을 사용하시라고....
굳이 사용하기 어려운 편집기를 고집할 필요는 없다고 생각한다. 다만 vi는 거의 대부분의 리눅스 및 유닉스 서버에서 사용되는 편집기이므로 추후 콘솔앞이 아닌 원격으로 작업하는 경우, 또는 crash 상황의 복구모드 사용에 대비하여 기본적인 사용법은 익혀둘 필요가 있다.
vi 의 기본적인 사용법이란? 작업 모드에 대한 이해, 입력, 삭제, 저장, 종료, 복사, 찾기, 치환 등을 말한다.

또한 윈도우에서 별것 아니던 에러메시지등이 리눅스에서는 문제 해결하는데 있어서 결정적인 수단이 된다.
결국 에러메시지의 내용이 윈도우에 비해서 상당히 상세하므로 그에 따라 사용자 또한 어렵다는 인식을 하게 된다.
그런데 이것은 상당히 중요하다. 그 아무리 뛰어한 기술지원 업체라도 화면에 출력된 에러메시지나 로그 내용이 없으면 손쓸 방법이 없다.
늘 문제발생시에는 현재 시점의 설정 내용과 화면에 출력된 메시지, 로그파일을 백업해두자.
물론 평상시에 이런것들을 알아두는 것이 중요하니 관련된 내용을 문서화 해두자.
아래의 글을 보면 무엇을 이야기하는지 알 수 있다.
http://kldp.org/node/93096#comment-440459

[root@localhost chato]# mount -t ntfs-3g /dev/hda2 /chato/d
FATAL: Module fuse not found.
NTFS signature is missing.
Failed to mount '/dev/hda2': Invalid argument
The device '/dev/hda2' doesn't have a valid NTFS.
Maybe you selected the wrong device? Or the whole disk instead of a
partition (e.g. /dev/hda, not /dev/hda1)? Or the other way around?

이 에러 메지시에서 이미 해결 방법을 제시하고 있다. 첫줄에 보면 fuse 모듈을 찾을 수 없다고 나온다. 결국 답변자도 쉽게 해결책을 제시할 수 있다.
결국 이러한 메지시를 이해하는 과정을 통하여 리눅스 서버에 대해 알아 갈 수 있다.
리눅스에서 NTFS를 사용하기 위해서 ntfs-3g는 fuse 모듈을 필요로 한다.

그 다음으로는 각 서비스를 구성하는 프로토콜에 대한 이해이다.
윈도우에서는 GUI로 친숙하게 구성되었기 때문에 리눅스에서 텍스트로 보이는 갖가지 프로토콜 구성과 관련된 용어들이 보이면 어려움을 느끼게 된다.
리눅스에서 bind 라는 데몬으로 DNS서버를 구축할때 리눅스가 어려운게 아니라 DNS 프로코톨에 대한 이해와bind 데몬의 설정이 어려운 것이다.
결국 리눅스여서 서버 구성이 어렵게 되는 것이 아니라 프로토콜 및 작업내용에 대한 충분한 이해와작업 절차에 대한 문서화없이 머릿속에서 마우스 클릭 하듯 키보드 작업을 하다보면 쉬운것도 어렵게 되는 것이다.
따라서 반드시 사전에 작업 절차에 대한 문서화를 해두는 것이 리눅스 서버 작업에서 중요하다고 본다.
(이것은 어느 작업 분야에서나 마찬가지 이다. 그래야 문제 발생시 추적이 쉽게 된다.)

리눅스 네트워킹 스택 분석 (한글) :
http://www.ibm.com/developerworks/kr/library/l-linux-networking-stack/

LAMP(Linux, Apache, MySQL, PHP or Perl or Phyton)?
LAMP는 운영체제에는 리눅스, 웹서버에는 아파치, 데이타베이스 서버에는 MySQL, 스크립트 처리언어에는 PHP이를 가리키는 말이다.
자세한 것은 아래의 참고자료를 보자. 영어 어렵다면 크고 굵은 글자와 그림만 보더라도 이해가 갈것이다.



LAMP Quickstart for Red Hat Enterprise Linux 4
http://www.dell.com/downloads/global/solutions/lamp_quickstart_rhel4.pdf


LAMP 시스템 조율, Part 1: LAMP 아키텍처 이해 (한글) :
http://www-128.ibm.com/developerworks/kr/library/l-tune-lamp-1/
LAMP 시스템 조율, Part 2: 아파치와 PHP 최적화 :
http://www.ibm.com/developerworks/kr/library/l-tune-lamp-2.html
LAMP 시스템 조율, Part 3: MySQL 조율 :
http://www.ibm.com/developerworks/kr/library/l-tune-lamp-3.html

5. 전문 커뮤니티 & 자료링크

6. 리눅스 보안

7. 기타 자료

8. 조언

여러가지 링크를 적어두었지만, 각 배포판 업체에서 나오는 문서를 한번쯤 꼼꼼히 읽어볼것을 추천드립니다. 리눅스 교육(무엇을 공부해야 할지 모르를때는 교육을 제공하는 회사의 홈페이지를 참고하는 것이 제일이다.) 이 게시물에서 가장 중요하게 언급된 단어는 문서화입니다. 운영체제를 비롯하여 텍스트 기반 환경의 프로그램들이 함께 움직이는 만큼, 처음 접하는 분들은 설정이 어려울 수 있습니다.
이러한 어려움은, 내가 어떤 작업을 할 것인가, 구성요소는 무엇이며, 그 작업은 어떠한 명령 순서로 이루어 지는가, 서비스 운영과 관련되 파일은 무엇인지 정리하고 먼저 문서로 정리함으로써 조금이나마 해소될 수 있습니다.
물론 문서화하는 작업 자체가 어려운 일이기도 합니다만.....
보다 체계적인 리눅스 시스템 관리를 하기 위해서는 문서화와 자동화를 위한 꾸준한 관리활동이 필요합니다.
이 게시물에서는 빠져있지만 시스템관리 및 자동화에 대한 부분은 문태준님의 홈페이지(http://tunelinux.pe.kr/)를 참고하시면 되겠습니다.

저도 경험이 부족하여 더 좋은 자료나 현장감있는 이야기가 부족했습니다. 댓글을 통해 더 좋은 정보가 공유되길 희망해 봅니다.
(원래는 KLDP BBS에서 좋은 게시물을 찾아서 링크를 할려고 했습니다만...)

이 게시물은 계속 갱신될 예정입니다.



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-11-12 15:36:02
Processing time 0.0216 sec