728x90
리눅스에서 세션 타임아웃(Session Timeout) 설정은 보안이나 자원 관리를 위해 일정 시간 동안 사용자의 활동이 없으면 자동으로 세션(특히 쉘 세션)을 종료시키는 기능입니다.
이를 설정하는 방법은 사용하는 쉘 종류(ex. bash, Zsh ..)에 다라 다르지만, 본 글에서는 일반적으로 많이 사용하는 Bash 쉘 기준으로 설명합니다.
Bash에서 세션 타임아웃 설정
1. TMOUT 환경 변수 사용
Bash에서는 TMOUT 이라는 환경 변수를 사용하여 타임아웃을 설정할 수 있습니다.
export TMOUT=600
위 설정은 사용자가 600초 동안 아무 입력이 없으면 세션을 종료합니다.
~/.bashrc 또는 /etc/profile 파일에 추가하면 사용자 또는 시스템 전체에 적용할 수 있습니다.
예시 : 사용자 기준 설정
echo "export TMOUT=600" >> ~/.bashrc
source ~/.bashrc
예시 : 시스템 전체 설정
echo "export TMOUT=600" >> /etc/profile
보안 강화 : 자동 로그아웃 강제
사용자가 TMOUT을 수정하지 못하도록 하려면 readonly로 설정할 수 있다.
readonly TMOUT=600
export TMOUT
Zsh에서 세션 타임아웃 설정
Zsh에서는 다음과 같은 설정을 사용합니다.
export TMOUT=600
autoload -Uz add-zsh-hook
add-zsh-hook -Uz idle-exit
idle-exit() {
exit
}
또는 .zshrc에 아래 한 줄만 써도 기본 동작합니다.
export TMOUT=600
기타 고려사항
- sudo 명령이나 루트 계정에는 별도로 설정해야 합니다.( /root/.bashrc 등)
- screen이나 tmux 세션의 경우 자체 타임아웃 기능을 설정해야 합니다.
- SSH 연결 자체의 타임아웃도 별도 설정이 가능합니다.(ex. ClientAliveInterval / ClientAliveCountMax)
SSH 연결 타임아웃 설정 예(서버 측)
# etc/ssh/sshd_config
ClientAliveInterval 300
ClientAliveCountMax 0
300초 동안 아무 활동이 없으면 세션 종료
변경 후 systemctl restart sshd 필요
728x90
'정보보호' 카테고리의 다른 글
| 리눅스 파일 속성 설정 명령어 chattr (0) | 2025.05.26 |
|---|---|
| 랜섬웨어의 개념 및 예방조치 (0) | 2025.05.25 |
| linux umask 개념 및 umask값 설정 (0) | 2025.05.24 |
| FTP의 개념 및 보안취약성 (0) | 2025.05.18 |
| linux chmod 명령어 사용방법과 특수권한(setuid, setgid, sticky bit) (0) | 2025.05.11 |