보안

리눅스 서버 보안 기본2️⃣ (주제 : 강력한 비밀번호 관리 및 다단계(멀티) 인증 : 복잡한 비밀번호 정책 설정 , PAM을 이용한 OTP , FIDO2 등의 현업에서 사용하는 다단계 인증 적용 방법 안내)

<Bossam> 2025. 5. 6. 16:37
반응형

 

안녕?! 오늘은 두 번째 리눅스 보안 시간으로 비밀번호 관리에 대해 이야기하려고 해. 

요즘 세상은 온라인에 개인 정보가 여기 저기 다 흩어져 있어서, 아무나 드나들 수 있는 홈페이지를 관리하면 큰일 나! 마치 현관문 비밀번호를 <1234>로 해놓고 사는 것과 똑같지. 상상만 해도 아찔하지? 자, 오늘은 비밀번호 관리를 현업에 입장에서 어떻게 하는지 소개해 줄게

 

 

🏢 첫 번째! 비밀 번호 : 복잡하고 강력한 비밀번호 만들기

 

집에 귀한 물건이 많을수록 현관문 비밀번호를 복잡하고 어렵게 설정하는 것처럼, 온라인 계정도 마찬가지다. 쉬운 비밀번호, 유추할 수 있는 비밀번호는 해커한테 "여기 귀중한 물건 많아요~"라고 광고하는 거나 다름이 없다. 그럼! 강력한 비밀번호를 만드는 방법은 무엇이 있을까?

 

  • 길게! 아주 길게 : 최소 9자 이상으로 만들어 보자
  • 숫자, 영어, 대문자, 소문자, 특수문자 섞기!! 다양한 조합으로 비밀번호를 설정하면 쉽게 알 수 없겠지?
  • 개인 정보는 절대 금지 : 유추할 수 있는 번호(예를 들어 전화번호 뒷자리, 아이디와 동일한 거 등)는 금지 
  • 단어 조합도 위험해 : 단어도 브루드포스 공격으로 다 뚫리는 거 잊지 마
  • 사이트마다 다른 비밀번호 쓰기 : 한 곳이 뚫리더라도 다른 곳은 살아야지. (Feat : 산사람은 살아야지~)

🏤 두 번째! : 다단계 인증 (MFA)으로 강력하게!!

아무리 강력한 비밀번호로 관리한다고 하더라도 100% 안전하다고 볼 수 없는 거 알지? 튼튼한 자물쇠는 채워졌지만, 창문은 활짝 열린 거랑 똑같아. 자! 그래서 요즘 현업에서는 다단계 인증 (MFA : Multi-Factor Authentication )이라는 2단계 인증 시스템을 갖추고 있어

 

다단계 인증은 다양한 인증 방식과 연동할 수 있어, 

가까운 데는 카카오톡 연동도 가능하고 SMS  등과 같이 있어. 그럼 무엇으로 연동이 가능한지 볼까?

 

구분 설명
OTP (One-Time-Password) 스마트폰 앱 (대표적으로 구글 Authenticator )이 생성하는 일회용 비밀번호야. 매번 로그인 할 때마다 새로운 비밀번호로 진행 해야 하기 떄문에 매우 안전해
FIDO2(Fast Identity Online 2) USB 형태의 보안 키나 스마트폰 생체 인증(지문,얼굴인식) 기능을 이용하는 인증 방식이야. 비밀번호 없이도 로그인 할 수 있어서 편리하고 강력해
SMS 인증 휴대폰 문자로 "인증번호"가 전송되고 그 번호를 입력하는 방식이야. 휴대폰 번호가 탈취될 위험이 있어 보안은 조금 떨어져. 
이메일 인증 이메일로 전송된 링크를 클릭 하거나 인증번호가 전송되고 입력하는 방식이야
생체 인식(지문 , 얼굴인식) 스마트폰이나 노트북에 내장된 지문 센서나 얼굴 인식 기능을 이용하는 방식이야

 

 

🏦 세 번째! PAM (Pluggable Authentication Modules) 이란 무엇일까?

 

두 번째 까지는 이해되었지? 이제는 조금 어려운 이야기를 해보려고 해. 바로 PAM (Pluggable Authentication Modules) 이야. 이건 마치 레고 블록처럼 다양한 인증 방식을 시스템에 쉽게 연결하고 사용할 수 있도록 해주는 기술이야. 

예를 하나 들어볼까? 비밀번호 인증, OTP 인증 , FIDO2 인증 등 다양한 인증방식이 있잖아. 이걸 네가 원하는 대로 골라서 시스템에 적용할 수 있게 해주는 기술이야.

 

PAM을 사용하면 시스템 관리작 어떤 인증 방식을 사용할지 유연하게 설정할 수 있는 장점이 있고, 새로운 인증 방식이 나오더라도 쉽게 추가 가능 한 게 장점 중에 장점!!


자, 두 번째 나온 MFA 방식에 대해 좀 풀어서 알려줄게

 

기능 비밀번호 인증 OTP인증 FIDO2 인증  SMS 인증 이메일 인증
보안성 낮음 ⬇️  높음⬆️ 매우 높음⬆️⬆️ 중간  ➡️ 중간 ➡️
편의성 높음⬆️ 중간 높음⬆️ 높음⬆️ 높음⬆️
추가장비 없음 스마트폰 보안 키 (Option) 없음 없음
네트워크 디펜더스(의존성) 낮음⬇️  높음⬆️ 낮음 ⬇️  높음⬆️ 높음⬆️
피싱 공격 방어 취약  강함⬆️ 매우 강함⬆️⬆️ 취약 ⬇️  ⬇️  취약 ⬇️  ⬇️ 

 

실전으로 넘어가 보자!

🍉실전! PAM을 이용한 다단계 인증 적용 방법

 

PAM은 주로 리눅스 같은 서버 환경에서 많이 사용해. 간단하게 OTP나 FIDO2를 PAM에 적용하는 예시를 알려 줄게

 

Chapter1. OTP 설치

✅ Google Authenticator를 예로 설명해볼게

 

1️⃣ 필요 패키지를 설치해보자

 

sudo apt-get install libpam-google-authenticator

 

2️⃣ Google Authenticator 설정

google-authenticator

~/.google_authenticator // 파일 생성 확인

 🚡 해당 파일이 있는 비밀 키와 QR 코드를 Google Authenticator앱에 등록해줘야 해

 

3️⃣ PAM 설정 파일 수정

/etc/pam.d/sshd #파일 열어

include common-auth 또는 auth required pam_permit.so #줄 앞에 다음 줄을 추가

auth required pam_google_authenticator.so nullok

 

(❗️ nullok 옵션은 OTP 인증이 설정되지 않은 사용자에게는 비밀번호 인증만으로 로그인을 허용한다는 의미야 )

 

4️⃣ SSH 설정 수정

vi /etc/ssh/sshd_config 


hallengeResponseAuthentication Yes

AuthenticationMethods 필드에 password keyboard-interactive 또는 publickey,password keyboard-interactive # 둘중 하나 추가

wq

sudo systemctl restart sshd #ssh 서비스 재시작

 

✈️ 마무리

 

오늘 알려준 비밀번호 관리법은 다단계 인증(MFA)으로 더욱 튼튼하고 강력하게 서버 관리를 해줄 수 있어. 

한번 설정했다고 끝이 아니고 (개인은) 비밀번호는 주기적으로 변경해 주고 (서버관리자는) 새로운 보안 위협에 대해서 꾸준한 관심을 가져야 해. 

 

 

반응형