리눅스를 다루는 기술
현명한 시스템 관리자가 되기 위한 첫걸음!
우분투는 접근성이 높고 기능이 뛰어나 전 세계적으로 가장 인기 있는 리눅스 배포판이다. 이 책은 Ubuntu 20.04 환경에서 다양한 네트워크 서버를 구축해 보고 시스템을 효율적으로 관리하는 방법을 설명한다. ‘우분투 설치 및 기본 명령 익히기 - 네트워크 서버 운영 - 관리 자동화 기술’ 3단계로 구성하여 리눅스에 입문한 사람들이 기초부터 실무까지 한 권으로 끝낼 수 있도록 구성했다. 전 과정이 모두 실습으로 이루어져 있어서 자연스럽게 개념을 습득할 수 있을 뿐만 아니라 실무에서 맞닥뜨릴 수 있는 문제 상황과 솔루션을 알려주기 때문에 실무 적응력도 기를 수 있다.
«리눅스를 다루는 기술»은 1~4장, 12~14장을 공개합니다.
목차
- 1장 시작하기
- 1.1 시작에 앞서
- 1.1.1 리눅스 세상이 열리다
- 1.1.2 우분투를 선택한 이유
- 1.2 시스템 자동화
- 1.2.1 시스템 자동화의 필요성
- 1.2.2 어떤 작업을 자동화합니까?
- 1.3 무엇을 어떻게 배우나요?
- 1.3.1 이 책의 구성
- 1.3.2 실습 환경 소개
- 2장 우분투 데스크톱
- 2.1 설치 준비
- 2.1.1 시스템 정보를 모으고 자료 저장하기
- 2.1.2 펌웨어와 파티션 구조
- 2.1.3 설치 공간 계획하기
- 2.1.4 우분투 iso 이미지 내려받기
- 2.1.5 우분투 설치 매체 제작하기
- 2.2 우분투 데스크톱 설치하기
- 2.2.1 우분투 설치 매체로 부팅하기
- 2.2.2 우분투 데스크톱 설치하기
- 2.3 우분투 데스크톱 활용하기
- 2.3.1 데스크톱 둘러보기
- 2.3.2 네트워크 설정하기
- 2.3.3 한글 입출력 설정하기
- 2.3.4 사용자 관리하기
- 2.3.5 패키지 관리하기
- 2.4 우분투 서버 설치하기
- 2.4.1 우분투 서버 설치
- 2.4.2 설치 후 기본 설정하기
- 3장 명령행 인터페이스
- 3.1 명령행 인터페이스로 시스템 관리하기
- 3.1.1 명령행 인터페이스를 배워야 한다고요?
- 3.1.2 셸
- 3.2 시작하고 종료하기
- 3.2.1 셸 시작하기
- 3.2.2 셸 환경변수
- 3.2.3 시스템 종료하기
- 3.3 사용자 관리하기
- 3.3.1 로그인한 사용자 정보 조회하기
- 3.3.2 루트 권한 획득하기
- 3.3.3 사용자 계정 추가하기
- 3.3.4 사용자 계정 전환하기
- 3.3.5 그룹 관리하기
- 3.4 파일 관리하기
- 3.4.1 리눅스에서 파일이란?
- 3.4.2 파일 목록 화면에 표시하기
- 3.4.3 파일 정보에 대해
- 3.4.4 파일 소유권과 접근 권한 변경하기
- 3.4.5 리눅스 시스템 디렉터리
- 3.4.6 디렉터리 다루기
- 3.4.7 파일 다루기
- 3.4.8 파일 내용 확인하기
- 3.4.9 파일 검색하기
- 3.5 프로세스 관리하기
- 3.5.1 프로세스
- 3.5.2 프로세스 확인하기
- 3.5.3 열린 파일 목록 조회하기
- 3.5.4 작업 제어하기
- 3.5.5 프로세스 상태 변경하기
- 3.6 패키지 관리하기
- 3.6.1 기본 패키지 관리 명령 dpkg
- 3.6.2 향상된 패키지 관리 도구 apt
- 3.7 서비스 관리하기
- 3.7.1 시스템 관리자 systemd
- 3.7.2 systemctl로 시스템 상태 조회하기
- 3.7.3 systemctl로 서비스 제어하기
- 3.7.4 journalctl로 systemd의 로그 정보 조회하기
- 3.8 vi 편집기 익히기
- 3.8.1 vim으로 업데이트
- 3.8.2 vi 모드
- 3.8.3 명령 모드에서 사용할 수 있는 키
- 3.8.4 파일 작성하기
- 3.8.5 ex 모드에서 사용할 수 있는 명령
- 초보 시스템 관리자의 일기 - 시스템 관리자의 단짝 친구 셸 스크립트
- 4장 리눅스 가상 시스템
- 4.1 리눅스 가상 시스템이란
- 4.1.1 어서 와! 가상 시스템은 처음이지
- 4.1.2 커널 가상 장치 KVM
- 4.1.3 리눅스 가상 시스템의 구조
- 4.2 가상 시스템 설치하기
- 4.2.1 가상 기술 사용 가능 여부 확인하기
- 4.2.2 가상 시스템 설치하기
- 4.3 가상 머신 관리자
- 4.3.1 가상 머신 관리자 설치하기
- 4.3.2 가상 게스트 생성하기
- 4.3.3 가상 게스트 제어하기
- 4.3.4 가상 게스트 복제하기
- 4.3.5 스냅샷 활용하기
- 4.3.6 가상 게스트 장치 설정하기
- 4.3.7 가상 게스트 삭제하기
- 4.4 가상 시스템 관리 도구
- 4.4.1 가상 게스트 생성하기
- 4.4.2 가상 게스트 제어하기
- 4.4.3 가상 게스트 복제하기
- 4.4.4 스냅샷 활용하기
- 4.4.5 가상 게스트 환경 설정 파일
- 4.4.6 가상 게스트 RAM 용량 변경하기
- 4.4.7 iso 이미지로 부팅하기
- 4.4.8 가상 게스트 삭제하기
- 초보 시스템 관리자의 일기 - 가상 게스트 초기화하기
- 5장 파일 시스템
- 5.1 파일 시스템 관리하기
- 5.1.1 모두를 위한 파티션과 파일 시스템
- 5.1.2 파티션 정보 확인하기
- 5.1.3 파일 시스템 상태 확인하기
- 5.1.4 파일 시스템 마운트하기
- 5.1.5 파일 시스템 테이블 fstab
- 5.2 저장 장치 관리하기
- 5.2.1 가상 머신 관리자에서 저장 장치 추가하기
- 5.2.2 가상 시스템 관리 도구로 저장 장치 추가하기
- 5.2.3 새로 추가한 저장 장치 사용하기
- 5.3 LVM으로 저장 공간 관리하기
- 5.3.1 LVM은 무엇이고 왜 사용하나요?
- 5.3.2 우분투 서버 설치 과정에서 LVM 분할하기
- 5.3.3 LVM으로 저장 공간 확장하기
- 5.3.4 저장 장치를 홈 디렉터리로 사용하기
- 초보 시스템 관리자의 일기 - 가상 시스템에서 저장 공간 늘리기
- 6장 네트워크 관리 실습
- 6.1 네트워크 관리하기
- 6.1.1 네트워크 인터페이스와 IP 주소 할당
- 6.1.2 네트워크 설정 도구 넷플랜
- 6.1.3 네트워크 관리 명령 ip
- 6.1.4 연결 상태를 점검하는 명령 ping
- 6.1.5 소켓 상태 추적하기
- 6.2 가상 시스템에서 네트워크 관리하기
- 6.2.1 Do it! 가상 네트워크 연결
- 6.2.2 가상 머신 관리자로 가상 네트워크 관리하기
- 6.2.3 가상 시스템 관리 도구로 가상 네트워크 관리하기
- 6.3 로컬 네트워크 연결하기
- 6.3.1 사설 IP 주소와 공인 IP 주소
- 6.3.2 가상 네트워크 추가하기
- 6.3.3 가상 게스트 준비하기
- 6.3.4 가상 게스트 네트워크 설정하기
- 6.4 새로운 네트워크 추가하기
- 6.4.1 서브넷 마스크
- 6.4.2 새로운 가상 네트워크로 연결하기
- 6.4.3 가상 게스트 네트워크 설정하기
- 6.5 서로 다른 네트워크 연결하기
- 6.5.1 게이트웨이
- 6.5.2 게이트웨이 장치 생성하기
- 6.5.3 패킷 전달 기능 활성화하기
- 6.5.4 가상 게스트의 네트워크 설정 변경하기
- 6.6 패킷 흐름 제어하기
- 6.6.1 패킷 필터링과 네트워크 주소 변환
- 6.6.2 넷필터 관리 도구 iptables
- 6.6.3 패킷 필터링하기
- 6.6.4 패킷 목적지 주소 변경하기
- 6.6.5 패킷 출발지 주소 변경하기
- 6.6.6 외부 통신을 위한 설정과 규칙 정의하기
- 6.6.7 패킷 제어 규칙 저장하기
- 초보 시스템 관리자의 일기 - 우분투 방화벽 ufw로 시스템 보호하기
- 7장 원격 시스템 접속하기
- 7.1 SSH는 무엇이며 왜 등장했나요?
- 7.1.1 텔넷의 문제
- 7.1.2 보안 셸, SSH
- 7.2 SSH로 안전하게 원격 접속하기
- 7.2.1 패스워드 인증 절차
- 7.2.2 실습: SSH 서버 운영하기
- 7.2.3 SSH 서버 설치하기
- 7.2.4 원격 접속하기
- 7.2.5 SSH 서버 설정 파일
- 7.3 공개키 인증으로 시스템 보안 유지하기
- 7.3.1 공개키를 이용한 사용자 인증
- 7.3.2 공개키 인증으로 원격 접속하기
- 7.3.3 문제 해결하기
- 초보 시스템 관리자의 일기 - 병렬 ssh를 이용해서 여러 시스템에 ssh 명령 전달하기
- 8장 자료 공유
- 8.1 자료 공유, 어떻게 해야 하나요?
- 8.1.1 리눅스 환경에서 자료 공유하기
- 8.2 NFS로 리눅스 시스템끼리 파일 공유하기
- 8.2.1 NFS란
- 8.2.2 NFS 서버 설치하고 디렉터리 공유하기
- 8.2.3 공유 디렉터리 마운트하기
- 8.2.4 UID로 사용자를 구분하는 NFS
- 8.2.5 공유 디렉터리의 사용자 권한 제한하기
- 8.2.6 공유 디렉터리 자동 마운트하기
- 8.3 삼바로 윈도 시스템과 파일 공유하기
- 8.3.1 삼바! 삼바! 삼바!
- 8.3.2 삼바 설치하기
- 8.3.3 삼바 환경 설정 파일 살펴보기
- 8.3.4 삼바 사용자 계정 설정하기
- 8.3.5 윈도 시스템 준비하기
- 8.3.6 삼바 서버에서 디렉터리 공유하기
- 8.3.7 윈도에서 공유한 폴더 사용하기
- 8.3.8 윈도 공유 폴더 자동 마운트하기
- 8.4 autofs로 공유 자원 자동 마운트하기
- 8.4.1 autofs 사용하기
- 8.4.2 autofs로 공유 파일 시스템 마운트하기
- 8.5 FTP 서버 운영하기
- 8.5.1 FTP 동작 원리
- 8.5.2 vsftpd 설치하기
- 8.5.3 vsftpd 환경 설정 파일 살펴보기
- 8.5.4 누구나 사용 가능한 파일 서버 운영하기
- 8.5.5 시스템 사용자를 위한 파일 서버 운영하기
- 8.5.6 F TP 패시브 모드
- 8.5.7 패시브 모드로 F TP 서버 운영하기
- 8.6 SFTP로 안전하게 파일 전송하기
- 8.6.1 SFTP는 어떻게 동작하나요?
- 8.6.2 SF TP 접속하기
- 8.6.3 scp로 안전하게 파일 전송하기
- 초보 시스템 관리자의 일기 - 가상 게스트와 호스트 시스템의 자료 공유하기
- 9장 웹 서버 운영하기
- 9.1 인터넷 웹 서비스를 알려 주세요
- 9.1.1 웹 서비스란 무엇인가요?
- 9.1.2 아파치 웹 서버를 소개합니다
- 9.2 웹 서비스 운영하기
- 9.2.1 아파치 웹 서버 설치하기
- 9.2.2 아파치 웹 서버 설정 파일 살펴보기
- 9.2.3 웹 서버 설정하기
- 9.2.4 웹 서버 모듈 활성화하기
- 9.3 가상 웹 호스팅
- 9.3.1 가상 호스팅 길라잡이
- 9.3.2 이름 기반 가상 호스팅 서비스 운영하기
- 9.3.3 주소 기반 가상 호스팅 서비스
- 9.3.4 포트 기반 가상 호스팅 서비스
- 9.4 웹 서비스를 다이나믹하게!
- 9.4.1 동적인 웹 서비스 운영하기
- 9.4.2 MySQL, PHP 설치하기
- 9.4.3 워드프레스 설치하기
- 9.4.4 워드프레스로 여러 웹 사이트 운영하기
- 초보 시스템 관리자의 일기 - 가상 호스트 기능을 이용한 워드프레스 웹 사이트 운영하기
- 10장 호스트 이름과 주소 정보 관리
- 10.1 이름과 주소 정보
- 10.1.1 이름과 주소 정보를 관리하자
- 10.1.2 dnsmasq로 DHCP와 DNS 서비스 제공하기
- 10.2 dnsmasq 서버 운영하기
- 10.2.1 새로운 가상 네트워크와 게이트웨이 장치 생성하기
- 10.2.2 가상 게스트 준비하기
- 10.2.3 게이트웨이 장치에 dnsmasq 설치하기
- 10.3 dnsmasq를 DHCP 서버로 활용하기
- 10.3.1 이것이 DHCP다
- 10.3.2 임의의 주소 할당 vs 고정 주소 할당
- 10.3.3 임의 주소 할당하기
- 10.3.4 고정 주소 할당하기
- 10.4 dnsmasq를 네임 서버로 활용하기
- 10.4.1 이름과 주소 정보를 알려 주는 DNS
- 10.4.2 DNS 관련 dnsmasq 설정 적용하기
- 초보 시스템 관리자의 일기 - dig로 네임 서버 점검하기
- 11장 우분투 설치 자동화
- 11.1 시스템 자동 설치하기
- 11.1.1 무인 설치? 자동 설치?
- 11.1.2 TFTP로 부팅 이미지 전송하기
- 11.2 자동 설치 서비스
- 11.2.1 dnsmasq와 웹 서버 설정하기
- 11.2.2 네트워크 부팅과 자동 설치에 필요한 자료 준비하기
- 11.2.3 자동 설치 설정 파일
- 11.2.4 dnsmasq에 설치할 시스템 등록하기
- 11.2.5 자동 설치 시작하기
- 11.2.6 새로운 가상 게스트 자동 설치하기
- 11.3 도전! 파티셔닝하기
- 11.3.1 파티션 정보 직접 편집하기
- 11.3.2 시스템 펌웨어가 UEFI인 경우 파티션 편집하기
- 11.3.3 LVM 파티션 편집하기
- 초보 시스템 관리자의 일기 - 자동 설치 문제 해결하기
- 12장 시스템 관리 자동화
- 12.1 퍼팻으로 시스템 관리를 자동화합시다
- 12.1.1 시스템 관리자의 충직한 대리인, 퍼팻
- 12.1.2 퍼팻으로 시스템을 제어하는 원리
- 12.2 퍼팻으로 시스템 관리하기
- 12.2.1 퍼팻 서버 설치하기
- 12.2.2 퍼팻 에이전트 설치하고 인증하기
- 12.2.3 인증 과정에서 발생하는 문제 해결
- 12.3 퍼팻 코드 작성하기
- 12.3.1 퍼팻 코드 명세서 매니페스트
- 12.3.2 user 리소스로 사용자 관리하기
- 12.3.3 변수와 배열을 이용하여 패키지 설치하기
- 12.3.4 메타파라미터를 추가해서 웹 서비스 운영하기
- 12.3.5 로그인 메시지에 시스템 정보 추가하기
- 12.4 코드 모듈화로 더 나은 코드 작성하기
- 12.4.1 클래스 작성하기
- 12.4.2 모듈을 이용한 코드 관리
- 12.4.3 기본 모듈 작성하기
- 12.4.4 기본 모듈에 기능 추가하기
- 12.5 모듈 재활용하기
- 12.5.1 퍼팻 포지로 모듈 재활용하기
- 12.5.2 아파치 웹 서버 모듈로 웹 서비스 제공하기
- 12.5.3 매개변수를 이용해서 웹 서버 모듈 재활용하기
- 12.5.4 apache와 mysql 모듈로 워드프레스 웹 사이트 운영하기
- 12.5.5 하이라와 템플릿으로 모듈 재활용하기
- 초보 시스템 관리자의 일기 - 자동 설치 서비스에 퍼팻 적용하기
- 13장 설정 파일 버전 관리
- 13.1 프로젝트 버전 관리 도구 깃과 깃허브
- 13.1.1 깃이란 무엇인가요?
- 13.1.2 깃 허브는 또 뭔가요?
- 13.2 깃 시작하기
- 13.2.1 깃 설치하기
- 13.2.2 파일 상태 추적하기
- 13.2.3 파일 수정하기
- 13.2.4 깃 가지치기
- 13.2.5 작업 내용 되돌리기
- 13.2.6 커밋 되돌리기
- 13.3 파일 버전 관리 실습하기
- 13.3.1 퍼팻 코드 관리하기
- 13.3.2 새로운 작업 가지치기
- 13.3.3 가지 병합과 충돌 해결하기
- 13.3.4 변경된 작업 되돌리기
- 13.4 버전 관리에 원격 저장소 사용하기
- 13.4.1 깃허브에 사용자 등록 후 원격 저장소 생성하기
- 13.4.2 수정한 작업을 원격 저장소로 전송하기
- 초보 시스템 관리자의 일기 - 깃허브를 이용한 시스템 관리 협업하기
- 14장 백업
- 14.1 자료 백업하기
- 14.1.1 백업 계획 세우기
- 14.1.2 여러 가지 백업 도구
- 14.2 네트워크 백업 도구 바쿨라
- 14.2.1 바쿨라는 어떤 도구인가요?
- 14.2.2 풀과 볼륨
- 14.3 네트워크 백업 준비하기
- 14.3.1 바쿨라 서버 설치하기
- 14.3.2 디렉터 설정하기
- 14.3.3 스토리지 설정하기
- 14.3.4 파일 데몬 설정하기
- 14.3.5 콘솔에서 상태 확인하기
- 14.4 백업과 복원
- 14.4.1 디렉터 설정 파일
- 14.4.2 백업 테스트하기
- 14.4.3 복원 테스트하기
- 14.5 실전! 백업하기
- 14.5.1 퍼팻 설정 파일 백업하기
- 14.5.2 원격 시스템 파일 백업하기
- 14.5.3 원격 스토리지에 자료 백업하기
- 초보 시스템 관리자의 일기 - 워드프레스 콘텐츠 백업하기
- 부록 A 가상 시스템에서 가상 게스트 관리 자동화하기
- A.1 가상 네트워크로 IP 주소 정보 관리하기
- A.2 가상 네트워크로 이름 정보 관리하기
- A.3 퍼팻으로 가상 게스트 제어하기
- A.4 새로운 가상 게스트 추가하기
- A.5 가상 게스트 백업하기
- A.6 스냅샷을 이용한 가상 게스트 라이브 백업하기