Borntoberoot
- 직접 서버를 만드는 과제
- 관리 시스템을 위해서 centOS나 Debian을 골라야합니다. 당신이 시스템 관리에 처음이라면 데비안이 더 추천됩니다.
- 저장소의 루트에있는 signature.txt 파일 만 제출하면 된다. 시스템 가상 디스크의 서명을 붙여 넣어야한다.
[Mandatory part]
- 이 프로젝트는 규칙에 따라 첫번째 서버를 설정하는 것으로 구성된다.
- 버추얼박스를 이용해서 직접 최소한의 서비스를 제공하는 서버를 만드세용. 따라서 그래픽적인 요소는 들어가지 않습니다. 즉, xorg나 다른 그래픽 서버 장치(X.org ... 등등)를 사용하면 빵점입니다.
# x.org :
윈도우 운영체제와 같이 리눅스(유닉스 계열 운영체제)에서 그래픽 환경을 제공해주는 시스템 소프트웨어
리눅스에서 GUI는 선택사항의 응용프로그램일 뿐 필수요소는 아닙니당.
디스플레이 장치에 창을 표시하여 마우스와 키보드 등의 입력장치의 상호작용 등을 관리해 GUI환경의 구현을 위한 기본적인 프레임워크 제공
2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 1. 가상머신 (Virtual Box)
- 운영 체제로 데비안의 최신 안정 버전, 또는 Cent OS의 최신 안정 버전을 선택해야합니당.
- 데비안용 AppArmor도 시작시 실행되어야합니다.
CentOS 선택시 KDump는 할 필요없다는 말에 대하여 KDump란?
# KDump : 터널 crash 덤프 메커니즘
- 커널 충돌이 발생 시 시스템에서 정보를 수집하여 충돌 원인을 규명하는 자료 제공
- 시스템 운영 중 장애를 확인하기 위해 사용하는 기능
- LVM을 사용하여 암호화된 파티션을 2개 이상 만들어야합니다.
2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 5. 리눅스 파일 시스템과 파티션
디펜스 동안 선택한 운영체제에 대해 몇가지 질문을 받게 됩니다. 예를 들어, aptitude와 apt의 차이점 또는 SELinux 또는 AppArmor가 무엇인지 알아야합니다. 당신이 사용하는 운영체제를 이해하시라.
2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 2. 운영체제 (Debian, CentOS)
- SSH 서비스는 포트 4242에서만 실행된다. 보안상의 이유로 root로 SSH를 사용하여 연결할 수 없어야한다.
새 계정을 설정하여 방어 중에 SSH사용을 테스트합니다. 따라서 작동 방식을 이해해야한다.
2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 3. SSH에 대하여
- UFW 방화벽으로 운영 체제를 구성해야하므로 포트 4242만 열어두어야 한다.
가상 머신을 시작할 때 방화벽이 활성화되어 있어야한다.
CentOS의 경우 기본 방화벽 대신 UFW를 사용해야하며 설치하려면 DNF가 필요하다.
2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 4. 방화벽에 대하여
– 가상 머신의 hostname은 42로 끝나야한다.
ex) san42 // 평가 중에 호스트 이름을 수정해야한다.
– 강력한 비밀번호 정책을 세워야한다.
– 엄격한 규칙으로 sudo를 규정하고 설치해야한다.
- 루트 사용자 외에 사용자 이름으로 로그인 한 사용자가 있어야 한다.
> 이 사용자는 user42 및 sudo 그룹에 속해야 한다.디펜스 동안 새 사용자를 생성하여 그룹에 배치해야 합니당.
# 강력한 암호 정책을 위한 준수사항
– 패스워드는 30일마다 만료되어야한다.
– 패스워드는 수정된 뒤로 2일 동안 못 바꾼다.
– 사용자는 패스워드가 만료되기 7일 전에 알림을 받는다.
– 패스워드는 10글자 이상이어야 하고 대문자와 숫자를 포함해야한다. 또한 연이어 3번 동일한 문자를 쓸 수 없다.
– 패스워드는 사용자의 이름을 포함해서는 안된다.
– 다음 패스워드 규칙은 root 비밀번호에는 적용되지 않는다 : 패스워드는 최소 7글자이고, 이전 비밀번호와 달라야함.
– 물론 루트 비밀번호는 이 규칙을 따라야한다.
configuration file을 설정한 후에는 루트 계정을 포함하여 가상 머신에 있는 계정의 모든 비밀번호를 변경해야한다.
# 강력한 그룹 구성을 위한 준수사항
- sudo를 사용하기 위한 인증에서 오류는 3번까지 가능합니다.
- sudo를 사용할 때 잘못된 암호로 인한 오류가 발행하면 custom 메시지가 표시되어야 합니다.
- 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 프로그램으로 실행된 명령 개수
디펜스 동안 스크립트의 작동 방식을 설명해야 합니다. 또한 수정하지 않고 중단해야합니다. cron을 보세영.
스크립트 작동 방식의 예
과제의 일부 요구 상항을 확인하는 데 사용할 수 있는 방법 (데비안 버전)
보너스는 ..... 안하겠습니다.....
하지만 아직 안내가 더 남음.....
[Submission and peer-evaluation]
git 저장소의 루트에 있는 signature.txt 파일만 제출하면 된다. 시스템 가상 디스크의 서명을 붙여 넣어야 한다.
이 서명을 받으려면 먼저 VM이 저장된 기본 설치 폴더를 열어야 한다.
그런 다음 .vdi 파일에서 서명을 검색한다. sha1형식의 가상머신.
출력의 예는 다음과 같다.
• 6e657c4619944be17df3c31faa030c25e43e40af
가상 머신의 서명은 첫번째 평가 후에 변경될 수 있다. 이 문제는 가상머신을 복제하거나, 저장상태를 사용하여 해결할 수 있다. git 저장소에서 가상 머신을 설정하는 것은 금지되어 있다. 디펜스 중에 signature.txt 파일의 서명이 가상 머신의 서명과 비교된다. 두 사람이 동일하지 않으면 빵점이다.
– https://kit2013.tistory.com/199
# 마운트(in Linux) : 디스크와 같은 물리적인 장치를 특정 위치(디렉토리)에 연결시켜주는 것.
: 보조기억장치(CD-ROM, HDD...등)나 파일시스템이 다른 디스크를 / 의 하위
디렉토리로 연결하여 사용 가능하게 해주는 명령어. - https://jhnyang.tistory.com/12
#리눅스파일시스템구조 :리눅스는윈도우와다르게모든저장공간(폴더)이하나의디렉에서시 작된다(뿌리가 하나!). => single directory tree 구조.
(윈도우는 드라이브당 하나의 디렉터리 트리 구조를 갖는다.) # ext4 :
- https://ddongwon.tistory.com/66
– 디펜스동안 내가 고른 관리시스템에 대한 질문을 받아야한다. 예를 들면 aptitude와 apt의 차
이점, SELinux가 뭔지, AppArmor가 뭔지, ... 내가 사용하는것을 이해하고 있어야한다.
# aptitude, apt, apt-get의 차이점 :
- – https://velog.io/@joonpark/aptitude-vs-apt
- – https://askubuntu.com/questions/347898/whats-difference-of-apt-get- # SELinux : Linux의 보안을 강화해주는 보안 강화 커널. (과거 리눅스는 소스코드가 공개되 어 있어서 보안이 취약했다.)
# AppArmor : 표준 리눅스 사용자와 그룹 기반의 권한을 보완하여, 한정된 리소스 집합으로 프 로그램을 제한하는 리눅스 커널 보안 모듈. - – 차이점 : https://2infinity.tistory.com/59
– : https://velog.io/@joonpark/SELinux-vs-AppArmor - and-aptitude
– A SSH service will be running on port 4242 only. For security reasons, it must not be possible to connect using SSH as root.
# SSH –
–
– You have to configure your operating system with the UFW firewall and thus leave only port 4242 open.
# UFW : 우분투의 기본적인 방화벽. iptables를 좀 더 쉽게 설정한 것(사용자 친화적).
- Dfsdf
'42seoul > circle-1' 카테고리의 다른 글
[ born2beroot ] 2. 운영체제 (Debian, CentOS) (0) | 2022.02.04 |
---|---|
[ born2beroot ] 1. 가상머신 (Virtual Box) (0) | 2022.02.04 |
[ft_printf] 2. 가변인자 (variadic arguments) (0) | 2022.01.16 |
[ ft_printf ] 3. printf의 버퍼 관리 방법 (표준 입출력과 버퍼 | 스트림과 데이터 이동) (0) | 2022.01.15 |
[ ft_printf ] 1. printf (0) | 2021.12.29 |
댓글