Linux Terminal session timeout
리눅스 OS는 다중 사용자(Multi User) 시스템으로 한 서버에 여러 명의 사용자가 접속해서 사용할 수 있습니다. 서버에서 작업 후 안전하게 로그아웃을 하는 반면에 아무런 작업도 하지 않은 상태로 서버에 접속해 있는 경우나 터미널 세션을 종료하지 않고 악의적인 목적으로 접속을 할 수 있기 때문에 기본적으로 리눅스 터미널 세션은 시간 설정을 하여 자동으로 로그아웃을 하는 것이 보안적인 측면에서도 좋습니다.
터미널 timeout 개념
✔ timeout이 설정된 서버에 로그인
리눅스 OS가 설치된 서버에 직접 접속한 경우를 제외하면 대부분 다른 컴퓨터에서 remote program을 이용해 리눅스 서버로 접속하게 됩니다. 대부분 보안상 직접 root로 로그인으로 접속하지 못하게 되어있어 일반 사용자 계정으로 로그인을 합니다.
로그인 화면
login as:
testuser 계정 로그인 예시
login as: testuser
testuser@192.168.1.111's password:
Last login: Wed Aug 17 09:04:04 2022 from 192.168.1.111
testuser@server $
✔ timeout이 설정된 서버에 자동 로그아웃
root계정으로 스위칭한 후 환경변수를 이용하여 설정된 터미널 timeout을 확인합니다. 그 이후 timeout가 설정된 초단위(600초)가 지난 후 자동으로 로그아웃이 되는 모습입니다.
터미널 자동 로그아웃 예시
login as: testuser
testuser@192.168.1.111's password:
Last login: Wed Aug 17 09:04:04 2022 from 192.168.1.111
testuser@server $ su -
Password:
Last login: Wed Aug 17 09:05:14 2022 on pts/2
root@server # echo $TMOUT
600
root@server # timed out waiting for input: auto-logout
Connection to server closed.
testuser@server $
위 예시 처럼 터미널 세션에 timeout가 600초로 설정이 되어있고 아무런 동작을 하지 않으면 600초 뒤 "timed out waiting for input: auto-logout"이 프롬프트에 출력이 되고 "Connection to server closed."가 출력되며 접속한 사용자 계정의 터미널 세션이 종료되게 됩니다.
전체 사용자 로그아웃 시간 설정
리눅스 서버의 전체 사용자 계정에 대해 터미널 세션 timeout을 설정하려면 편집기 또는 리다이렉션을 이용하여 /etc/profile에 timeout을 설정합니다. 설정 전 변수 이름은 TMOUT로 설정하며 초단위로 설정을 합니다.
✔ timeout 변수명
TMOUT={초단위 시간 입력}
또는
export TMOUT={초시간 단위 입력}
✔ /etc/profile에 터미널 timeout 설정
$ vim /etc/profile
root@server # vim /etc/profile
...
TMOUT=300
또는
$ echo "TMOUT=300" >> /etc/profile
root@server # echo "TMOUT=300" >> /etc/profile
✔ /etc/profile에 설정 적용
재부팅 하지 않고 바로 적용을 하기 위해 source명령어를 이용하여 /etc/profile을 바로 적용한 후 터미널 timeout이 설정되었는지 확인합니다.
$ source /etc/profile
root@server # source /etc/profile
root@server # echo $TMOUT
300
특정 사용자 계정 로그아웃 시간 설정
리눅스 특정 사용자에게도 개별로 설정할 수 있으며 이미 전체 사용자에 터미널 세션 timeout이 설정이 되어있어도 특정 사용자들만 따로 timeout 시간을 다르게 설정할 수도 있습니다. 특정 사용자로 로그인 후 숨김 파일로 된 bashrc를 편집하거나 리다이렉션을 이용하여 timeout를 설정합니다.
✔ 특정 사용자 .bashrc 위치확인
$ ls -al
testuser@server $ cd
testuser@server $ ls -al
drwx------. 12 testuser root 4096 Aug 8 19:06 .
drwxrwxr-x. 7 root user 72 Jun 24 17:55 ..
-rw-------. 1 testuser user 28734 Aug 17 11:36 .bash_history
-rw-r--r--. 1 testuser user 18 Apr 1 2020 .bash_logout
-rw-r--r--. 1 testuser user 193 Feb 14 2022 .bash_profile
-rw-r--r--. 1 testuser user 494 Jul 5 16:07 .bashrc
drwxr-xr-x 4 testuser root 4096 Aug 3 13:15 file
특정 사용자로 로그인을 하게 되면 자동으로 특정 사용자의 홈디렉토리로 이동하는데 혹시 다른 경로에 있다면 cd를 입력하여 홈디렉토리로 이동하시면 됩니다.
✔ ~/.bachrc 에 터미널 timeout 설정
vim 편집기를 이용해 TMOUT=600을 넣어준 후 저장하고 빠져나옵니다.
$ vim .bashrc
testuser@server $ vim .bashrc
...
TMOUT=600
또는
$ echo "TMOUT=300" >> .bashrc
testuser@server $ echo "TMOUT=600" >> .bashrc
✔ .bashrc에 설정 적용
재부팅하지 않고 바로 적용을 하기 위해 source명령어를 이용하여 .bashrc를 바로 적용한 후 터미널 timeout이 설정되었는지 확인합니다.
$ source .bashrc
testuser@server $ source .bashrc
testuser@server $ echo $TMOUT
600
'IT > 리눅스 이론' 카테고리의 다른 글
리눅스 pwquality.conf 패스워드 복잡성 보안 취약점 조치 가이드 (14) | 2022.09.17 |
---|---|
리눅스 일반계정으로 root권한 실행 방법(sudoers 파일 수정하기) (60) | 2022.08.24 |
리눅스 루트 파티션 구성 디렉토리 종류와 의미 (51) | 2022.08.11 |
리눅스 파티션 기초 - 리눅스 파티션에 대한 이해 (59) | 2022.08.06 |
리눅스 파일 소유권 허가권 - 리눅스 파일시스템 기초 (60) | 2022.07.31 |
댓글