안녕하세요! 쉽게 시작하는 비즈니스 토탈IT, 아이티이지 입니다!

최근 데이터 유출 사례가 급증하면서 기업과 개인의 데이터 보호가 그 어느 때보다 중요해졌습니다. 매년 해킹으로 인한 피해 빈도와 규모가 커지고 있다는 사실, 알고 계셨나요? 이제 단순한 비밀번호 하나만으로는 소중한 서버를 안전하게 지키기 어렵습니다.

이럴 때 가장 확실하고 비용 효율적인 방법이 바로 다중 요소 인증(MFA)을 도입하는 것입니다.
그중에서도 일회용 비밀번호를 활용한 인증 방식은 보안성을 비약적으로 높여줍니다.
오늘은 서버 로그인 시 보안을 한 층 더 강화할 수 있는 구글 OTP 설정 방법에 대해 알아보겠습니다.

1. 구글 OTP란 무엇인가

구글 OTP는 로그인할 때마다 30초마다 새롭게 갱신되는 1회용 비밀번호(One-Time-Password)를 생성해 주는 강력한 보안 시스템입니다. 일반적인 고정 패스워드와 함께 사용하여 해커가 비밀번호를 알아내더라도 OTP 코드가 없으면 접속할 수 없도록 막아주는 든든한 자물쇠 역할을 합니다.

이러한 OTP 시스템은 크게 두 가지로 나눌 수 있습니다.

구글 OTP 이해를 위한 OTP 시스템의 2가지 종류 설명
  • 시간 기반 OTP (TOTP : Time-Based OTP): 일정 시간(보통 30초) 주기로 새로운 비밀번호가 생성됩니다. 오늘 우리가 사용할 Google Authenticator가 대표적인 예입니다.
  • 이벤트 기반 OTP (HOTP : HMAC-Based OTP): 버튼을 누르는 등 특정 인증 이벤트가 발생할 때마다 새로운 비밀번호가 생성됩니다. 실물 보안 키(YubiKey 등)에서 자주 사용됩니다.

서버 관리에 있어서 스마트폰만 있으면 언제 어디서든 코드를 확인할 수 있는 시간 기반의 구글 OTP가 가장 널리 사용되고 있습니다.

2. Google Authenticator 앱 설치 방법

서버에 OTP를 적용하기 위해서는 먼저 우리의 스마트폰에 비밀번호를 띄워줄 애플리케이션이 필요합니다. 설치 과정은 아주 간단합니다.

  1. 사용 중인 스마트폰의 앱 스토어를 엽니다. (아이폰은 App Store, 안드로이드는 Google Play Store)
  2. 검색창에 구글 OTP 앱 또는 Google Authenticator를 검색합니다.
  3. 구글에서 공식으로 제공하는 회색 금고 모양(또는 다채로운 색상의 별 모양) 아이콘의 앱을 다운로드하여 설치합니다.

3. 구글 OTP 계정 등록 방법

구글 OTP 계정 등록 방법

앱을 처음 실행하셨다면 화면이 텅 비어있을 텐데요. 여기에 우리 서버의 정보를 등록해야 합니다.
기본적인 구글 OTP 사용법은 다음과 같습니다.

  1. 스마트폰에서 구글 OTP 앱을 실행합니다.
  2. 화면 오른쪽 아래에 있는 ‘+’ (플러스) 버튼을 누릅니다.
  3. 두 가지 옵션 중 하나를 선택할 수 있습니다.
    • QR 코드 스캔: 컴퓨터 화면에 뜬 QR 코드를 스마트폰 카메라로 비추면 1초 만에 자동으로 등록됩니다. (가장 추천하는 쉬운 방법입니다!)
    • 설정 키 입력: QR 코드를 스캔할 수 없는 환경이라면, 서버에서 제공하는 길고 복잡한 영문/숫자 조합의 설정 키(Secret Key)를 직접 타이핑하여 등록할 수도 있습니다.

계정이 등록되면 화면에 6자리 숫자가 나타나며, 오른쪽에 있는 타이머가 줄어들면서 30초마다 숫자가 계속 바뀌는 것을 볼 수 있습니다.

4. Rocky Linux 서버에 구글 OTP 설치

* 환경 : Rocky 8.7
* EPEL repository 설치. (Google Authenticator 설치하기 위함)

# yum install epel-release

* Google Authenticator 설치

# yum install google-authenticator

* PAM 모듈 설정

# vi /etc/pam.d/sshd
auth required pam_google_authenticator.so ### 구문 추가
PAM 모듈 설정

