4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (15) - 응급 복구와 GRUB 부트로더

728x90
반응형

출처 : https://www.youtube.com/watch?v=04lQm3td8aY&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=27

 

 

응급 복구

  • 시스템이 부팅 되지 않을 때 수행한다.

 

응급 복구 실습

 

실습 목표

  • root 비밀번호를 분실했을 때, 응급 복구하는 방법을 익힌다.
  • GRUB에서 부팅시 설정을 변경하는 방법을 알아 본다.

 

실습

 

 

우리가 root 사용자의 비밀번호를 잊어버린 상황에서 복구하는 방법을 알아보자.

 

재부팅을 한다.

 

 

GRUB 부트 로더에서 첫 번째 항목이 선택된 상태에서 E를 누른다.

 

 

4번째 행인 linux ($root) ~~ 에서 End를 눌러서 행의 끝으로 이동한 다음 rhgb quiet 를 삭제하고 끝에 init=/bin/sh 를 입력한다. 

 

ctrl + x 를 눌러서 부팅한다.

 

 

별도의 로그인 절차 없이 부팅이 되고 터미널이 열리는데 # 프롬프트가 나오게 된다. whoami 명령을 입력하면 현재 root 사용자로 접속됬다는 것을 확인할 수 있다.

 

 

root 사용자의 비밀번호를 변경하기 위해 passwd 명령을 입력하고 새로운 비밀번호를 입력한다. 하지만 비밀번호를 변경할 수 없다는 에러 메시지가 출력되게 된다. 현재 / 파티션이 읽기 전용 모드로 마운트되어 있기 때문이다.

 

파티션을 읽기/쓰기 모드로 마운트시켜보자.

 

 

mount를 입력해보면 가장 아래쪽(/dev/sda2) 에 / 파티션이 읽기 전용(ro) 모드로 마운트되어있다.

 

mount -o remount,rw / 명령을 입력해 / 파티션을 읽기/쓰기(rw) 모드로 리마운트한다. 다시 mount를 입력해보면 / 파티션이 rw로 변경된 것을 확인할 수 있다.

 

 

다시 passwd 명령을 통해 비밀번호를 재설정하면 성공적으로 비밀번호가 변경된다.

 

다시 재부팅을 한다. reboot를 입력하면 안될 수 있으므로 상단 메뉴바에서 restart guest를 클릭한다.

 

 

다시 root 사용자로 접속해서 바꾼 비밀번호를 입력하면 성공적으로 root 사용자로 접속할 수 있다.

 

그런데 이 응급 복구 방법을 알고있다면, 누구나 root 사용자의 권한을 얻어서 시스템에 접근할 수 있게 되는 상황이다.

 

시스템을 제대로 보호하려면 처음 부팅할 때 GRUB 부트 로드를 편집할 수 없도록 설정해야 한다. 혹은 컴퓨터 BIOS에 CMOS 비밀번호를 설정해 하드웨어단에서 보안을 강화해야 한다. GRUB 부트 로더에 비밀번호를 설정해 root 사용자의 권한을 아무나 얻지 못하도록 막는 방법을 알아보자.

 

 

GRUB 부트로더

GRUB 부트 로더란 Rocky Linux를 부팅할 때 처음 나오는 선택 화면이다.

GRUB 2 부트 로더

 

GRUB 부트 로더의 특징

  • 부트 정보를 사용자가 임의로 변경해 부팅할 수 있다. 즉, 부트 정보가 올바르지 않더라도 수정하여 부팅할 수 있다.
  • 다른 여러 가지 운영체제와 멀티부팅을 할 수 있다.
  • 대화형 설정을 제공하므로 커널 경로와 파일 이름만 알면 부팅이 가능하다.

 

GRUB2의 장점

Rocky Linux에서는 예전의 GRUB보다 더 향상된 기능을 제공하는 GRUB 2를 사용한다. GRUB2는 셸 스크립트 문법을 사용하기 때문에 GRUB에 비해 설정을 변경하기가 복잡하지만 여러 장점들을 가지고 있다.

 

  • 셸 스크룹티를 지원하므로 조건식과 함수를 사용할 수 있다.
  • 동적 모듈을 로드할 수 있다.
  • 그래픽 부트 메뉴를 지원하며 부트 스플래시 성능이 개선되었다.
  • ISO 이미지를 이용해서 바로 부팅할 수 있다.
  • 설정 파일의 형식이 변경되었지만 더 다채로운 설정을 추가할 수 있다.

 

GRUB2 설정 방법

  • /boot/grub2/grub.cfg 설정파일 (직접 변경하면 안된다)
  • /etc/default/grub 파일과 /etc/grub.d/ 디렉토리의 파일을 수정한 후 'grub2-mkconfig' 명령어를 실행해 설정한다.

 

GRUB 부트 로더 변경

 

실습 목표

  • 부트로더의 일부 설정을 변경하는 방법을 익힌다.
  • GRUB에 비밀번호를 지정하는 방법을 익힌다.

 

실습

 

 

터미널에서 gedit /etc/default/grub 명령을 실행해서 gedit 에디터로 /etc/default/grub 파일을 실행한다.

 

첫번째 행의 GRUB_TIMEOUT 을 5초에서 20초로 변경한다. 저장하고 에디터를 닫는다.

 

 

grub2-mkconfig -o /boot/grub2/grub.cfg 명령을 입력해서 변경된 내용을 적용시킨다.

 

재부팅하면 시작화면에서 GRUB 부트로더가 나타나며 5초 동안 대기하던 것이 20초로 변경되는 것을 확인할 수 있다.

 

 

/etc/grub.d/ 디렉토리로 이동후 gedit 00_header 명령을 입력해서 gedit 에디터로 00_header 파일을 실행한다.

 

 

에디터 맨 마지막 줄에 다음 4줄을 입력한다.

 

cat << EOF
set superusers="thisislinux" -> thisislinux는 새로운 GRUB 사용자 이름
				(GRUB 사용자는 기존 리눅스 사용자와는 관련이 없으므로 새로 지정)
password thisislinux 4321 -> 'password GRUB사용자이름 새비밀번호' 형식
EOF

 

 

변경된 내용을 적용시키기 위해서 grub2-mkconfig -o /boot/grub2/grub.cfg 명령을 입력한다.

 

재부팅을 한다.

 

 

GRUB 부트 로더화면에서 e를 누른다.

 

 

이전과 달리 username과 비밀번호를 입력하라는 문구가 등장한다.

 

우리가 설정한 username과 비밀번호를 입력한다.

 

 

우리가 이전에 들어갔던 편집모드로 들어가게 된다.

 

즉, username과 비밀번호를 설정해서 아무나 응급 복구 방법을 사용해 root 계정을 사용하지 못하도록 막을 수 있다.

 

 

728x90
반응형