Linux History 명령을 통한 계정 작업내역 관리

진행하고 있는 프로젝트에서 관리서버의 접근통제등의 이슈로 계정에서 접근과 작업내역의 모니터링이 요구되었다.

시스템의 접근의 경우에는 접근로그를 통해 풀었으며, 작업내역에 대한것은 “history” 명령을 통해 풀기로 했는데…

타계정의 history는 어떻게 관리 해야 할지… 명령들은 얼마나 보관하는지등등 알아봐야할 것들이 많았다…

  1. 조사:history명령을 통해 작업내역을 모니터링 할수 있을까? 기본 설정만으로 확인해 보았다.
    • 기본적으로는 history 명령시 아래와 같이 출력된다. 그래서 언제 명령을 내렸는지 확인 하기가 힘들다.
    • 스크린샷 2016-06-12 오전 5.22.59.png
    • 로그오프하게 되면 명령이 사라진다.
  2. 분석:위의 두가지 문제점만 해결된다면 크게 어려울것 같지 않았다, 
    • 누가 언제 어떤 명령을 내렸는지 를 알수있고, 그리고 그것을 얼마나 보관할지 결정만 한다
  3. 조치:history 에서 시간이 남도록하고, 그것을 내가 원하는 만큼 남겨보자!
    • history 내역에 시간 남기기
      • 여러가지 방법이 있지만 가장 좋은것은 /etc/profile 파일의 제일 아래 아래의 구문을 넣어준다.
      • export HISTTIMEFORMAT=’%Y-%m-%d %H:%M:%S  ‘
      • 그리고 해당파일을 적용해준다.
      • [root@dev001 ~]# source /etc/profile
    • 스크린샷 2016-06-12 오전 6.01.01.png
    • 위와같이 날짜와 시간이 나오는것을 확인 할수 있다.
  4. history 저장 옵션 변경
    • /etc/profile 파일을 열어 아래 구문을 변경한다.
      • HISTSIZE //저장되는 갯수를 의미하며
      • HISTFILESIZE //파일의 크기를 의미한다.
      • 필자는 10000으로 설정했다.
  5. 이것들만 적용하더라도 모니터링은 가능할것으로 보인다. 하지만 사용자가 임의로 history를 삭제하거나, 지운다면 도리가 없다. 그래서 다음편으로는 히스토리 파일을 효율적으로 백업하는 방법 혹은 사용자가 접근하지 못하도록 하는 방법을 만들어봐야겠다
참고 URL
http://www.tecmint.com/history-command-examples/
http://egloos.zum.com/genes1s/v/2883035
http://se.uzoogom.com/83