LOG, rsynk

:)·2024년 6월 12일
0

보안 

목록 보기
24/28

LOG

  • LOG: 기록 , history , 흔적
  • 로그 저장소 : /var/log → 모든 로그 파일 저장소
    • 대부분의 서비스 로그는 /var/log/[서비스명]
  • 주요 로그
    • /var/log/message 시스템 메세지 로그
      /var/log/secure 인증 로그(접속 로그)
      /var/log/maillog 메일 로그
      /var/log/cron 주기 예약 작업 로그
      /var/log/spooler 로그 생성 작업소 (실제 눈으로 확인 어려움)
      /var/log/dmesg 가장 최근 시스템 장치 및 파일 시스템, 부팅 메세지 로그
      /var/log/boot.log 부팅 시 시스템 장치 및 데몬 실행 상태 확인 로그
  • 시스 로그 서버 기록
    • logrotate → 모든 로그 파일 관리 (주기적으로 압축, 백업, 삭제, 메일 보내기 등 작업)
      • 역할: 한정된 용량에 로그가 쌓이는 것 방지
      • 구동: crontab > cron.daily > logrotate > logrotate.conf > logrotate.d
      • /etc/logrotate.d/syslog → syslog = rsyslog로 대체 가능
  • 접속 로그

    strings : 바이너리 분석 도구
    utmp :use: 현재 접속 중인 사용자 : users,w,who
    wtmp :was: 모든 접속 성공 로그 : last
    btmp :bad: 모든 접속 실패 로그 : lastb

  • utemp
    • 역할: 사용중인 사용자 로그
    • 위치: /var/run/utmp
    • 명령어: w who users finger(잘안씀)
    • 분석:strings /var/run/utmp
  • wtmp
    • 역할: 접속했던 계정들의 로그인 로그아웃 정보 로그
    • 위치:/var/log/wtmp
    • 명령어: last
  • btmp
    • 역할: 로그인 실패 계정 정보 로그
    • 위치:/var/log/btmp
    • 명령어:lastb (last 명령과 연결되어있음)
  • 인증 로그 (secure)
    • 역할: SSH/telnet등 인증(PAM)에 대한 모든 로그 기록
    • 위치: /var/log/secure
    • secure로그는 보통 시스템 메세지 messages와 같이 활용하여 사용
  • 웹 접속 로그
    • 접속 로그
      /var/log/httpd/access_log <=링크 /etc/httpd/logs/access_log
    • 에러 로그
      /var/log/httpd/error_log
  • 파일 전송 로그
    • xferlog

      Thu Aug 31 18:00:04 2017 1 192.168.1.1 0 /home/sevas/test a o r sevas ftp 0 * c
      Thu Aug 31 18:00:06 2017 1 192.168.1.1 170 /home/sevas/3.tar.gz b
      i r sevas ftp 0 * c

        Thu Aug 31 18:00:04 2017	        날짜
        1			                전송에 걸린시간 (초) 
        192.168.1.1		                soruceIP
        0			                용량
        /home/sevas/test		        전송한 파일 경로 
        a/b			                ascii / binary
        _			                압축에 사용된 방식
        o/i			                download/upload
        r			                real account (/etc/passwd)
        sevas		                        사용계정명
        ftp			                프로토콜
        0/1			                인증에 사용된 방법 0=none 1=rfc931 remoteident authentication (원격로그인)
        *                                     가능 계정
        c/i		                	성공/실패
        

  • acct/ pacct
    • 시스템에 로그인한 모든 사용자가 로그아웃할 때까지 입력한 명령어와 터미널의 종류, 프로세스 시작 시간 등을 저장한 로그
    • lastcomm 명령으로 확인
    • 리눅스 /var/account/pacct
    • 유닉스 /var/adm/pacct
  • 기본적으로 활성화가 되어 있지 않기 때문에 활성화 필수]
    • 리눅스 # accton /var/account/pacct ( 기록 통계를 실행 중지 )
    • 유닉스 # /usr/lib/acct/accton /var/adm/pacct
  • 로그 서버 만들기
    • 로그 서버
      vi /etc/rsyslog.conf

      주석 해제처리
      Provides UDP syslog reception

      #ModLoad imudp #UDPServerRun 514
      ModLoadimudpModLoad imudpUDPServerRun 514

      service rsyslog restart

      netstat -lntup |grep rsys 포트확인

      firewall => 514/udp 방화벽열어주기

      logger "메세지" => 서버의 /var/log/messages 에 내용 추가 확인
      ssh 로 로컬로그인 => 서버의 /var/log/secure 에 내용 추가 확인

  • 로그 클라이언트 설정
    • vi /etc/rsyslog.conf

      원하는정책 설정
      *.info;mail.none;authpriv.none;cron.none /var/log/messages 시스템이벤트로그

      The authpriv file has restricted access.

      authpriv.* /var/log/secure 접속로그

      Log all the mail messages in one place.

      mail.* -/var/log/maillog 메일로그

      Log cron stuff

      cron. /var/log/cron 크론로그
      authpriv.

      . @192.168.10.10:514


  • rsyslog
    • service rsyslog restart
    • 클라이언트에서 실행
      • logger "메세지" => 서버의 /var/log/messages 에 내용 추가 확인
      • ssh 로 로컬로그인 => 서버의 /var/log/secure 에 내용 추가 확인

    authpriv.; user. @192.168.10.10:514 메세지
    security.*; @192.168.10.10:514
    • 메세지 type
      authpriv  인증요구 메세지  		/var/log/secure
      cron      스케줄러 메세지		        /var/log/crond
      daemon    시스템 데몬이 생성한 메세지       /var/log/boot.log
      kern      커널이 발생한 메세지		/var/log/messages
      lpr	  프린트 유형이 프로그램이 발생한 메세지
      mail	  메일 메세지
      mark	  syslogd 데몬에 의해 생성된 주기적인 메세지
      news	  뉴스 프로그램 유형이 발생한 메세지
      security  인증 프로그램이 발생한 메세지
      syslog	  syslog프로그램 메세지
      user	  사용자 프로그램에 의해 생성된 메세지
      uucp	  unix to unix copy 시스템이 발생한 메세지
      local 0~7 예약 메세지
      
    • mark를 제외한 모든 메세지

  • 레벨 (메세지 타입 레벨) 0 비상 emergeny 시스템 사용불가정도의 에러 발생
    1 경보 alert 시스템에 문제 발생
    2 중요 critical 서비스 중단이 필요한 에러
    3 에러 error 에러 발생
    4 경고 warning 특정 오퍼레이션 이 미완료됨
    5 알림 notification 에러는 없지만 상태 변경
    6 정보 information 시스템 오퍼레이션 정보
    7 디버깅 debuging 장애처리
    8 제외 none 제외

  • 로그 기록 방법
    - /var/log/messages 로그파일 선택
    - /dev/console 로그기록을 콘솔에 남김
    - user1, root, * 로그기록을 사용자나 모든 사용자에게 남김
    - @IP:포트 로그기록을 특정호스트나 서버에게 남김

