Linux - 23. System Log II
by jennysgap시스템 로그
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