본 Subject의 개요
가장 최신 버전의 CentOS
또는 Debian
을 최소한으로 설치 (GUI 금지)
SELinux
(CentOS), AppArmor
(Debian)는 시작 시 실행되어야 한다.
최소한 2개 이상의 LVM
을 사용한 암호화된 파티션을 생성해야 한다.
ex)
Defense 시에 선택한 운영체제에 대한 질문을 받을텐데 aptitude
와 apt
의 차이점, SELinux
와 AppArmor
가 무엇인지 등을 설명할 수 있어야 한다.
SSH
서비스는 4242 포트만 사용해야하며 이러한 이유로 SSH
를 root
로 연결할 수 없어야 한다?
Defense 시 SSH
로 새 계정을 세팅해야하기 때문에 SSH
가 어떻게 작동하는지 이해하고 있어야 한다.
UFW
방화벽을 이용해야하기 때문에 4242 포트만 열어놔야 한다.
Virtual machine을 실행할 때 방화벽이 활성화 되어 있어야 한다. CentOS의 경우 기본 방화벽 대신 UFW
를 사용해야 한다. (설치하려면 아마 DNF
가 필요할 듯)
Virtual machine의 hostname은 42로 끝나야 한다. ex) keokim42
강력한 암호 정책을 구현해야 한다. (sudo 설치 및 사용)
root user 외에도 username으로 로그인한 user가 있어야 한다? (이 사용자는 user42와 sudo groups에 속해있어야 함)
Defense 시에 새로운 사용자를 생성하고 그룹에 등록해야 한다.
강력한 비밀번호 정책
sudo group에 대한 강력한 구성을 설정하기 위한 준수 사항
/var/log/sudo
폴더에 저장되어야 한다.TTY
모드를 활성화해야 한다.마지막으로 monitoring.sh
라는 간단한 스크립트를 만들어야 하는데 bash에서 만들어야 한다.
서버 시작 시 스크립트는 10분마다 모든 터미널에 대한 아래 정보들을 표시한다. (배너는 옵션, 에러가 보이면 안됨)
Defense 시 스크립트의 내용이 어떻게 작동하는지 설명할 수 있어야 한다. 또한 수정하지 않고 일시 정지할 수 있어야 한다.
스크립트 작동 예제
주제의 일부 요구 사항을 확인하는 데 사용할 수 있는 두 가지 명령
CentOS :
Debian :
파티션 설정을 통해 아래와 같은 구조를 갖는다 :
lighttpd
, MariaDB
, PHP
서비스를 사용하여 기능적인 WordPress
웹 사이트를 설정한다.
유용하다고 생각되는 서비스를 선택적으로 설정한다. (NGINX
/ Apache2
제외) Defense 시 선택을 정당화할 수 있어야 한다.
Bonus part를 수행하기 위해 추가적으로 서비스를 설정할 수 있다. 이 경우 필요에 맞게 포트를 더 열 수 있다. 물론 UFW
규칙에 따라야 한다.