★ 이 책에서 다루는 내용 ★
■ 일반적이고 고급스런 방법을 통한 센트OS 7 리눅스 서버 시스템의 설치 및 설정
■ 전문가 설정 조언 사용과 소프트웨어 패키지 관리를 통한 성능 기반 및 보안 서버 솔루션 유지
■ 안정된 성능을 유지하기 위한 서버의 파일 시스템 모니터링 및 관리, 개발
■ 특정 네트워크에서 파일과 자원 공유에 대한 모범 사례
■ 웹, 메일, FTP, 데이터베이스, 도메인 이름 서버 기술 등 일반적인 표준 서비스 설치 및 설정
■ 도커 플랫폼을 사용한 운영체제 레벨의 가상화 방법 소개
■ SELinux 접근 제어 아키텍처의 기초 이해
■ 나기오스를 이용한 IT 인프라 장비 모니터링
★ 이 책의 대상 독자 ★
센트OS 자체에 대한 내용보다는 센트OS 서버 솔루션 구축에 대해 다루는 실용적인 가이드며, 센트OS 서버의 사용 방법을 보여준다. 또한 이 책은 센트OS를 처음 사용하고자 하는 리눅스 초보자부터 중급자를 위해 작성됐다. 하지만 이 운영체제가 생전 처음이더라도 걱정하지 않아도 된다. 이 책은 완벽한 서버 솔루션을 구축하는 방법과 추가적으로 전문 기술을 구축할 수 있는 많은 노하우가 포함된 단계별 접근 방식을 제공한다.
★ 이 책의 구성 ★
1장, ‘센트OS 설치’에서는 서버를 설치하는 작업과 추가 툴을 사용해 센트OS 7의 미니멀을 변경하고 개선하는 작업을 소개하는 예제를 다룬다. 센트OS를 처음 설치하는 독자를 위해 작성됐고, 원하는 센트OS 버전을 설치하는 다양한 방법을 예제를 통해 소개한다.
2장, ‘시스템 설정’에서는 리눅스 초보자들에게 도움의 손길을 제공하고자 예제를 통해 설치부터 쉽게 따라 하고, 서버 설정을 원하는 대로 진행할 수 있도록 돕는다. 텍스트 파일로 작업하는 방법을 보여주면서 시작하고, 언어와 시간 및 날짜 설정을 변경하는 방법을 소개하며, 네트워크를 설정하는 방법뿐 아니라 모든 도메인 이름을 찾는 방법, 커널 모듈과 연동하는 방법을 소개했다.
3장, ‘시스템 관리’에서는 서버를 강화하고 환경을 통제할 수 있는 빌딩 블록을 제공한다. 전문 서버 솔루션 개발에 필요한 다양한 단계를 살펴보며 습득한 풍부한 지식을 널리 활용한다면 서버 관리자로서 빨리 자리 잡을 수 있다.
4장, ‘YUM으로 패키지 관리’에서는 센트OS 7에서 소프트웨어 패키지로 작업하는 방법을 소개한다. 시스템 업그레이드부터 추가 저장소로 시스템을 검색, 설치, 삭제, 개선할 수 있는 내용까지 다룬다. YUM(Yellowdog Updater Modified)과 RPM 패키지 관리자로 알려진 오픈소스 커맨드라인 패키지 관리 유틸리티를 설명한다.
5장, ‘파일 시스템 관리’에서는 서버의 파일 시스템에 집중한다. 가짜 디스크 디바이스의 생성부터 테스트 드라이브 개념 전문가 레벨 포매팅과 파티셔닝 커맨드까지, 논리 볼륨 매니저(Logical Volume Manager)의 사용 방법을 소개하고, 파일 시스템을 유지 보수하는 방법, 디스크 쿼터로 작업하는 방법을 배운다.
6장, ‘보안 기능 제공’에서는 성공적인 서버 솔루션 실행에 필요한 보호 레벨을 전달하는 다양한 방법을 다룬다. ssh 서비스와 FTP 서비스를 보호부터 새로운 firewalld 매니저와 인증서 생성까지, 외부 공격의 위험을 낮출 필요성을 고려할 뿐 아니라 사용자에게 추가적인 보안 기능을 제공하는 서버 구축이 얼마나 쉬운지 살펴본다.
7장, ‘네트워크 구축’에서는 내부 네트워크의 컴퓨터 간 여러 형태의 자원 공유를 구현하는 필수 단계를 다룬다. IP 주소와 프린트 디바이스부터 다양한 형태의 파일 공유 프로토콜까지, 홈 네트워크나 회사 네트워크 환경을 구축하는 데 있어서 모든 서버의 중요한 역할을 설명한다.
8장, ‘FTP 작업’에서는 센트OS 7 서버에 제공하고 싶은 FTP(File Transfer Protocol)의 설치, 설정, 관리에 필요한 가이드 예제를 소개하고, VSFTP의 역할에 집중한다.
9장, ‘도메인 작업’에서는 센트OS 7 서버의 도메인 이름, 도메인 해석, DNS 질의를 구현하기 위해 필요한 단계를 소개한다. 도메인 이름 시스템은 모든 서버가 필요로 하는 환경, 홈 네트워크 또는 회사 환경에서 중요한 역할을 한다. 미래 경쟁력을 갖춘 여러 솔루션을 예제로 소개한다.
10장, ‘데이터베이스 작업’에서는 센트OS 7에 데이터베이스를 배포하는 필수 단계를 설명하기 위해 MySQL와 PostgreSQL의 접근 방법을 설명한다.
11장, ‘메일 서비스 제공’에서는 센트OS 7에서 상위 도메인에 대한 메일 전송 에이전트(Mail Transport Agent)를 활성화하는 방법을 소개한다. 내부 POP3/SMTP 서버의 구축부터 Fetchmail 설정까지 다루며, 미래에 이메일 기반의 모든 필요를 위한 기초를 제공한다.
12장, ‘웹 서비스 제공’에서는 많이 알려진 아파치 서버 기술의 역할을 상세하게 분석한다. 여러분이 개발 서버나 실제 상용 서버를 실행하든 하지 않든 웹 기반 문서를 공개하는 솔루션의 장인이 되기 위해 필요한 웹 서비스 기능을 전달할 수 있는 필수 단계를 제공한다.
13장, ‘운영체제 레벨 가상화’에서는 최신 오픈소스 플랫폼인 도커(docker)를 사용한 리눅스 컨테이너를 소개하고, 처음 만들 도커 이미지의 생성 방법, 실행 방법, 공유 방법을 제공한다.
14장, ‘SELinux로 작업’에서는 센트OS 7의 가장 잘 알려지지 않은 주제 중 하나인 SELinux(Security Enhanced Linux)를 쉽게 설명하고 분석한다.
15장, ‘IT 인프라 장비 모니터링’에서는 전체 IT 인프라 장비의 모니터링에 대한 사실상 업계 표준인 나기오스 코어(Nagios Core)를 소개하고, 설정 방법을 보여준다.
★ 지은이의 말 ★
이 책은 2013년 출간돼 좋은 평가를 받아온 『CentOS 6 Linux Server Cookbook』의 두 번째 개정판이다. 센트OS 7이 2014년 중반에 출현한 이후 엄청난 변경이 있었고, 새로운 기능이 추가됐는데, 몇 가지 예를 들자면 새로운 설치자, 시스템 관리 서비스 기능, 방화벽 데몬, 개선된 리눅스 컨테이너 기능, 새로운 파일 시스템 등이 있다. 새로운 기능이 추가됨으로써 『CentOS 6 Linux Server Cookbook』의 많은 예제가 쓸모 없게 되거나 사용할 수 없게 돼 새롭게 내용을 변경했다. 이 책은 단지 초판에서 다뤘던 주제를 다시 상기하는 수준이 아니라 최신 오픈소스를 포함시키고 보안 문제를 더 다뤘으며, 운영체제 레벨의 가상화와 SELinux를 추가했다. 마지막으로 서버 관리에 대한 이해도를 높이기 위해 서버 모니터링을 다룬 장을 추가했다.
서버 구축 작업을 하다가 종종 도전에 직면하기도 한다. 서버 구축은 최적의 상황에도 종종 어렵고, 최악의 상황에는 훨씬 당황스럽다. 가장 큰 고난을 주는 작업이지만, 가장 자부심과 성과가 큰 작업이기도 하다. ‘서버’라는 단어는 많은 의미를 갖는데, 이 책에서 서버는 사용자가 전문 서버 솔루션을 선택해 엔터프라이즈급 컴퓨팅 시스템의 내부 작업을 의도적으로 노출시키고 내부의 내용을 공개하는 의미로 쓰인다. 센트OS는 무료며, 레드햇 엔터프라이즈 리눅스(RHEL, Red Hat Enterprise Linux)와 완벽히 호환되는 배포판이다. 또한 전 세계에서 서버를 실행하기 원하는 기관, 회사, 전문 기관, 일반 사용자가 첫 번째로 선택하는 운영체제다. 웹 서버, 파일 서버, FTP 서버, 도메인 서버, 여러 목적을 가진 솔루션 등 실행하려는 의도가 무엇이든 관계없이 센트OS는 매우 강력하고 유연한 리눅스 배포판으로 존중받고 있다. 이 책의 목적은 독자가 센트OS 운영체제를 사용해 원하는 서버, 즉 사용자가 원하는 기능이 있고 쓰기 쉬운 서버를 구축할 수 있도록 돕는 것이다. 이런 관점으로 본다면 이 책은 단지 센트OS 운영체제에 대한 소개 이상으로, 서버 기반의 운영체제를 설명하는 책이라 말할 수 있다. 엔터프라이즈 운영체제인 센트OS를 이해할 수 있도록 단계별 예제를 소개했다. 센트OS를 처음 접하든 이미 알고 있든 모든 사람을 위한 내용을 담았다. 이 책은 센트OS를 잘 이해할 수 있게 돕는 실용적인 가이드이자 센트OS의 모든 내용에 대한 시작점이 될 것이다.
★ 옮긴이의 말 ★
코드를 좋아하는 개발자지만, 리눅스 운영체제도 좋아한다. 리눅스 커널 프로그래밍을 하면서 리눅스와 조금씩 친해지기 시작했는데, 코드로는 어렵게 진행되지만 리눅스에서는 쉽게 할 수 있는 작업들을 알게 되면서 특히 리눅스를 좋아하게 됐다. 다양한 리눅스 배포판(레드햇 리눅스, 센트OS, 우분투, 페도라 리눅스 배포판)을 사용할 기회를 얻으면서 다양한 지식을 쌓게 됐다.
네이버에서 개발자로 일하면서 1,000여 대의 센트OS 서버 시스템을 관리했고, 리눅스 커널 /tcpdump/ 자바 분석 툴을 통해 애플리케이션의 성능 문제와 장애를 해결했으며, 아파치 서버/메일 서버/배포 서버/ 모니터링 서버/캐시 서버/Mysql DB 등의 구축 및 운영 업무를 해왔다. 이런 경험을 통해 안정적인 센트OS를 기반으로 다양한 기술들을 배우고 적용할 수 있었다.
하지만 센트OS 7에서 새로운 도전에 직면하게 됐다. 센트OS 7은 기존과는 달라진 명령어를 갖고 있다. 새로운 설치자, 시스템 관리 서비스 기능, 방화벽 데몬, 리눅스 컨네이너 기능(도커(docker) 지원), SELinux, 방화벽 관리 시스템, 새로운 파일 시스템이 추가됐는데, 생각보다 배우고 익혀야 할 내용이 많았다. 그때 마침 이 책을 보게 됐고, 센트OS 7에 대한 많은 지식을 얻을 수 있었다. 기존에 센트OS 6을 잘 아는 개발자/시스템 운영자뿐 아니라, 센트OS 7을 처음 접하는 개발자/시스템 운영자에게 이 책은 센트 OS 7의 길라잡이가 될 것이다.