virtual machine 가볍게 둘러보기 (born2beroot)

  1. bonus 대로 partition 설정 : https://velog.io/@appti/born2beroot-Virtualbox-Debian-%EC%84%A4%EC%B9%98
  2. 기본 설정 : https://techdebt.tistory.com/18?category=833728

General instructions

  1. cloned repository 안에 있는 signature.txt file 파일이 실제 가상머신의 "sha 체크섬 값"과 같은지 확인하자.

-> 프로젝트를 제출할 때의 가상머신과 동료평가를 받을 때의 가상머신이 완전히 같은지 알려주는 방법이다.

sha-chechsum 값은 보통 파일의 유효성을 검사할 때 많이 사용한다. (파일이 위-변조 되었을 때 등등...)

터미널에서 가상머신이 존재하는 폴더 안으로 들어가 shasum [virtual Machine Name]

이 값은, vm을 실행할 때마다 바뀌므로 Vm을 복제해놓거나, 저장한 상태를 사용해야 한다.

-> virtual machine 에서 full clone을 이용해 새로운 가상머신을 보여주면 될 것 같다.

Project overview

가상 머신에 대해 간단히 소개하자면, 컴퓨팅 환경을 소프트웨어로 구현한 것이다. 컴퓨터가 만들어 낸 가상의 컴퓨터라고 할 수 있겠다.

Debian을 사용했다.

CentOS 와 Debian의 차이점

보통 redhat(CentOS) vs debian(Ubuntu)
이렇게 비교를 많이 하고는 한다.

CentOS : 전문 기업에서 만들어진 redhat 기반의 무료 배포용 linux OS
이제 다시는 새로운 버전을 만들지 않고, 지원도 종료한다고 공식적으로 알렸다.
-> 업데이트가 느리지만, 안정성이 좋고 보안측면이 강하다.

(하지만 7버전은 24년, 8버전(최신)은 21년 지원 종료)

Debian : 온라인 커뮤니티에서 만들어진 OS

전문 회사의 지원 X, only Community
개인 유저 커뮤니티에 의해 문서, 매뉴얼 등을 습득 가능하다.


apt, aptitude, AppArmor란??

참고 : https://www.fosslinux.com/43884/apt-vs-aptitude.htm

apt (Advanced Packaging Tool)

aptittude

apt의 프론트엔드 프로그램
-> apt를 더 사용하기 쉽게 만든 상위 레벨의 프로그램이라고 보면 편하다.

apt 는 low-level package manager 이기 때문에, 다른 high-level package manager 들에게 사용될 수 있다.

aptittude도 apt를 사용하는 high-level package manager이다.
-> 더 많은 기능, 패키지를 설치할 때 충돌 문제 자동 해결 (apt는 불가), 대화형 UI 제공


Simple setup

Check that the UFW service

ufw service verbose

Check that the SSH service

systemctl status ssh

Check that the chosen operationg system is Debian

lsb_release -a


User

참고 : https://reddb.tistory.com/22 [비밀번호 정책 변경]

libpam-pwquality : 패스워드 설정 강화를 위한 pam 모듈

PAM(Pluggable Authentication Modules)
: 리눅스 시스템에서 사용하는 인증 모듈로써 응용 프로그램(서비스)에 대한 사용자의 사용 권한을 제어한다.

출처 : http://www.igloosec.co.kr/BLOG_%EB%A6%AC%EB%88%85%EC%8A%A4%20PAM%20%EB%AA%A8%EB%93%88%EC%9D%98%20%EC%9D%B4%ED%95%B4?searchItem=&searchWord=&bbsCateId=49&gotoPage=1

passwd 파일에 직접 접근해 권한을 받아오는 굉장히 위험하고, 침해사고가 일어나는 문제점을 해결한 방법이다.

내 비밀번호 정책 확인 방법

vi /etc/pam.d/common-password
vi /etc/login.defs

reject_username : 비밀번호에 username이 정방향, 또는 역방향으로 되어있을 경우 거부
enforce_for_root : root의 비밀번호에도 똑같은 정책 적용
difok : 이전 비밀번호와 몇 개 이상의 문자는 달라야 한다.

