사용자 쉘의 환경 설정 파일에서 Session Timeout 값이 설정되어 있는지 확인해야 합니다.
1
2
3
4
5
6
7
# sh, ksh, bash 쉘의 환경 설정 파일 확인grep TMOUT /etc/profile
grep TMOUT ~/.bash_profile
grep TMOUT ~/.bashrc
# csh 쉘의 환경 설정 파일 확인grep autologout /etc/csh.cshrc
$ grep TMOUT /etc/profile
# (출력 없음 - 설정되지 않음)
$ echo $TMOUT
# 또는 너무 긴 시간 설정
TMOUT=7200 # 2시간 - 취약
SSH 설정도 함께 확인
1
2
3
4
5
6
# SSH 서버 설정 확인cat /etc/ssh/sshd_config | grep -E 'ClientAlive'# 양호한 설정 예시ClientAliveInterval 300ClientAliveCountMax 3
3. 조치 방법
sh, ksh, bash 쉘 (시스템 전체 적용) 설정
/etc/profile 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
vi /etc/profile
# 다음 내용 추가 또는 수정 (파일 끝부분에)# Session Timeout 설정 (10분)TMOUT=600export TMOUT
# 또는 readonly로 설정하여 사용자가 변경 못하게readonly TMOUT
export TMOUT
# 설정 적용 (현재 세션)source /etc/profile
사용자별 개별 설정
1
2
3
4
5
6
7
8
9
10
11
12
# 사용자 홈 디렉터리의 .bash_profile 또는 .bashrc에 추가vi ~/.bash_profile
# 추가TMOUT=600export TMOUT
# 또는 SSH 접속 시에만 적용if["$SSH_CONNECTION"];thenTMOUT=600export TMOUT
fi
csh 쉘 설정
1
2
3
4
5
6
7
8
# /etc/csh.cshrc 또는 /etc/csh.login 파일에 autologout 값 설정vi /etc/csh.cshrc
# 다음 내용 추가 (분 단위)setautologout=10# 설정 적용source /etc/csh.cshrc
SSH 서버 설정 (추천 보안 강화)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# /etc/ssh/sshd_config 파일 편집vi /etc/ssh/sshd_config
# 다음 설정 추가 또는 수정# 300초(5분)마다 클라이언트 생존 확인ClientAliveInterval 300# 3회 연속 응답 없으면 연결 종료 (총 15분)ClientAliveCountMax 3# SSH 데몬 재시작systemctl restart sshd
# 또는service sshd restart
특정 사용자 예외 처리
1
2
3
4
5
6
7
8
# 모니터링 등 특수 목적 사용자 예외vi /etc/profile
# 일반 사용자에만 적용if["$USER" !="monitor"]&&["$USER" !="nagios"];thenTMOUT=600export TMOUT
fi