실습> 히스토리 변수 조작을 막는 방법
이 실습을 진행하기 위해서는 아래와 같은 내용을 알고 있어야 한다.
bash에서 history의 역할
/etc/profile 의 역할
히스토리에 대한 내용
/dev/null 에 대한 내용
readonly 에 대한 내용
실습 진행은 일반 유저와 관리자 모두 가능하다.
# echo $HISTSIZE
1000
# HISTSIZE=0 <-- 메모리에 명령어를 저장하지 않는다는 의미이다.
# <-- 방향키 위로 올리면 안올라간다.
# pwd
# ls
# echo $HISTFILE
/root/.bash_history
# HISTFILE=/dev/null
# set | grep HIST
HISTCONTROL=ignoredups
HISTFILE=/dev/null
HISTFILESIZE=1000
HISTSIZE=0
# exit
다시 로그인해서 이전 로그인시 명령어를 확인한다.
# tail .bash_history
<-- 결론 : 변조가 되었으므로 명령어가 기록이 안된다.
환경변수 조작을 막는 방법은 읽기 전용으로 변수를 변경하면 된다.
형식 : readonly 환경변수
/etc/profile : 시스템에 모든 사용자가 로그인을 하면 실행되는 스크립트 파일로
이 파일 안에 넣어야 한다.
# vi /etc/profile
:
:(생략)
HISTFILESIZE=50000
HISTSIZE=50000
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
login as: user1
user1@192.168.101.101's password:
$ set | grep HIST
HISTCONTROL=ignoredups
HISTFILE=/home/user1/.bash_history
HISTFILESIZE=50000
HISTSIZE=50000
HISTSIZE 변수를 삭제해보면 readonly 이므로 삭제가 안된다.
$ unset HISTSIZE
-bash: unset: HISTSIZE: cannot unset: readonly variable
HISTSIZE 변수를 0으로 변경하면 readonly 이므로 값 변경이 안된다.
$ HISTSIZE=0
-bash: HISTSIZE: readonly variable
HISTFILE 변수를 /dev/null로 변경하면 readonly 이므로 값 변경이 안된다.
$ HISTFILE=/dev/null
-bash: HISTFILE: readonly variable
이 방법의 문제점은 .bash_history 파일을 삭제하는 것이다.
$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc
$ rm -f .bash_history
$ ls -a
. .. .bash_logout .bash_profile .bashrc
$ exit
파일 삭제를 막기 위해서는 파일에 속성을 변경하면 된다.
-a : 파일의 내용을 추가하는 것은 가능하지만 파일 삭제는 못한다.
# rm -f ~user1/.bash_history
# install -m 644 -o user1 -g user1 /dev/null ~user1/.bash_history
# chattr +a ~user1/.bash_history
# lsattr ~user1/.bash_history
-----a---------- /home/user1/.bash_history
$ rm -f .bash_history
rm: cannot remove `.bash_history': 명령을 허용하지 않음
$ ln -sf /dev/null .bash_history
ln: cannot remove `.bash_history': 명령을 허용하지 않음
$ chattr -a .bash_history
chattr: 명령을 허용하지 않음 while setting flags on .bash_history
'Linux > 보안장비 운용' 카테고리의 다른 글
| /etc/rsyslog.conf (0) | 2022.03.04 |
|---|---|
| rsyslog 데몬 (0) | 2022.03.04 |
| history (0) | 2022.03.04 |
| /var/log/btmp (0) | 2022.03.04 |
| 로그 삭제 툴 Zap3 사용하기 (0) | 2022.03.04 |