반응형
HashiCorp Vault의 SSH OTP(One-Time Password) 방식을 통해 SSH 접속을 관리하는 방법
1. Vault 서버 설정 (Node141 - 192.168.0.141)
Vault 서버 주소와 인증 토큰 설정
export VAULT_ADDR=http://127.0.0.1:8200
export VAULT_TOKEN="hvs.OXgyLZfl8wnutNnda1FK3Cd2"
Vault 로그인
vault login "$VAULT_TOKEN"
Vault 서버 상태 확인
vault status
활성화된 경로 확인
vault secrets list
SSH Secret Engine 활성화
vault secrets enable ssh
OTP Role 생성
vault write ssh/roles/otp_role \
key_type=otp \
default_user="vuser2" \
cidr_list="0.0.0.0/0" \
ttl=60
2. SSH 서버 설정 (Node142 - 192.168.0.142)
Vault 및 Vault SSH Helper 설치
sudo apt install -y unzip
wget https://releases.hashicorp.com/vault/1.18.0/vault_1.18.0_linux_amd64.zip
unzip vault_1.18.0_linux_amd64.zip
sudo mv vault /usr/local/bin/
rm -f LICENSE.txt vault_1.18.0_linux_amd64.zip
wget https://releases.hashicorp.com/vault-ssh-helper/0.2.1/vault-ssh-helper_0.2.1_linux_amd64.zip
unzip vault-ssh-helper_0.2.1_linux_amd64.zip
sudo mv vault-ssh-helper /usr/local/bin/
rm -f vault-ssh-helper_0.2.1_linux_amd64.zip
export VAULT_ADDR=http://192.168.0.141:8200
export VAULT_TOKEN="hvs.OXgyLZfl8wnutNnda1FK3Cd2"
Vault Server와의 연결 확인
curl -s http://192.168.0.141:8200/v1/sys/health | jq
Vault SSH Helper 설정 파일 생성
sudo mkdir -p /etc/vault-ssh-helper.d
sudo tee /etc/vault-ssh-helper.d/config.hcl > /dev/null <<EOF
vault_addr = "http://192.168.0.141:8200"
namespace = ""
tls_skip_verify = true
ssh_mount_point = "ssh"
allowed_roles = "otp_role"
EOF
config.hcl 검토
vault-ssh-helper -verify-only -config /etc/vault-ssh-helper.d/config.hcl
PAM 구성 수정
/etc/pam.d/sshd 파일을 수정하여 Vault SSH Helper가 OTP 인증을 처리할 수 있도록 PAM 모듈을 추가합니다.
echo "auth requisite pam_exec.so quiet /usr/local/bin/vault-ssh-helper -config=/etc/vault-ssh-helper.d/config.hcl" | sudo tee -a /etc/pam.d/sshd
SSH 설정 변경
/etc/ssh/sshd_config 파일에서 다음 설정을 추가/수정하여 OTP 인증을 활성화합니다.
sudo tee -a /etc/ssh/sshd_config > /dev/null <<EOF
ChallengeResponseAuthentication yes
PasswordAuthentication no
EOF
SSH 서비스 재시작
sudo systemctl restart sshd
3. Vault에서 OTP 생성 및 SSH 접속 테스트
OTP 생성 (Vault 서버에서 실행)
vault write ssh/creds/otp_role ip="192.168.0.142"
OTP는 key 필드에 표시됩니다.
SSH 클라이언트 (Node143 - 192.168.0.143)에서 SSH 접속
SSH 접속을 시도합니다.
ssh vuser2@192.168.0.142
728x90
반응형
'리눅스' 카테고리의 다른 글
우분투에서 HashiCorp Vault를 설치하고 서버 모드로 설정하는 방법 (2) | 2024.11.15 |
---|---|
HashiCorp Vault UI에 접속할 수 있는 사용자 계정 및 비밀번호를 생성하는 방법 (0) | 2024.11.15 |
sleep, wait, timeout 명령어 비교 및 사용법 (0) | 2024.11.13 |
우분투에서 HashiCorp Boundary를 설치하고 설정하는 방법 (0) | 2024.11.12 |
SSL 인증서의 만료일을 확인하는 방법 (0) | 2024.11.12 |