[EDU] ELSA # 2008.03.24

# BOOT LOADER / BOOTING PROCESS

@ Boot loader

LILO 시디, 플로피로 복구
GRUB 자체복구
-> kernel (/boot/vmlinuz-2.6.0-34.EL)
-> swapper (pid=0)
-> init (pid=1)
-> /etc/inittab
-> /etc/rc.sysint (run control)
-> process 호출
-> /etc/profile (시스템 전역)
-> /home/~user/.bash_profile (사용자가 로그인할때 적용)
-> /etc/bashrc (시스템 전역 : 별칭)
-> /home/~user/.bashrc (시스템 전역 : 별칭)
-> /home/~user/.bash_logout

@ SYSTEM : RUN LEVEL

S.s : Single User Mode -> 시스템 크리티컬 패치
0 : 시스템 종료 레벨 (=:=halt)
1 : single user mode 's레벨과 차이: /usr 마운트는 기본적으로 해줌'
2 : multi user (서비스 제약 : Apache, NFS, Samba x)
3 : multi user server mode , x-windows 실행x
4 : reserved
5 : X-Windows mode, 3레벨에서 추가적으로 사용 -> 스왑메모리 ^
6 : =:= reboot

shutdown -r/-h now == halt (x)

@ 리눅스 장점 : 커스터마이징 셋팅

$ /sbin/init

@ Reboot
$ init 6
$ shutdown -r now
$ reboot

/etc/inittab

@ /boot/grub
boot 설정파일

/etc/grub.cof
== /boot/grub/grub.conf
== /boot/grub/menu.lst

$ vi /boot/grub/grub.conf

★ grub로 루트 패스워드를 깰 수 있음

@ 싱글모드 보안 취약

$ reboot
-> 방향키 클릭
-> 'e' -> ro(readonly)
-> 'rhgb' -> redhat graphic boot
-> 'e' 편집모드
-> 'b' -> single user mode

=> 로그인 없이 접근 가능

@ GRUB 보안 설정

$ which grub

$ grub

> help

> md5crypt

=> 암호화된 문자열 복사 (공백없이)

$ vi /etc/grub.conf

=> 'Ecrypted: $1$A~A9K/' 붙여넣기
==> timeout=5와 splashimage= 사이에 password --md5 $1$A~A9K/ 삽입
==> 저장

$ reboot
방향키
'p'

===================

시스템 런레벨 확인 명령어

$ who -r
$ runlevel

$ vi /etc/inittab

id:5:initdefault:

si sysinit /etc/rc.d/rc.sysinit

키보드보호 => #ca::ctrlaltdel:/sbin/shutdown -t3 -r now

전원공급관련 => pf::powerfail~, pr::12345:powerokwait~

가상콘솔관련 => Run gettys in standard runlevels



$ init 3

@ KILL X-WINDOW :: Rctrl + alt + backspace

@ SERVICE와 PROCESS의 차이점
-> 커널이 자동적으로 재시작 => SERVICE

=======================

$ vi /etc/rc.d/rc.sysinit

기본패스설정
키맵,시스템폰트로딩
스왑영역활성화
파일시스템검사
/proc 마운트

==> 쉘스크립트 분석.


=======================

$ cd /etc/sysconfig
$ cat keyboard

$ cd console

$ cat i18n

$ vi /etc/rc.d/rc.sysinit
스왑추가

$ which init

$ cd /etc/rc.d

$ cd /rc3.d

$ ls

-> Kxxx => kill
-> Sxxx => Start

$ cd /etc/rc.d/rc0.d
KILL관련 스크립트

