http://kldp.org/node/93443 검색어 : 구글 - 리눅스 서버
처음 구상은 http://kldp.org/node/92255#comment-435383 게시물에서 나왔습니다.
막상 자료를 정리하려다 보니 상당히 어려운 작업입니다. 대상자가 "초보자용을 위한 간단한 안내서" 였기 때문입니다.
각자 분리된 주제였기 때문에 리눅스를 처음 사용하는 분들을 위한 북마크, http://kldp.org/node/93270 와 분리하여 게시합니다.
보통 언급되고 사용되는 서버 용도의 배포판
ㅇ RHEL http://www.redhat.com/rhel/server/
.....레드헷은 세게 기업 리눅스 시장에서 top 을 달리고 있다.
.....공개된 RHEL source RPM 을 재패키징해서 배포하고 있는 http://www.centos.org 도 있다. 보통 centos를 많이 사용한다.
.....CentOS에 대해서는 http://wiki.centos.org/Events/Fosdem2008?action=AttachFile&do=get&target... 를 참고하자.
.....많은 하드웨어, 프로그램 및 서비스등이 RHEL 계열에서 지원되고 있다.
ㅇ SLES http://www.novell.com/products/server/
ㅇ Ubuntu Server Edition : http://www.ubuntu.com/products/whatisubuntu/serveredition
ㅇ Debian stable version : http://www.debian.org/
ㅇ 아시아눅스 : http://www.haansoftlinux.com/product/asianux/asianux_is.php
.....한국의 한소프트리눅스, 중국의 홍기리눅스, 일본의 미라클리눅스 3국의 리눅스 업체가 중심으로 제작되고 있는 배포판
ㅇ 안녕 리눅스 : http://annyung.oops.org/
.....김정균님의 의해서 관리되고 있는 배포판. 자세한 내용은 아래의 소개를 인용합니다.
.....AnNyung(안녕) 은 너무나 비대해진 RedHat 배포본에 좌절하여, 가볍고 한글환경의 설정
.....에 최적화를 한 Mini Redhat 이라고 할 수 있습니다.
ㅇ ORACLE UNBREAKABLE LINUX : http://www.oracle.com/linux/index.html
.....오라클에서 RHEL의 공개된 소스를 바탕으로 만든 배포판, 오라클사의 리눅스 제품군에 최적화 되었다고 볼수 있다.
.....레드헷과 기술지원등에서 차별화를 시도하고 있다. (http://www.internetnews.com/dev-news/article.php/10792_3745021_2)
리눅스 서버 배포판의 선택의 기준은 유지보수, 기술지원, 호환성이라고 생각한다.
유지보수는 패키지 업데이트, 보안 업데이트 등이 잘 이루어지고 있는지 살펴봐야 하며,
기술지원은 상업용 배포판인 경우 메일, 전화, 홈페이지 등을 통하여 신속하게 지원을 받을 수 있는지 확인해야 겠다.
호환성은 자신이 하드웨어 업체(보통 위에서 언급한 배포판에 대해서 하드웨어 업체에서 바이너라 드라이버등을 제공한다.)의 서버나
오라클 데이타베이스나 기타 다른 상업용 프로그램을 사용해야하는 경우, 해당 업체(제품)에서 추천하는 배포판이 있는데
다른 배포판을 사용함에 따라 예상치 못한 문제를 겪을 수가 있다. 이럴때는 기술지원 받는데도 시간이 오래걸리고
경우에 따라서는 처음 선택한 배포판을 교체해서 작업하는데 시간비용상 이득인 경우가 있다.
물론, 개인용이거나 기술인력이 충분히 문제해결을 할 수 있는 경우에는 별 고민이 필요가 없겠다.
다만 개인용이라고 하더라도 보안 업데이트등의 문제는 반드시 신경써야 한다.
이제 보안 문제는 개인만의 문제가 아니라, 다같이 죽는냐 사느냐의 문제이다.
....한 서버는 괜찮아도 같은 네트워크에 있는 다른 서버로 인해 네트워크 부하과 발생하여(DDOS) 서비스를 못하게 될 수 있다는 것이다.
....또는 보안에 취약한 다른 서버를 경유하여 내가 관리하는 서버로 들어오는 경우 허술한 IDS, 방화벽 정책을 회피 할 수도 있다.
리눅스는 자체는 입문자를 위한 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 쉘에 대한 기본(파이프라인, 리다이렉션, 쉘 변수, 연산처리 등등)과 이를 이용한 쉘 프로그래밍
........ http://wiki.kldp.org/wiki.php/BashProgIntroHowto
....백업 관련한 명령(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이를 가리키는 말이다.
자세한 것은 아래의 참고자료를 보자. 영어 어렵다면 크고 굵은 글자와 그림만 보더라도 이해가 갈것이다.
Shining a Light on LAMP
http://www.developer.com/open/article.php/3560296
LAMP lights the web
http://www.redhat.com/magazine/003jan05/features/lamp/
LAMP Quickstart for Red Hat Enterprise Linux 4
http://www.dell.com/downloads/global/solutions/lamp_quickstart_rhel4.pdf
LAMP Tuning 자료
http://www.ibm.com/developerworks/views/linux/libraryview.jsp?topic_by=A...
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
각 서비스 관련 문제들은 관련 커뮤니티에 문의하는 것이 더 빠를때도 있다. 그렇다! KLDP는 리눅스 또는 오픈소스를 위한 커뮤니티다! 맞나...?
Apache : http://www.apache-kr.org/
MySQL : http://www.mysqlkorea.co.kr/
PHP : http://phpschool.com
데이타베이스 사랑넷 : http://database.sarang.net/
Oracle : http://oracleclub.com/
ProFTPD : http://proftpd.oops.org/
큐브리드 : http://www.cubrid.com/
Installing Oracle, PHP, and Apache on Linux
http://www.oracle.com/technology/tech/php/htdocs/inst_php_apache_linux.h...
http://www.oracle.com/technology/global/kr/tech/php/index.html
리눅스 도입 비용에 대한 연구 자료
http://www.levanta.com/linuxstudy/EMA_Levanta-Linux_RR.pdf
http://www.cyber.com.au/about/linux_vs_windows_tco_comparison.pdf
http://www.ibm.com/linux/RFG-LinuxTCO-vFINAL-Jul2002.pdf
리눅스가 어떻게 Enterprise 에서 사용되는지? (레드헷 자료)
http://www.wtec.co.th/WinTech/download/RHEL5.pdf
- 웹서비스 71%, DB서버 65%, 개발용 52%, 단독기능 수행 48% 등등
리눅스 가상화 환경 이해에 도움이 되는 자료(레드헷 자료)
http://www.redhatonintel.com/pdfs/idf_redhat.pdf
리눅스 보안
1. 업데이트 제공
우분투 : http://www.ubuntu.com/usn
수세 : http://www.novell.com/linux/security/securitysupport.html
레드헷 : http://www.redhat.com/security/updates/errata/
데비안 : http://www.debian.org/security/
젠투 : http://www.gentoo.org/security/en/index.xml
Linux Securiy.com Advisories : http://www.linuxsecurity.com/content/section/3/170/
2. 리눅스 보안 설정 참고
NSA Security Guide for RHEL 5 : http://www.nsa.gov/snac/downloads_redhat.cfm?MenuID=scg10.3.1.1
Securing and Hardening Red Hat Linux Production Systems : http://www.puschitz.com/SecuringLinux.shtml
3. 보안 참고 자료
Risk report: Three years of Red Hat Enterprise Linux 4
http://www.redhatmagazine.com/2008/02/26/risk-report-three-years-of-red-...
보안, 오픈소스, 레드헷 을 주제로한 세미나 자료
http://people.redhat.com/jmorris/slides/dw-RedhatSecurity.pdf
Securing & Optimizing Linux: The Ultimate Solution 2.0 (최신버전은 3.0 이며 책으로 판매중)
http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-The-Ultimate-Soluti...
ㅇ RAID 참고자료
RAID 에 대해 쉽게 설명 : http://www.acnc.com/04_01_00.html
리눅스에서의 RAID : http://linux-raid.osdl.org/index.php/Main_Page
RAID 0+1과 0+1의 차이점 설명 : http://www.2cpu.co.kr/zboard/zboard.php?id=raid&page=1&sn1=&divpage=1&sn...
ㅇ 솔라리스 10, RHEL5, 윈도우 2003 스펙 비교 자료(단 sun과 관련된 곳의 자료임)
http://blogs.sun.com/jimlaurent/entry/comparing_solaris_10_rhel_5
ㅇ 튜닝 관련된 자료
유명한 http://www.puschitz.com/TuningLinuxForOracle.shtml 의 자료가 http://www.redhat.com/docs/manuals/enterprise/RHELTuningandOptimizationf...
에 메뉴얼로 되어있습니다. 출처 : http://www.redhat.com/docs/manuals/enterprise/
Linux Performance and Tuning Guidelines : http://www.redbooks.ibm.com/abstracts/redp4285.html
Tuning IBM System x Servers for Performance : http://www.redbooks.ibm.com/abstracts/sg245287.html
....서버와 관련한 하드웨어에 대해 알수 있는 좋은 문서이다.
여러가지 링크를 적어두었지만, 각 배포판 업체에서 나오는 문서를 한번쯤 꼼꼼히 읽어볼것을 추천드립니다.
Red Hat Enterprise Linux 4 보안 가이드 : http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ko/security-...
Red Hat Enterprise Linux 4 시스템 관리 안내서 : http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ko/admin-gui...
....위 자료는 http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ko-KR/index.... 에서 PDF 파일을 다운로드 할 수 있습니다.
....굳이 시스템관리 또는 보안 입문서가 필요 없을 정도로 좋은 내용이라고 생각합니다.
....이러한 절차적이 내용에 관심이 더 많으시면 http://tunelinux.pe.kr/ 와 http://groups.google.co.kr/group/sysadminstudy 에 관심을 가져보시기 바랍니다.
수세의 문서자료는 http://www.novell.com/documentation/sles10/index.html 에서 볼 수 있습니다.
리눅스 교육(무엇을 공부해야 할지 모르를때는 교육을 제공하는 회사의 홈페이지를 참고하는 것이 제일이다.)
http://www.gurulabs.com/training/courses.php
http://www.oracle.com/global/us/education/linux/training.html
http://www.kr.redhat.com/training/
RHCE 동영상 유료강의(영어, RHCE 책으로 유명한 Michael Jang 강의) : http://www.vtc.com/products/red_hat_certified_engineer_tutorials.htm
이 게시물에서 가장 중요하게 언급된 단어는 문서화입니다. 운영체제를 비롯하여 텍스트 기반으로 환경의 프로그램들이 함게 움직이는 만큼, 처음 접하는 분들은
설정이 어려울 수 있습니다. 이러한 어려움은, 내가 어떤 작업을 할 것인가, 구성요소는 무엇이며, 그 작업은 어떠한 명령 순서로 이루어 지는가,
서비스 운영과 관련되 파일은 무엇인지 정리하고 먼저 문서로 정리함으로써 조금이나마 해소될 수 있습니다. 물론 문서화하는 작업 자체가 어려운 일이기도 합니다만.....
보다 체계적인 리눅스 시스템 관리를 하기 위해서는 문서화와 자동화를 위한 꾸준한 관리활동이 필요합니다.
이 게시물에서는 빠져있지만 시스템관리 및 자동화에 대한 부분은 문태준님의 홈페이지(http://tunelinux.pe.kr/)를 참고하시면 되겠습니다.
저도 경험이 부족하여 더 좋은 자료나 현장감있는 이야기가 부족했습니다. 댓글을 통해 더 좋은 정보가 공유되길 희망해 봅니다.
(원래는 KLDP BBS에서 좋은 게시물을 찾아서 링크를 할려고 했습니다만...)
이 게시물은 계속 갱신될 예정입니다.