[ 분석할 로그를 읽어들이는 2가지 방법 ]
1. wget으로 로그 다운받아 읽기
/var/www 위치가 wget의 기본 위치이므로 분석하고 싶은 로그를 cp 명령어로 /var/www로 옮긴다
chmod 777 [로그파일]로 외부에서 접근 가능할 수 있도록 설정한다.
파일을 받고싶은 위치에서 wget http://[ip]/[log이름] 명령어를 이용해 파일을 다운 받는다.
2. ssh로 접속해 직접 로그 읽기
공격한 위치에서 로그가 있는 서버로 ssh 접속한다.
로그 파일이 있는 곳에서 파일을 직접 읽는다.
[ PCRE ]
- 정규표현식, Perl Compatible Regular Expression)
- 패턴을 저장, 추출, 검색 등을 할 때 사용
- ex) IP주소, 전화번호, 주민등록번호, 이메일 등등
[ DLP (Data Loss Prevention) ]
- 개인정보가 외부로 유출되지 않도록 하는 SW, 자체 PC를 검색하기도함 (패턴으로 검색)
[ 특수문자 ]
- ^ : 캐럿 (carrot)
- ~ : 틸드 (tilde)
- * : 아스테리스크 (Asterisk)
- [ ] : 브라킷 (bracket)
- . : 닷(dot), 포인트
- @ : at
[ 정규식 사용법 ]
- [0-9] : 숫자만 사용가능
- {3} : 3자리 사용 가능
- {1,3} : 1자리~3자리 사용 가능
- ex) [0-9]{1,3} : 0~999
- A{3} : A를 세자리로 만듦 AAA
- [a-z] : a부터 z까지
- [a-z]{3} : a부터 z까지 3번 사용 : aaa,aab,aac,....,abc,.....,kjh,.....,zzz -----> 알파벳 소문자3자리
- [a-z]{1,3} : a부터 z까지 1~3번 사용 : a,b,c,d,....,aa,ab,ac,....,aaa,aab,aac,....,zzz
- [^a-z] : 소문자 아닌것
- [^'] : '가 아닌 것
[ Escape ]
- 특수문자의 Escape 처리를 해주어야 함
- Escape : 특수문자가 고유한 기능을 못하게 하는 것
- 특수문자 앞에 \를 붙이는 것
[ AWK 명령어 ]
- awk는 파일로부터 레코드(record)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 프로그램
- awk 명령의 입력으로 지정된 파일로부터 데이터를 분류한 다음, 분류된 텍스트 데이터를 바탕으로 패턴 매칭 여부를 검사하거나 데이터 조작 및 연산 등의 액션을 수행하고, 그 결과를 출력하는 기능
- awk는 기본적으로 입력 데이터를 라인(line) 단위의 레코드(Record)로 인식
- 각 레코드에 들어 있는 텍스트는 공백 문자(space, tab)로 구분된 필드(Field)들로 분류
[ sed 명령어 ]
- 치환(다른 글자로 바꿀 때)
- 공식: sed 's/old/new/g'
[ sort -u 명령어 ]
- 중복제거만 함
[ uniq -c 명령어 ]
- 중복을 제거하고 왼쪽에 개수(count)를 표시
[ sort -n 명령어 ]
- 오름차순
- sort -rn : 내림차순
[ sort -k 명령어 ]
- 키 기준으로 정렬
[ head & tail 명령어 ]
- head : 위에서부터 읽어들임
- tail : 아래에서부터 읽어들임
- 시간순으로 정리할 경우(로그) : head는 오래된 것, tail은 최근 것
- 내림차순으로 정리하면 head는 많은 것부터, tail은 적은 것 부터