nullok 옵션을 사용하면 모든 사용자가 인증이 필요한 게 아닌 필요 사용자에 대해서만
인증할 수 있도록 설정 가능합니다. (※ 설정이 필요한 계정으로 로그인하여 생성 진행)

* ssh config 수정(아래 값으로 변경)

# vi /etc/sshd/sshd_config
PermitEmptyPassword no
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes

* 수정 후 ssh 재시작

# systemctl restart sshd
Google authenticator 설정 진행에 대한 캡쳐본

위의 이미지는 Google authenticator 설정 진행에 대한 캡쳐본이며, 아래를 참고해주세요.

# google-authenticator
Do you want authentication tokens to be time-based (y/n) y

– 시간 기반 TOTP로 사용할지 여부 (Y)
– ‘google authenticator‘ 를 설치하고 등록하기

Consider typing the OTP secret into your app manually. Your new secret key is : I6K3FA6OZSJJOHQIPE3264DMIY Enter code from app (-1 to skip) : 12345
– 어플에 등록하면 코드 생성 → 생성된 코드 입력하기

Do you want me to update your "/root/.google_authenticator" file? (y/n) y

– 백업 코드 저장 위치 (Y)

Do you want to disallow multiple uses of the same authentication token?
This restricts you to one login about every 30s,
but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y

– 시간 오차 방지 옵션, Google Authenticator은 30초마다 새로운 일회용 패스워드를 생성함,
클라이언트와 서버의 시간이 30초 이상 차이가 난다면 클라이언트에서 생성된 일회용 패스워드를 사용할 수 없음. 이 옵션을 사용하게 된다면 3개의 일회용 패스워드를 허용(이전 코드, 현재 코드, 다음 코드), 가능하다면 NTP와 같은 서버의 시간 동기화를 정확하게 설정하는 게 좋습니다.

If the computer that you are logging into isn't hardened against brute-force login attempts,
you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y

–  brute force(무차별 대입 공격) 방지 옵션, 옵션을 사용하면 로그인 시도 횟수를
제한하여 무차별 대입 공격을 방지 할 수 있습니다.

각 원격 툴로 확인 시 ‘verification code’ 확인할 수 있습니다.

# mobaxter 으로 접근 시

mobaxter 으로 접근 시

# SecureCRT 로 접근 시

SecureCRT 로 접근 시

# putty 로 접근

putty로 접근 시

5. 자주 묻는 질문 (FAQ)

Q. 스마트폰이 오프라인(인터넷 연결 끊김) 상태여도 구글 OTP 앱을 사용할 수 있나요?
A. 네, 가능합니다! 처음 QR 코드로 계정을 등록할 때만 인터넷(카메라)이 필요하며, 이후 코드를 생성하는 과정은 인터넷 연결이나 통신사 데이터 없이 스마트폰 내부에 저장된 키 값과 시간을 기반으로 작동하므로 비행기 모드에서도 사용할 수 있습니다.

Q. 서버에 여러 명의 관리자가 접속하는데, 모두 OTP를 설정해야 하나요?
A. PAM 모듈 설정 시 nullok 옵션을 사용하면 OTP를 설정한 계정만 이중 인증을 거치고, 설정하지 않은 사용자는 기존처럼 패스워드만으로 접속하게 할 수 있습니다. 하지만 서버의 보안을 위해서는 접속하는 모든 실무자에게 각자의 OTP를 설정하도록 정책을 만드는 것을 권장합니다.

Q. 구글 OTP 외에 다른 인증 앱을 사용해도 되나요?
A. 네, 작동 원리가 동일한 TOTP(시간 기반 일회용 비밀번호) 방식이라면 Authy, Microsoft Authenticator, 삼성 패스 등 다른 모바일 앱을 사용하셔도 완벽하게 호환됩니다.


일회용 비밀번호 하나 추가로도 소중한 데이터를 수많은 해킹 위협으로부터 안전하게 보호할 수 있습니다. 오늘 알려드린 단계를 따라 우리 회사의 웹사이트와 서버를 더 안전하게 지켜내시길 바랍니다.

운영 중 궁금한 점이 생기거나 인프라 관리가 부담스럽게 느껴지신다면, 언제든 IT 파트너 아이티이지에 문의해주세요! 다음에도 실무에 꼭 필요한 유익하고 쉬운 IT 정보로 찾아오겠습니다.😊

⬇️ 아이티이지 홈페이지 바로가기 ⬇️

아이티이지 홈페이지 바로가기

⬇️ 신규가입 쿠폰팩 받기 (Click!) ⬇️

신규 가입 고객을 위한 무료 쿠폰팩 바로가기

댓글 남기기