
로그(Log)란.
커널, 서비스, 애플리케이션등 시스템에 발생한 이벤트를 분류하여 기록한 파일
• 로그를 기록하면서 시스템에서 발생한 문제 원인 파악, 인가 되지않은 접근으로부터 침입 경로를 조회
• systemd에서는 systemd - journald를 통해 시스템에서 발생한 모든 로그를 수집하고 데이터 형식으로 관리
- Systemd
• init 프로세스 ==> Systemd 시스템데몬이라는 이름으로 바뀜
• PID 1 부여받음
• 리눅스라는 OS 컨트롤하는 프로세스
• systemd 를 움직이는 명령어 systemctl
• Service : 시스템에서 제공해주는 서비스 = 서비스 유닛
• Target : 서비스 유닛 모아놓은 것 = 서비스 유닛의 집합 = Run Level = target
- 로그 관리 데몬 ( 흐름도 )
• systemd 시스템에서 로그는 systemd-journald 와 rsyslogd 두 데몬에 의해서 관리 됨
•systemd-journald 와 rsyslog 비교
systemd-journald rsyslogd Binary(바이너리) ASCII(아스키) 런타임(부팅) : 따로저장은 안됨 Logrotate(4주) Journalctl툴로 해석 cat, tail, head, vi등등 명령어 /run/log/journal /var/log/syslog
- 로그 파일 위치
파일 설명 /var/log/messages 대부분의 로그 기록 /var/log/secure 인증과 관련된 로그 기록 /var/log/maillog 메일과 관련된 로그를 기록 /var/log/cron 주기적인 작업과 관련된 로그 /var/log/boot.log 부팅과정에 발생된 로그를 기록 • rsyslog에 의해서 수집되는 로그는 보통 syslog라고 부름
• rsyslogsms /etc/rsyslog.conf 를 참조하여 /var/log 디렉토리에 로그의 종류별로 각각 텍스트 파일로 저장
• /etc/rsyslog
룰(Rule) : 로그의 규칙들을 정의
필터(filter) : 로그 메세지를 분류하기 위한 기준
행동(Action) : 로그가 저장되는 파일의 위치

Power On
BIOS(Basic Input/Output System) / UEFI(Unified Extensible Firmware Interface)

• firmware : 소프트웨어를 읽어 실행하거나, 수정하는 것도 가능한 영구적 소프트웨어 하드웨어를 Low-Level로 컨트롤하기 위한 소프트 웨어
• POST(Power-On-Self-Test) : 하드웨어 인지, 손상을 확인
--> CPU, RAM, 제어장치, BIOS 코드 자체, 주변장치 등에 대한 검사 진행
• MBR(Master Boot Record) : POST 과정이 완료되면, BIOS는 부팅 디바이스(하드디스크 등)를 검색하고, 해당 디바이스의 파티션 테이블을 검색
• VBR(Volume Boot Record) : 파티션되지 않은 장치의 시동 섹터
• EBR(Extended Boot Record) : EBR의 파티션 테이블에는 모든 Logical partition이 링크

