OS는 안정적인 최신 버전의 Debian or CentOS를 선택해야 한다
설치를 진행함에 있어 최소한의 서비스로 설치를 진행해야 한다(그래픽 인터페이스 같은 서비스는 설치 X)
평가를 진행하면서
aptitude, apt의 차이점
SELinux, AppArmor의 차이점

SSH 서비스의 포트는 4242번 포트에서만 사용되어야 한다.
SSH를 통한 root접근 권한이 없어야 한다.
SSH 연결을 위한 4242번만 포트가 열려 있어야 한다.
가상 머신(서버)가 시작할 때 방화벽이 활성화되어 있어야 한다.
CentOS를 사용하는 경우 기본 방화벽 대신 UFW을 사용해야 한다.(DNF를 사용해야함)
가상 머신(서버)의 hostname은 인트라넷ID+42로 설정되어야 한다.
높은 보안 수준의 암호 정책을 구현해야 한다.
엄격한 규칙에 따른 sudo를 설치하고 구성해야 한다.
root사용자 외 다른 사용자 이름으로 로그인한 사용자가 있어야 한다.(사용자는 user42 및 sudo 그룹에 속해야 한다)
비밀번호는 30일마다 만료 되어야 한다
비밀번호를 수정하기 전 허용되는 최소 일은 2일로 설정한다.
사용자는 암호가 만료되기 7일 전 경고 메시지를 받아야 한다
비밀번호는 10자 이상, 최소 1개이상 대문자, 소문자, 숫자가 포함되어야 하며, 동일 문자 3개 연속 되지 않아야 한다.
암호에는 사용자 이름이 포함되면 안된다.
이전 암호와 7이상 같으면 안된다.(root계정은 이 정책 제외)
평가를 진행하면서 새로운 사용자를 만들고, 그룹에 할당해야 한다.
평가를 진행하면서 루트, 모든 사용자 계정의 비밀번호가 정책에 맞게 변경되는지 확인한다.
sudo 그룹에 아래와 같은 설정을 구성해야 한다.
암호가 틀린 경우 재 입력 기회를 3번으로 제한해야 한다.
오류가 발생한 경우 선택한 사용자 지정 메시지가 표시되어야 한다.
sudo를 사용하는 작업은 입력과 출력 모두 로그파일로 보관해야 한다
- 저장 경로는는 /var/log/sudo/ 폴더이다.
보안상 이유로 tty모드를 활성화 해야 한다.
보안상 이유로 sudo가 사용할 수 있는 경로를 제한해야 한다.
- ex) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
monitoring.sh 스크립트를 만들어야 한다.(bash에서 개발)
가상 머신(서버) 시작 시 스크립트는 10분마다 모든 터미널에 일부 정보(아래 이미지)를 표시해야 한다.(배너는 선택사항)
스크립트는 아래와 같은 정보를 포함해야 한다.
운영 체제 아키텍처 및 커널 버전
물리적 프로세서의 수
가상 프로세서의 수
서버의 현재 사용 가능한 RAM 및 사용률(백분율)
서버의 현재 사용 가능한 메모리 및 사용률(백분율)
프로세서의 현재 사용률을 백분율로 표시
마지막 재부팅 날짜 및 시간
LVM 활성화 여부
활성 연결 수
서버를 사용하는 사용자 수
서버의 IPv4 주소 및 MAC주소
sudo 프로그램으로 실행된 명령의 수
모니터링 예시

모니터링에 필요한 정보를 볼 수 있는 파일

보너스 과제는 mandatory가 완전히 수행되어야 검사한다.
파티션을 설정하여 아래와 비슷한 구조를 가지게 한다.

lighttpd, MariaDB 및 php 서비스를 사용하여 기능적인 WordPress 웹 사이트를 설정한다.
유용하다고 생각되는 서비스를 선택(NGINX/Apache2 제외) 평가를 진행하며 선택한 서비스를 설명해야 한다.
보너스 파트를 수행하며 필요한 포트는 UFW에 추가할 수 있다.