보안 위협은 네트워크를 통해 발생
필요하지 않은 서비스 포트는 막아두어야 한다
불필요한 서비스 자체를 제거하는 방법
방화벽에서 패킷을 필터링 하는 방법
/var/log 디렉토리에 존재ls /var/log
boot.log 나 bootstrap.log : 부팅 시 서비스 데몬의 실행 상태를 기록
btmp: 실패한 로그인 기록으로 바이너리 파일
journal 디렉토리: 데몬이 관리하는 메시지를 기록하는 디렉토리
ufw : 방화벽 데몬이 생성하는 메시지
lastlog : 각 계정의 가장 최근 로그인 정보를 기록하는데 lastlog 명령으로도 확인 가능
mail.log : 메일송수신과 관련된 메시지
wtmp: 로그인 정보를 기록하는데 last 명령으로 확인 가능
syslog : 공통적인 로그를 기록하는데 커널이나 데몬에서 발생하는 대부분의 메시지가 기록된다.
with open('/var/log/syslog', 'r') as f:
for line in f:
print(line, end='')
with open('/var/log/syslog', 'r') as f:
logs = f.readlines()
for line in logs:
messages = line.split()
print(messages[0], messages[1])

텍스트 기반의 전통적인 로그 파일로 시스템 로그를 저장
리눅스 시스템의 로그 파일 중 일부 파일은 rsyslog 라는 로그 관리 데몬에 의해 통제
journal 데몬이 기본 도구 역할
sudo systemctl status rsyslog : active 상태

설정 파일이 /etc/rsyslog.d 디렉토리에 있는 *.conf 파일

어떤 로그를 어떻게 처리할 것인지를 규칙으로 정의한 파일
텍스트 파일이므로 관리자가 편집 가능
규칙은 한 행에 필터 와 동작 으로 작성하고 공백문자 나 탭 으로 구분
필터는 기능명.우선순위 형태로 작성
우선순위 : 메시지의 심각도를 의미
필터 예시
kern.* : 우선 순위에 상관없이 커널의 모든 메시지를 선택mail.crit : 메일에서 crit 이상 우선순위의 모든 로그 메시지를 선택cron.!ibfo.!debug: info 와 debug 를 제외한 모든 메시지를 선택mail.=info : 메일에서 info인 메시지를 선택필터가 선택한 메시지를 어떻게 처리할 지 정의한다.
메시지를 파일로 저장하거나 메일로 전송하거나 화면으로 출력하기 등
동작 예시
kern.crit /var/log/kern.log : kern의 crit 이상의 메시지를 kern.log 파일에 기록

journal은 systemd 데몬의 구성요소로 로그 파일의 관리를 담당
시스템 부팅부터 발생하는 모든 로그를 바이너리 형식으로 수집 및 저장
journals 라고 불리는 바이너리 파일로 저장systemd-journald 이다
로그 확인: journalctl [옵션]
옵션:
n 행수 : 가장 최근에 기록된 로그 중 행 수 만큼 출력r : 가장 최근 로그가 출력o {short|verbose}f : 최근 로그를 자동으로 출력p 우선순위 : 우선순위로 필터링해서 출력b 시간 : 시간 이후의 로그만 출력--since=시간 --until=시간 : 시간을 필터링해서 출력필드명=값 : 필드명으로 필터링해서 출력journalctl : 로그파일의 전체 내용 보기journalctl -n 1 : 가장 최근 내용 1개 확인journalctl -n 1 -o verbose : 자세히journalctl -f : 대기상태 - 로그를 자동으로 출력해줌