$ init0
/sbin/init0 => /etc/inittab (l3-->/etc/rc.d/rc3 ==> /etc/rc.d/rc3.d
대문자 S로 시작하는 스크립트에는 start (arg)를 준다
대문자 K로 시작하는 스크립트에는 stop (arg)를 준다

★ 서비스목록은 따로 관리

$ cd /etc/rc.d
$ cat rc.local

$ cd rc5.d

$ vi S56xinetd
-> 스크립트

======================

@ 사용자정의 파일

전역적 설정
/etc/profile -> 변수, 환경설정
/etc/bashrc -> 별칭

지역적설정파일
~/.bash_profile -> 변수, 환경설정
~/.bashrc -> 별칭
~/.bash_logout -> 로그아웃 직전 실행

$ id -un

$ ls -al
-> .bash_history

$ vi .bash_history

★ 해킹을 당하거나 해킹을 분석할 때 히스토리 사이즈 '0'

====================================================

$ cd /etc/profile.d
$ ci vim.sh

=========================================

vi /etc/bashrc
=> # Trun on checkwinsize
대문자 'W' => 소문자'w'로 변경후, 저장

$ . /etc/bashrc

★ nobody 계정 -> 해킹보완 : webserver, sendmail, telnet

=========================================

$ cat .bash_profile

$ cat .bashrc

개인설정파일 읽는 순서
/etc/profile -> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

=========================================

@ 서비스 목록제어

$ chkconfig 하나의 서비스 제어
-> 제약적 조건에서 사용 가능
$ runlevel
$ chkconfig --list | more

$ ntsysv --level 3 다중 서비스 제어
-> 메뉴얼 기반

$ system-config-services GUI 모드

★ standalone -> 전용서버 (FTP) :: 빈번한 사용

@ vnc 서비스 살리기

$ chkconfig --level 3 vncserver on
-> 3레벨에서 자동으로 활성화
$ chkconfig --list | grep vnc

$ man ntsysv

$ ntssysv
-> apmd POWER-MANAGEMENT (시스템 절전모드 관련)
-> iptables (방화벽관련)

$ ntsysv --level 5, ntsysv --levle 35

$ system-config-serivces # BOOT LOADER / BOOTING PROCESS



@ Boot loader



LILO 시디, 플로피로 복구

GRUB 자체복구

-> kernel (/boot/vmlinuz-2.6.0-34.EL)

-> swapper (pid=0)

-> init (pid=1)

-> /etc/inittab

-> /etc/rc.sysint (run control)

-> process 호출

-> /etc/profile (시스템 전역)

-> /home/~user/.bash_profile (사용자가 로그인할때 적용)

-> /etc/bashrc (시스템 전역 : 별칭)

-> /home/~user/.bashrc (시스템 전역 : 별칭)

-> /home/~user/.bash_logout



@ SYSTEM : RUN LEVEL



S.s : Single User Mode -> 시스템 크리티컬 패치

0 : 시스템 종료 레벨 (=:=halt)

1 : single user mode 's레벨과 차이: /usr 마운트는 기본적으로 해줌'

2 : multi user (서비스 제약 : Apache, NFS, Samba x)

3 : multi user server mode , x-windows 실행x

4 : reserved

5 : X-Windows mode, 3레벨에서 추가적으로 사용 -> 스왑메모리 ^

6 : =:= reboot



shutdown -r/-h now == halt (x)



@ 리눅스 장점 : 커스터마이징 셋팅



$ /sbin/init



@ Reboot

$ init 6

$ shutdown -r now

$ reboot



/etc/inittab



@ /boot/grub

boot 설정파일



/etc/grub.cof

== /boot/grub/grub.conf

== /boot/grub/menu.lst



$ vi /boot/grub/grub.conf



★ grub로 루트 패스워드를 깰 수 있음



@ 싱글모드 보안 취약



$ reboot

-> 방향키 클릭

-> 'e' -> ro(readonly)

-> 'rhgb' -> redhat graphic boot

-> 'e' 편집모드

-> 'b' -> single user mode



=> 로그인 없이 접근 가능



@ GRUB 보안 설정



$ which grub



$ grub



> help



> md5crypt



=> 암호화된 문자열 복사 (공백없이)



$ vi /etc/grub.conf



=> 'Ecrypted: $1$A~A9K/' 붙여넣기

==> timeout=5와 splashimage= 사이에 password --md5 $1$A~A9K/ 삽입

==> 저장



$ reboot

방향키

'p'



===================



시스템 런레벨 확인 명령어



$ who -r

$ runlevel



$ vi /etc/inittab



id:5:initdefault:



si sysinit /etc/rc.d/rc.sysinit



키보드보호 => #ca::ctrlaltdel:/sbin/shutdown -t3 -r now



전원공급관련 => pf::powerfail~, pr::12345:powerokwait~



가상콘솔관련 => Run gettys in standard runlevels







$ init 3



@ KILL X-WINDOW :: Rctrl + alt + backspace



@ SERVICE와 PROCESS의 차이점

-> 커널이 자동적으로 재시작 => SERVICE



=======================



$ vi /etc/rc.d/rc.sysinit



기본패스설정

키맵,시스템폰트로딩

스왑영역활성화

파일시스템검사

/proc 마운트



==> 쉘스크립트 분석.





=======================



$ cd /etc/sysconfig

$ cat keyboard



$ cd console



$ cat i18n



$ vi /etc/rc.d/rc.sysinit

스왑추가



$ which init



$ cd /etc/rc.d



$ cd /rc3.d



$ ls



-> Kxxx => kill

-> Sxxx => Start



$ cd /etc/rc.d/rc0.d

KILL관련 스크립트



$ init0

/sbin/init0 => /etc/inittab (l3-->/etc/rc.d/rc3 ==> /etc/rc.d/rc3.d

대문자 S로 시작하는 스크립트에는 start (arg)를 준다

대문자 K로 시작하는 스크립트에는 stop (arg)를 준다



★ 서비스목록은 따로 관리



$ cd /etc/rc.d

$ cat rc.local



$ cd rc5.d



$ vi S56xinetd

-> 스크립트



======================



@ 사용자정의 파일



전역적 설정

/etc/profile -> 변수, 환경설정

/etc/bashrc -> 별칭



지역적설정파일

~/.bash_profile -> 변수, 환경설정

~/.bashrc -> 별칭

~/.bash_logout -> 로그아웃 직전 실행



$ id -un



$ ls -al

-> .bash_history



$ vi .bash_history



★ 해킹을 당하거나 해킹을 분석할 때 히스토리 사이즈 '0'



====================================================



$ cd /etc/profile.d

$ ci vim.sh



=========================================



vi /etc/bashrc

=> # Trun on checkwinsize

대문자 'W' => 소문자'w'로 변경후, 저장



$ . /etc/bashrc



★ nobody 계정 -> 해킹보완 : webserver, sendmail, telnet



=========================================



$ cat .bash_profile



$ cat .bashrc



개인설정파일 읽는 순서

/etc/profile -> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc



=========================================



@ 서비스 목록제어



$ chkconfig 하나의 서비스 제어

-> 제약적 조건에서 사용 가능

$ runlevel

$ chkconfig --list | more



$ ntsysv --level 3 다중 서비스 제어

-> 메뉴얼 기반



$ system-config-services GUI 모드



★ standalone -> 전용서버 (FTP) :: 빈번한 사용



@ vnc 서비스 살리기



$ chkconfig --level 3 vncserver on

-> 3레벨에서 자동으로 활성화

$ chkconfig --list | grep vnc



$ man ntsysv



$ ntssysv

-> apmd POWER-MANAGEMENT (시스템 절전모드 관련)

-> iptables (방화벽관련)



$ ntsysv --level 5, ntsysv --levle 35



$ system-config-serivces

댓글

이 블로그의 인기 게시물

[LINUX] CentOS 부팅시 오류 : UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

[MSSQL] 데이터베이스가 사용 중이어서 배타적으로 액서스할 수 없습니다

구글코랩) 안전Dream 실종아동 등 검색 오픈API 소스를 공유합니다. (구글드라이브연동, 이미지 수집 소스)