rsynk

  • rsync 리눅스 백업
    • -a 심볼릭, 속성, 퍼미션, 소유권 보존
    • -v 진행상황
    • -z 전송시 압축
    • -u 새로운 파일 덮어쓰지 않음
  • 동기화 옵션
    • --delete : 백업 대상에 이전에 백업한 파일이 없을 시 같이 삭제
    • --progress : 퍼센트 보여줌
  • ver 7일 경우

    yum install rsync -y
    yum install xinetd -y
    service rsyncd restart
    netstat -lntup |grep rsync
    rsync 873/tcp
    firewall-cmd

  • rsync세팅
    • 대상자 설정
      • xinet에서 rsysc 설정
        • vi /etc/rsyncd.conf

          [서버이름]
          path=/  < 백업할 경로지정
          hosts allow= 허용할 IP입력
          hosts deny= 차단 IP입력
          uid=0
          gid=0
          **파일 없을 경우 생성한다**

          service rsyncd restart

    • client에서 받아오기 ==(192.168.10.10에서 진행)
      • rsync -avz --progress 서버IP:/경로 ./ [복사할 위치지정]
        or
        rsync -avz --progress --delete 서버IP:/경로 ./ [복사할 위치지정]
  • 1분마다 /var/log를 동기화하는 스크립트(15일이 지난 파일은 삭제)
    • mkdir -p /backup/log
    • vi /backup/log/sevas.sh #!/bin/bash for i in 192.168.10.10
      do
      mkdir -p /backup/log/log_idate=i date=(date "+%Y-%m-%d %H시 %M분")
      echo "" >> /backup/log/log.txt
      echo "" >> /backup/log/log.txt
      echo "### ["$i"] / ["$date"] 백업작업 ###" >> /backup/log/log.txt echo "" >> /backup/log/log.txt
      rsync -avz --progress i:/var/log /backup/log/log_i >> /backup/log/log.txt
      find /backup/log/log_$i -ctime +15 -exec rm -rf {} \;
      done
    • ssh키 인증 로그인
      • (접속을 해야 하는 곳에서)
        ssh-keygen -t rsa
        cd /root/.ssh
        scp id_rsa.pub 192.168.1.10:/root/.ssh/authorized_keys
        chmod 755 sevas.sh

vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
/1 * * root run-parts /backup/log
or
/1 * * * * root /backup/log/sevas.sh

  • /etc/rc.d/init.d/crond restart
  • date 명령 -d '1 day ago' <====어제
    -d '1 day' <====1일후
    -d 'this friday' <===이번금요일
    -d 'last monday' <===지난 월요일
    -d 'next tuesday' <===다음 화요일
profile
:) GITHUB: https://github.com/YJ2123412

0개의 댓글