概要
PAM (Pluggable Authentication Modules) は通常の sshd 認証と違い外部の認証機構などを使って認証する仕組みです
sshd と組み合わせることで OTP などを実現できます
今回は Ubuntu 24.04 で pam を設定する方法を紹介します
環境
- macOS 26.3.1
- docker 29.3.0
- Ubuntu 24.04
pam.d/sshd
# PAM構成の基本
auth required pam_unix.so nullok_secure
account required pam_unix.so
session required pam_unix.so
session required pam_loginuid.so
Dockerfile
FROM ubuntu:24.04
RUN apt-get update && \
apt-get install -y openssh-server && \
mkdir /var/run/sshd
# ユーザー作成
RUN useradd -m -s /bin/bash testuser && echo "testuser:testpass" | chpasswd
# 既存設定をリセットし、必要な設定だけを新規作成
RUN rm -rf /etc/ssh/sshd_config.d/* && \
echo "Port 22" > /etc/ssh/sshd_config && \
echo "ListenAddress 0.0.0.0" >> /etc/ssh/sshd_config && \
echo "PermitRootLogin no" >> /etc/ssh/sshd_config && \
echo "KbdInteractiveAuthentication yes" >> /etc/ssh/sshd_config && \
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config && \
echo "UsePAM yes" >> /etc/ssh/sshd_config
# PAM設定コピー
COPY pam.d/sshd /etc/pam.d/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
compose.yaml
services:
ssh:
build: .
container_name: ssh-challenge
ports:
- "2222:22"
動作確認
-
docker compose up -d --build
-
ssh -o PreferredAuthentications=keyboard-interactive testuser@localhost -p 2222
最後に
Ubuntu24.04 の sshd の場合設定が少し特殊なので注意しましょう
基本はデフォルトを削除し新規に作成するのが確実です
次回は pam を使ってチャレンジレスポンス認証を試します
0 件のコメント:
コメントを投稿