일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 해커스쿨
- 웹해킹
- 네트워크해킹
- EPITA
- 리눅스
- Challenge
- 프랑스 교환학생
- network
- 루트미
- 포너블
- 해킹
- web
- rootme
- 유로송금
- 모인유럽서포터즈
- pwnable.kr
- 백도어
- pwnable
- Linux
- WebHacking
- Gentoo
- 프랑스교환학생
- wargame
- client
- 보안
- 프랑스송금
- 모인해외송금
- 모인유럽송금
- 해외송금
- FTZ
- Today
- Total
Securing Keys
[Linux for Security] Gentoo 파일시스템 구성 및 Chrooting 본문
저번 포스팅에 이어 계속해서 Gentoo Linux 환경 설정을 진행하도록 하겠다
↓↓↓
https://secure-key.tistory.com/15
/home /bin /etc 등의 file system 구조를 형성해주기 위해 https://www.gentoo.org/downloads/에 존재하는 Stage3 파일의 링크 주소를 복사해준다
Stage3 파일를 / 파티션에 (= /mnt/gentoo) decompress 해주기 위해 우선 다운을 받는다
cd /mnt/gentoo
wget --no-check-certificate [링크주소]
다운받은 파일의 압축을 풀어준다
tar -xvf stage3_amd64.tar.xz
이제부터 Chrooting을 진행할 것이다
Chroot란, 말 그대로 루트 바꾸기, 즉 메인 시스템의 root에서 논리적으로 나누는 새 환경을 만들 때,
눈에 보이는 루트 디렉토리를 바꾸는데 사용하는 유닉스 시스템 유틸리티이다
간단하게 정리하자면 분할 시스템 만들기, 가상화하기, 프로세스의 루트 디렉터리 격리이다
우선 Portage configuration을 configuration folder로 copy해야 한다
여기서 portage는 the system used for downloading and installing softwares in gentoo를 의미한다
mkdir /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
그리고 빠른 다운로드 속도를 위해 내가 현재 위치한 지역과 가까운 mirror로 선택해주었다
본인은 현재 프랑스 파리에 위치해 있으므로, 프랑스, 독일 등의 mirror를 선택했다
mirror는 간단하게 website라고 간주하여도 되고,
아래 명령어에서 쓰인 >>는 redirection을 의미한다 (c.f. >는 overwriting entire data)
즉, mirrorselect -i -o의 아웃풋이 /mnt/gentoo/etc/portage/make.conf로 넘어간 것이다
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
그리고 새로 설치한 gentoo 환경이 올바른 DNS server config를 갖고 있는지 확인해준다
여기서 resolv.conf는 DNS server를 setting하는 파일에 해당한다
cp /etc/resolv.conf /mnt/gentoo/etc/
그리고 Chrooting을 위한 환경을 제대로 조성해준다
아래의 명령어들은 우리가 만든 proc, sys 등이 live CD로 연결(link)되게끔 해주는 작업에 해당한다
proc은 내가 만들어 주는 격인거고,
sys와 dev는 --rbind와 --make-rslave 옵션을 통해 내가 지정해준 두 디렉터리가 서로 미러링 되도록 하였다
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
chroot를 함으로써 gentoo 안에 들어가서 어떤 작업이든 할 수 있게 된다
/ 는 data from live CD에 해당되고,
/mnt/gentoo가 바로 Chrooting을 통해 우리가 만든 환경에 해당된다
/mnt/gentoo는 다시 말해 VM과 같은 fake environment이고,
/ 가 사실 real environment이기 때문에 여기에 있는 실제 데이터는 공격을 당해도 안전하다
이제 chroot 환경으로 진입을 해보자
chroot /mnt/gentoo /bin/bash 명령어를 통해 ls / 를 해도 ls /mnt/gentoo를 한 것과 같아진다
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
이제 이어서 boot 파티션을 마운트하고,
mount /dev/sda1 /boot
repository of gentoo를 인터넷으로부터 다운받는다
여기서 emerge-webrsync는 우분투에서의 apt-install과 같은 역할이다
그 후 모든 설치되어 있는 패키지들을 업데이트한다
emerge-webrsync -q
emerge --update --deep --newuse @world
그 후 timezone을 설정한다
이 또한 자기가 위치해 있는 곳에 맞춰서 설정하면 된다
나는 프랑스 파리에 있기 때문에 아래와 같이 설정해주었다
echo "Europe/Paris" > /etc/timezone
emerge --config timezone-data
그리고 locales를 설정해준다
locales는 언어 뿐만 아니라 날짜, 시간 등도 specify해준다
그리고 이러한 설정은 /etc/locale.gen 에서 이루어 진다
nano /etc/locale.gen
여기서 en_US ISO-8859-1과 en_US.UTF-8 UTF-8의 주석을 없애 주었고
아래의 명령어로 적용해주었다
(마지막 명령어에서 6은 en_US.utf8을 의미한다)
locale-gen
eselect locale list
eselect locale set 6
이러한 모든 환경 설정을 아래의 명령어로 업데이트해 주었다
env-update && source /etc/profile
'IT > Linux' 카테고리의 다른 글
[FTZ] Level 1: SetUID로 찾은 백도어 이용하기 (0) | 2020.08.30 |
---|---|
[Linux for Security] Gentoo 커널, 부팅, 네트워크 설정 (0) | 2019.12.08 |
[Linux for Security] Gentoo Linux 파티션 포맷 및 마운트 (0) | 2019.10.30 |
[Linux for Security] Gentoo Linux 설치 및 파티션 나누기 (0) | 2019.10.07 |
[Linux for Security] Linux vs Windows OS (0) | 2019.10.07 |