User가 sudo, user42 group에 속해있는지 확인

groups [이름] // root, hyojeong, juson

실제 유저를 만들어봄으로써, 패스워드 정책이 잘 되어 있는지 확인

chage -l [UserName] // root, hyojeong, juson, ...

  1. create a new user (Assign it a password of your choice, respecting the subject rules

    useradd [UserName] + passwd [UserName]

  2. Now that you have a new user, ask the student being evalutated to create a group named "evaluating" in front of you and assign it to this user.

    groupadd [evaluating] (그룹 생성) + groups -aG evaluating [UserName] (그룹 넣기) + groups UserName

  3. finally, ask the student evaluated to explain the advantages of this password policy
    (물론, "서브젝트에 그렇게 나와있어서." 같은 답변은 안된다~)

    참고 : https://www.itworld.co.kr/news/111039
    https://jbonneau.com/doc/BS12-USEC-passphrase_linguistics.pdf
    https://nakedsecurity.sophos.com/2012/03/19/multi-word-passphrases/
    장점은 비슷하게 알 것이라고 생각한다. 단점을 위주로 조사해왔다. 패스워드 : 정책을 강제해도, 사람들은 그렇게 복잡한 패스워드를 사용하지 않는다. (만국 공통, 연구 결과 사람들은 대부분 영문,숫자,특수문자 순으로 설정한다.) 무작위로 정하기에는 기억하기에 문제가 있기 때문에 여러 도메인에서 똑같거나 거의 비슷한 패스워드를 사용하게 된다.
    그리고 최근의 연구결과에 따르면 복잡한 비밀번호가 반드시 '안전'하다고 할 수 없다고 말한다.

    출처 : https://xkcd.com/936/


Hostname and Partitions

호스트 네임은 [***]42 의 형식을 따라야 한다.

Modify this hostname by replacing the login with yours, then restart the machine
호스트 네임을 변경해보아라, 그리고 다시 시작해 변경되었는지 확인하라.

hostnamectl set-hostname [New-hostname]

ask the student evaluated how to view the partitions for this virtual machine

lsblk

Compare the output with the example given in the subject
subject에 나와있는 예제와 비교해라.


SUDO

Check that the "sudo" program is properly installed on the virtual machine

The evaluated student should now show assigning your new user to the "sudo" group
new user를 sudo 그룹에 할당하는 것을 보여야 한다.

groups -aG sudo [new user]

The subject imposes strict rules for sudo. The evaluated student must first explaing the value and operation of sudo using examples of their choice.
sudo의 가치와, 작동방식을 예를 들어 설명해라.
In a second step, it must show you the implementation of the rules imposed by the subject.
sudo 규칙이 구현되었다는 것을 보여라.

Verify that the "var/log/sudo/" folder exists and has at least one file.
try to run a command via sudo. See if the file in the "/var/log/sudo/" folder have been updated
"var/log/sudo/" 폴더가 존재하고, 적어도 하나의 파일이 있음을 보여라.
sudo 커맨드를 사용해 해당 폴더에 로그가 남겨지고 있음을 보여라.


UFW

Check that the "UFW" program is properly installed on the virtual machine.
Check that it is working properly

ufw status verbose

The evaluated student being evaluated should explain to you basically what UFW is and the value of using it

Uncomplicated FireWall의 약자이다. 복잡하지 않고 쉽게 방화벽을 관리하고 사용할 수 있게 해준다. 데비안 계열에서 주로 사용하고 있다.

List the active rules in UFW. A rule must exist for port 4242.

ufw status verbose

Add a new rule to open port 8080. Check that this one has been added by listing the active rules.

ufw allow 8080 + ufw status verbose

Finally, delete this new rule with the help of the student evaluated.

sudo ufw status numbered
sudo ufw delete (8080 port's number)


SSH


Script monitoring


bonus

lv cd Name change
vgrename [Original Name][New name]

좋은 웹페이지 즐겨찾기