딩굴댕굴

Linux - 23. System Log II

by jennysgap

BOX

시스템 로그

1. 로그 서버 구성

- 로그 기본은 개별 시스템이 로그 서버 동작 (localhost log server)

클라이언트 MSG 발생 -> syslog 데몬 네트워크 전송 -> 로그서버 syslog 데몬 기록

syslogd  : udp(514) 장점 : 빨리 보낼수 있음, 단점 : 손실 확률이 높음

rsyslogd : tcp(514)   생각보다 보내는 것이 느리지 않기 때문에 사용하기 시작


* 로그 클라이언트의 세팅

/etc/rsyslog.conf

---------------

kern.warn @192.168.xx.xx   (UDP 로그 서버의 IP 또는 호스트네임)

kern.warn @@192.168.xx.xx   (TCP)


* 로그 서버의 설정

/etc/rsyslog.conf

---------------

kern.err         /var/log/messages (로그 서버는 파일에 기록)


클라이언트는 네트워크를 통해 보내야 하고 서버는 파일을 통해 기록을 받아야 한다.


* MODULES 영역 설정

# ModLoad imudp

# ModLoad imtcp

(해당 설정 중 사용하고자 하는 설정에서 '#' 기호 제거) _둘다 쓸 경우 둘다 제거하면 됨

(해당 설정 아래 포트 설정에서 '#' 기호 제거)

(통상적으로는 둘다 빼지는 않음) _ 둘다 빼도 정상적으로 됨

UDP 정상적으로 데이터가 안올 때도 있음 (이건 감안해야함)

TCP 는 3way 핸드쉐이크 때문에 데이터가 정상적으로 옴

(서버 설정)

# iptables -F 테스트할 때만 잠깐잠깐 사용 (방화벽 푸는 것) 혹시나 테스트 안되는 사람을 위해 입력

# vi /etc/rsyslog.conf

-----------------------------------------

### MoDULES ###


ModLoad imtcp

InputTCPServerRun 514 ('#' 기호 제거)


### RULES ###


local3.err /var/log/testlog2 (원격지 로그 TCP로 받아 저장)

-----------------------------------------

# touch /var/log/testlog2

# service rsyslog restart

# tail -f /var/log/testlog2


(클라이언트 설정)

# vi /etc/rsyslog.conf

-----------------------------------------

local3.warn @@192.168.3.xx

local3.notice @192.168.3.xx

-----------------------------------------

# service rsyslog restart

# logger -p local3.err  "Message Sending test"


* 클라이언트 먼저 설정 --> 서버 설정

* TCP 쓸지 UDP 쓸지 프로토콜 정하기

* 서버 IP 찾기

* 저장할 포트 정하기 (포트번호 514번은 공식적으로 정해준 거임) _ 서비스 번호는 변경해야 보안상 좋음

* log 저장할 위치 정하기

* 리컨피규레이션 (구성정보 교체)


2. 로그 파일들

- /var/log/messages   : System의 Console에 기록될 메시지들을 보관하는 로그파일

- /var/log/secure        : 사용자의 인증과 관련된 로그파일 (허가받은 사람이 들어온건지 아닌지 판단하는 기준) 

- /var/log/wtmp         : 사용자 로그인 및 로그아웃 관련 로그파일, 전용 명령 'last'를 이용하여 로그보기 가능

- /var/log/lastlog        : 사용자 로그인/로그아웃 관련 로그파일, 전용 명령 'lastlog'를 이용하여 로그보기 가능

- /var/run/utmp    : 임시 로그 파일로 사용자 로그인만 체크함. 로그아웃 시 사용자 정보가 삭제. 'who' 명령으로 참조 가능.

- /var/log/btmp    : 사용자 로그인 실패 시 기록되는 로그 파일로 실패한 상황이 없을 경우 내용이 없음. 참조 시 'lastb' 명령 사용.

* su 로 들어가는 건 root 빌려준 거기 때문에 기록이 안남겨짐

* 파일 정보 알고 싶을 때 쓰는 명령어    file /var/log/messages


로그파일들 분석

/var/log/messages 로그기록시간(확인)  호스트이름  프로그램명(확인)   프로세스번호  메세지(확인)     

  - 리눅스 단점 : 어떤 레벨의 메세지인지 알 수 없음

/var/log/secure        로그기록시간  호스트이름  프로그램명  프로세스번호  

  들어왔다 나갔다만 알 수 있음 (정상적으로 나갔는지는 알 수 없음) 

  (로그인 형태도 알 수 X)

/var/log/wtmp


로그 내용 지우기

# > /var/log/wtmp

# > /var/run/utmp

# > /var/log/btmp


3. 실시간 로그 보기

emerg 레벨의 메시지를 제외한 나머지 로그들은 로그 파일에만 기록되기 때문에

실시간 대응의 어려움이 있음. 따라서 로그에 대한 빠른 대응을 위해 실시간 관찰이 필요.

#  tail  -f  /var/log/messages

#  tail  -f  /var/log/secure

tail 명령을 이용하면 실시간으로 기록되는 로그 관찰이 가능.

[예제]

* [T1] root가 사용하는 터미널

  [T2] 일반 유저(또는 root)가 사용하는 터미널


[T1] # tail  -f  /var/log/messages 

[T2] root로 로그인

# last | more

# ifconfig  eth1  192.168.xx.200 netmask 255.255.255.128

# ifconfig  eth1

[T1] log 정보 확인


반응형

'BOX' 카테고리의 다른 글

Linux - 25. NFS [작업중]  (0) 2016.12.07
Linux - 24. FTP 서버 관리, hping  (0) 2016.12.07
Linux - 22. System Log I  (0) 2016.12.07
Linux - 21. 프로세스 관리  (0) 2016.12.07
Linux - 20. 패키지 관리  (0) 2016.12.07

블로그의 정보

jennysgap

jennysgap

활동하기