- GRUB(Grand Unified Boot Loader)
대부분의 리눅스 배포판에서 GRUB를 사용
GRUB Legacy, GRUB2
• GRUB Stage 1
MBR 또는 VBR에 저장되어 있는 부트 이미지가 메모리에 로드되고 실행됨(core.img의 첫 번쩨 섹터 로드)
• GRUB Stage 1.5
MBR과 첫번째 파티션 사이에 있는 블록(a.k.a MBR gap)에 저장된 core.img가 메모리에 로드되고 실행됨. core.img의 configuration 파일과 파일시스템을 위한 드라이버를 로드한다.
• GRUB Stage 2
/boot/grub 파일 시스템에 직접 접근하여 커널(vmlinuz)의 압축을 풀어 메모리에 로드하고, 커널이 필요로 하는 모든 드라이버와 모듈, 파일시스템(ext2, ext3, ext4...)등이 담긴 RAM 디스크 파일(initrd.img)를 메모리에 로드한다.
- 유닛의 종류
- systemd 부팅 절차
• default.target은 가장 먼저 실행되어 어떤 타겟 유닛으로 부팅을 진행할지 결정함
• local-fs.target은 /etc/fstab에 등록된 마운트 정보로 파일시스템을 마운트함
sysinit.target은 시스템 마운트, 스왑, 커널의 추가 옵션을 실행하는 서비스를 시작함
• basic.target은 firewalld, microcode, SELinux, 커널 메시지와 관련된 서비스를 시작 및 로드함
• multi-user.target은 커맨드 라인을 제공하는 다중 사용자 모드임
• graphical.target은 GUI를 지원하는 다중 사용자 모드임
- 사용자가 사용 가능한 타겟 유닛
| Run-Level | Target |
|---|---|
| 0 | Poweroff.target |
| 1 | rescue.target |
| 2, 3, 4 | multi-user.target |
| 5 | graphical.target |
| 6 | reboot.target |
| 명령어 | 설명 |
| who -r | 현재 사용하고 있는 타겟 유닛이 런 레벨 형태로 출력 |
| systemctl get-default | default.target에 현재 링크되어있는 타겟 확인 |
| systemctl set-default target-unit | default.target에 링크 파일 연결 |
| systemctl isolate target-unit | 시스템 재부팅 없이 런타임 상태에서 환경을 재설정 함 |
1) boot loader에서 e
2) LAMG=ko_KR.UTF-8 여기에 rd break 입력
3) mount | grep '/sysroot'로 확인 현재 ro 라면 rw로 변경해야됨
4) mount -o remount,rw /sysroot
5) passwd
--> 비번 입력후
6) touch /.autorelabel
exit로 나간 후, 로그인해서 바뀐 root비번 확인
소프트웨어 패키지 등장배경
과거 리눅스에서 특정 소프트웨어를 설치하기 위하여 아카이브 파일이나 압축파일로 되어 있는 파일에서 원본 소스 파일을 추출하고 해당 파일을 컴파일 하여 별도로 설치 해야하는 번거러운 작업을 자주함 쫌 더 쉡게 설치하는 방법을 구상 등장
RPM (Redhat Package Manager) 패키지 관리
• 패키지를 관리하는 도구
• 쉽게 소프트웨어 설치를 할 수 있도록 래드햇에서 개발한 방식
①http - ② 2.4.6 - ③ 40.e17.centos ④ .x86_64 ⑤.rpm
RPM 패키지 파일 형식
① 패키지 이름 : 설치및 동작에 사용하는 명칭
② 버전정보 : 프로그램이 만들어진 버전 정보로 높을 수록 최승에 만들어진 버전
③ 릴리즈정보 : 리눅스 배포판 버전이 명시
④ 아키텍쳐 정보 : 지원하는 CPU 아키텍쳐의 정보
⑤파일확장자 : 말 그래도 파일 확장자 RPM패키지의 확장자는 .rpm 이다.
YUM (yellowdog Updater Modified) 패키지
• #YUM을 사용하여 패키지 관리
• RPM 기반의 패키지 설치, 제거, 업데이트를 관리해주는 도구
• YUP (yellowdog update) 도구를 대체
• 패키지의 종속성을 알아서 해결해주기 때문에 사용자 입장에선 더 쉽게 설치하는 것이 가능
- yum 저장소 (repository): 패키지들을 저장해 놓은 하나의 서버를 의미
repo.file : 저장소에 연결할 수 있도록 설정한 파일- 패키지 찾는 법
yum info 패키지 : 패키지 정도보기
yum provides /etc/ssh/sshd_config : 명령어는 아는 무슨 패키지인지 생각 안날때
yum search 패키지 : 패키지 검색
yum history : 옵션에 list
yum list installed | grep [패키지 이름] : 설치된 패키지 조회
yum remove : 설치된 패키지 삭제- 패키지 설치
yum install epel-relese
yum install nginx
set number : 코드 줄 생성
원하는 라인으로 이동 : shift + G