로그(Log) - 시스템에서 발생한 이벤트에 대한 기록
감사(Audit) - 관리자가 설정한 특정 대상에 대한 기록
보안적 측면: 침입 등에 대한 감시, 대응
운영적 측면: 시스템 장애 대응
syslog(rsyslog)
syslog(rsyslog)
journal
systemd-journald
journal을 담당하는 데몬
메모리에 저장
바이너리 데이터 형태로 저장 : /run/log/journal
syslog(rsyslog)
로그 데이터를 파일로 저장, 사용자에게 전달
네트워크의 다른 시스템으로 로그 전달
systemd-journald에서 발생한 로그 중 선택적으로 분류하여 처리
선택/분류 조건: 기능(Facility), 우선순위(Priority)
숫자
우선순위
심각도
0
emerg
시스템 구동 여부에 영향을 줄 수 있는 레벨
1
alert
즉시 조치가 필요함
2
crit
심각한 오류
3
err
중요도가 낮은 오류
4
warning
경고
5
notice
정상상태에서 발생하는 메시지 중 중요도 높음
6
info
일상적인 내용
7
debug
디버깅 메시지(일상적인 내용보다 자세한 내용)
/var/log
messages : 일반적인 시스템 로그의 데이터 저장 (아래 항목 제외)
secure : 인증 관련 로그
maillog : 메일 관련 로그
cron : 예약작업 관련 로그
boot.log : 부팅 관련 로그
/etc/rsyslog.conf : rsyslog 설정 파일
ex) cron.* /var/log/cron
cron : 기능(Facility, 출처), 어디에서 나온 로그인가?
주요 Facility: https://en.wikipedia.org/wiki/Syslog#Facility
명령어 : journalctl
옵션
-n [숫자]: 최근 [숫자]개의 저널 출력
-p [우선순위] : priority. 저널 메시지의 우선순위 지정
-f : 발생하는 저널 메시지 실시간 확인
-r : 역순 출력 (최근 저널부터)
--since [시작시점] : 특정 시점부터 출력
--until [종료지점] : 특정 시점까지 출력
_COMM : 명령 이름
_EXE : 실행파일 경로
_PID : 특정 PID 관련 로그 확인
메모리에 저장 : 재부팅, 종료 후 시작 등 초기화됨
저널 영구저장 설정
기존 저널 저장위치 정보를 확인
기존 저널 저장위치인 /run/log/journal 경로와 같은 정보를 가지는 디렉토리를 생성
ls -ld /run/log/journal
소유자 root
소유그룹 systemd-journal
권한 2755
/var/log/journal 디렉토리 생성
소유자/소유그룹/권한 설정 통일
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal/
chmod 2755 /var/log/journal/
ls -ld /var/log/journal
logrotate
로그를 순환시키는 명령어
로그파일이 과도하게 커지거나, 과도하게 장기간의 데이터를 저장하거나 하는 상태를 방지
백업 생성. 규칙에 따라 일정 개수만큼의 백업만 보관
cron(anacron)에 의해 주기적으로 실행
===========================================
OSI 7 Layer (개념적인 모델)
1 : Physical. 통신회선. 리피터, 허브
Hub: 물리적인 노드를 확장하는 역할
문제점: 충돌 발생 → 속도 저하
2 : Datalink. Ethernet. MAC Address 사용. 서브넷(Subnet) 내의 통신 경로 결정. 스위치, 브릿지. ARP
스위치(Switch): 노드를 확장하는 역할
허브와 차이점: 충돌을 회피할 수 있음
MAC Address Table
3 : Network. IP주소. 라우터. 라우팅 테이블, ICMP
라우터: 서로 다른 네트워크를 연결하는 역할
4 : Transport. TCP/UDP
TCP : Transmission Control Protocol. 전송 안정성. 연결 수립. 3 way handshake(수립), 4 way handshake(종료)
UDP : User Datagram Protocol. 전송효율. 연결 수립하지 않음.
5 : Session. 연결
6 : Presentation. 변환
7 : Applicaton. 응용프로그램
OSI 1~2계층 통하 : Network(Network Access) 계층
OSI 3계층 : Internet 계층
OSI 4계층 : Transport 계층
OSI 5~7계층 : Application 계층
데이터링크 계층의 주소 : MAC Address, 물리적 주소
네트워크 계층의 주소 : IP Address, 논리적 주소
16진수 2자리씩 끊어서 표기
1당 1Byte(8Bit) X 6 = 6Byte(48Bit)
앞 3Byte / 뒤 3 Byte
OUI(Organizationally Unique Identifier)-제조사별로 할당된 값
Host Id : 각 장치별 일련번호
IP와 MAC 주소의 매칭 정보를 요청/응답
3계층 주소. IPv4, IPv6 두 가지로 나누어짐
IPv4
10진수(0~255) 숫자 4개로 구성 (192.168.0.100)
클래스, 사설네트워크, 사용하지 못하는 주소
Network IP / Host ID
Network ID : 네트워크를 구분하기 위한 값. 같으면 같은 네트워크
Host ID : 네트워크 내에서 구분하기 위한 값.
CIDR Prefix: 서브넷마스크의 표기방법
255.255.255.0 → /24
=======================================================
NetworkManager: 네트워크 관리 데몬
nmcli : NetworkManager 설정 도구
nmtui : TUI(Text User Interface) 설정 도구
하드웨어 장치에 직접 설정을 반영하지 않고, ‘연결(Connection)’을 생성하여 이를 하드웨어에 연결
다수의 네트워크 환경에 따른 연결 설정을 만들어놓고, 필요한 연결설정을 매칭시키는 방식으로 사용할 수 있음
명령어 형식
nmcli <대상> <서브커맨드> ...
네트워크 연결 추가
필수항목
이름: con-name
타입: type
사용할 하드웨어 장치: ifname
ex) # nmcli connection add con-name test type ethernet ifname ens33
선택항목
IP주소/서브넷마스크 : ipv4.addresses <주소/netmask>
게이트웨이 정보 : ipv4.gateway <gateway주소>
DNS 정보 : ipv4.dns <DNS 서버 주소>
자동활성화 설정 : connection.autoconnect
동작방식 : ipv4.method (auto: DHCP, manual: 수동)
ex) # nmcli connection add con-name static ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8
ex) # nmcli connection add con-name static2 ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8 ipv4.method manual
네트워크 연결 확인
nmcli connection show
nmcli connection show [연결이름]
네트워크 연결 활성화
nmcli connection up [연결이름]
네트워크 상태 확인 명령
ifconfig : net-tools 패키지로 분리 (netstat)
ip
address show :네트워크 주소정보 확인
route show : 라우팅 테이블 출력
netstat → ss
장치의 이름
ens33, eth0, eno16...