서론
서버 관리를 하다 보면 특정 사용자, 특히 자동화된 작업을 위한 사용자 계정의 SSH 로그인 시 불필요한 메시지가 표시되지 않도록 설정해야 할 때가 있다. 본 포스팅에서는 PAM(Pluggable Authentication Modules)을 활용하여 특정 사용자(예:
cooluser
)에 대해 MOTD(Message of the Day) 표시를 비활성화하는 방법을 살펴보고자 한다.MOTD란?
MOTD(Message of the Day)는 사용자가 시스템에 로그인할 때 표시되는 메시지이다. 일반적으로 시스템 정보, 공지사항, 보안 알림 등을 포함할 수 있다. 그러나 자동화된 작업이나 스크립트를 위한 사용자 계정의 경우 이러한 메시지가 불필요하거나 오히려 자동화 흐름을 방해할 수 있다.
특정 사용자에 대한 MOTD 비활성화 방법
1. SSH 데몬의 PAM 설정 파일 편집
먼저 SSH 데몬의 PAM 설정 파일을 편집한다:
sudo nano /etc/pam.d/sshd
2. PAM 규칙 추가하기
파일을 열면 다음 내용을 추가한다. 이 규칙들은 일반적으로 파일의 끝부분에 위치하며, 특히 MOTD 관련 설정 바로 앞에 추가해야 한다:
session [success=1 default=ignore] pam_succeed_if.so user = cooluser session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate
pam_motd.so motd=/run/motd.dynamic
: 시스템 상태, 보안 업데이트 등의 정보를 실시간으로 출력합니다.
pam_motd.so noupdate
:/etc/motd
의 정적 메시지를 출력하거나 업데이트 확인을 비활성화합니다.
3. 설정 분석
위 설정의 의미를 자세히 살펴보면 다음과 같다:
- 첫 번째 줄:
session [success=1 default=ignore] pam_succeed_if.so user = cooluser
- 현재 로그인하는 사용자가
cooluser
인지 확인한다. - 만약 조건이 참(사용자가
cooluser
)이면, 다음 PAM 규칙 1개를 건너뛴다(success=1
). - 조건이 거짓(다른 사용자)이면, 이 규칙은 무시된다(
default=ignore
).
- 두 번째 줄:
session optional pam_motd.so motd=/run/motd.dynamic
- 동적 MOTD 파일을 표시하는 규칙이다.
- 'reversessh' 사용자는 첫 번째 규칙에 의해 이 규칙을 건너뛰게 된다.
- 세 번째 줄:
session optional pam_motd.so noupdate
- MOTD 업데이트를 비활성화하는 규칙이다.
- 모든 사용자에게 적용된다.
4. 변경사항 저장 및 적용
변경사항을 저장하고 편집기를 종료한 후, 변경사항이 적용되었는지 확인하기 위해 해당 사용자로 SSH 접속을 시도해본다.
활용 사례
이 설정은 다음과 같은 상황에서 특히 유용하다:
- 자동화된 배포 시스템: CI/CD 파이프라인에서 사용되는 사용자 계정
- nologin유저: 쉘 로그인이 불가능하도록 설정된 특수 사용자로, 시스템 서비스 실행이나 파일 권한 관리 등의 목적으로만 사용되는 계정(
PrintLastLog yes
→no
변경 권장)
- 스크립트 기반 모니터링: 자동화된 모니터링 시스템에서 사용되는 계정
- 백업 프로세스: 정기적인 백업을 위한 사용자 계정
주의사항
- 시스템 보안 공지가 MOTD를 통해 전달되는 경우도 있으므로, 중요한 사용자 계정에는 이 설정을 적용하지 않는 것이 좋다.
- PAM 설정을 변경할 때는 항상 기존 SSH 세션을 유지한 상태에서 작업하여, 실수로 시스템 접근이 차단되는 상황을 방지해야 한다.
결론
PAM의 유연한 규칙 시스템을 활용하면 특정 사용자에 대해 MOTD 표시를 쉽게 비활성화할 수 있다. 이는 자동화된 프로세스의 로그 출력을 깔끔하게 유지하고, 불필요한 정보 처리를 방지하여 시스템 사용 효율성을 높이는 데 도움이 된다.