< 프로젝트 소개 >
: VirturalBox(가상머신)으로 서버 구축하기
< 프로젝트 기본상식 >
- 가상머신이란?
- CentOS & Debian
- APT & aptitude
- AppArmor & SELinux
< 해야할 것 >
-
최소한 적은 개수의 서비스를 설치해야함. so, 그래픽 인터페이스는 사용되지 않음
-
사용할 운영체제로 Debian 최신 stable버전 or CentOS 최신 stable 버전 중 하나를 선택하기
CentOS를 선택했다면 시작 시에 SELinux가 구동되어야 함
Debian을 선택했다면 시작 시에 AppArmor가 구동되어야 함
-
ssh 서비스를 4242 포트에서만 작동하게 만들기
-
UFW 방화벽을 이용하여 운영체제를 설정(4242포트만 열어둬야 함)
-
엄격한 비밀번호 체계를 도입하기
- 비밀번호는 30일마다 소멸되어야 함
- 비밀번호 변경을 위해 기다려야 하는 기간은 최소 이틀로 설정
- 유저는 비밀번호 소멸 7일 전에 경고 메세지를 받아야 함
- 비밀번호는 최소 10글자 이상이 되어야 하고, 대문자와 숫자를 포함하여야 하며, 같은 글자가 3번 이상 연속되면 안됨
- 비밀번호에 유저명이 포함되면 안됨
- 비밀번호는 이전 비밀번호에 포함되지 않는 문자를 최소 7개 이상 포함해야함
- 루트 군한 비밀번호 또한 해당 규칙을 따라야 함
-
강한 sudo 그룹설정 도입하기
- sudo 인증 시에는 비밀번호가 틀렸을 때 3번의 기회만 주어져야함
- sudo 권한 사용 중에는 비밀번호가 틀렸을 때 내가 설정한 오류 메시지가 출력되야함
- sudo 권한을 이용하여 수행한 명령어들은 입출력 모두 기록되어야 함.
해당 기록은 log파일로 /var/log/sudo/폴더에 저장되어야함
- 보안상 문제때문에, TTY모드는 활성화되어 있어야 함
- 보안상 문제때문에, sudo권한으로 이용할 수 있는 폴더 경로는 반드시 제한되어야 함
ex) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
-
monitoring.sh 라는 간단한 스크립트 작성 (bash환경에서 작동해야 함)
- 서버가 시작될 때, 스크립트는 모든 터미널에 몇 가지 정보를 10분에 한 번씩 보여줘야 함
< 스크립트는 아래의 정보를 포함해야 함 >
- 내가 사용하는 운영체제의 아키텍쳐와 커널 버전
- 물리 프로세서의 개수
- 가상 프로세서의 개수
- 서버 내에서 사용가능한 램과 가동률(utilization rate)을 백분율로 표시
- 서버 내에서 사용가능한 메모리와 가동률을 백분율로 표시
- 프로세서들의 가동률을 백분율로 표시
- 마지막 부팅시간과 날짜
- LVM이 활성화 되었는지 여부
- 활성화된 연결의 수
- 서버를 사용하고 있는 유저의 수
- 서버의 IPv4 주소와 MAC주소
- Sudo로 실행된 커맨드의 수
< 간단한 개념 익히기 >
[ 운영 체제 ]
- 정의
: 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어.
ex) 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다.
- 목적
- 컴퓨터의 하드웨어를 관리.
ex) 컴퓨터의 하드웨어 (ex, CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등)
- 사용자에게 편의를 제공.
ex) 컴퓨터의 하드웨어에 관한 모든 관리를 알아서 해주기 때문에 사용자에게 부담이 없음
출처
: https://jhnyang.tistory.com/16
https://velog.io/@codemcd/운영체제OS-1.-운영체제란
[ 부트로더 ]
- 정의
: 운영체제(이하 OS)가 시동되기 이전에 미리 실행되면서
커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고
최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램을 말한다.
출처
: https://heeyamsec.tistory.com/19
https://symnoisy.tistory.com/entry/4부팅과-부트로더1이론