상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 웹서버구축 후 이중 인증 설정은 어떻게 하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
이중 인증(2FA)은 사용자가 로그인할 때 비밀번호 외에 추가로 일회용 코드를 입력하도록 강제함으로써 계정 탈취 위험을 크게 낮춥니다. 웹서버를 구축한 뒤 운영자나 관리자가 SSH 접속은 물론, 최종 사용자의 웹 애플리케이션 로그인에도 이중 인증을 적용하는 방법을 아래와 같이 단계별로 설명합니다. 1. 이중 인증 방식 선정 먼저 사용할 2FA 방식을 결정해야 합니다. • TOTP(Time-based One-Time Password) 방식: 구글 인증기(Google Authenticator), Authy, FreeOTP 등 모바일 앱을 통해 30초마다 갱신되는 코드를 생성 • U2F/FIDO2 USB 보안키 방식: YubiKey, Feitian 등 물리적 키 삽입 후 버튼 터치로 인증 • SMS/이메일 방식: 휴대폰 문자나 이메일로 전송된 코드를 입력 (보안성은 다소 낮음) • 푸시 알림 방식: 전용 앱으로 푸시 알림을 보내 승인을 요청 (Duo Push, Okta Verify 등) 운영 환경과 보안 수준에 맞춰 한 가지 또는 복수 방식을 조합할 수 있습니다. 2. 운영체제(SSH) 레벨 이중 인증 설정 가. libpam-google-authenticator 설치 예) Ubuntu/Debian: ```bash sudo apt update sudo apt install libpam-google-authenticator ``` CentOS/RHEL: ```bash sudo yum install epel-release sudo yum install google-authenticator qrencode ``` 나. 사용자별 초기 설정 관리자로 로그인한 뒤, 실제 SSH 접속 계정(예: ubuntu, ec2-user)으로 전환하여 다음 명령 실행: ```bash google-authenticator ``` 이 과정에서 QR코드와 복구용 키, 백업 코드를 생성해 줍니다. 모바일 앱으로 QR코드를 스캔하고, 각종 옵션(재사용 제한, 시간 편차 허용 등)을 설정합니다. 다. PAM 구성 변경 /etc/pam.d/sshd 파일 맨 앞 또는 적절한 위치에 다음 줄을 추가합니다. ``` auth required pam_google_authenticator.so nullok ``` nullok 옵션을 빼면 2FA 미설정 계정은 로그인 자체가 차단되므로, 모든 계정에 2FA를 강제하려면 nullok를 제거하세요. 라. SSH 설정 변경 /etc/ssh/sshd_config 파일에서 다음 항목을 확인·수정합니다. ``` ChallengeResponseAuthentication yes PasswordAuthentication yes 비밀번호+2FA 구조일 때 AuthenticationMethods publickey,keyboard-interactive:pam ``` AuthenticationMethods를 지정하면 공인키와 PAM(구글 인증기) 조합, 또는 비밀번호와 PAM 조합을 강제할 수 있습니다. 마. SSH 서비스 재시작 ```bash sudo systemctl restart sshd ``` 바. 테스트 별도 터미널에서 SSH 접속을 시도해 보고, 비밀번호 입력 후 구글 인증기 코드 입력 단계가 추가됐는지 확인합니다. 3. 웹 애플리케이션 레벨 이중 인증 적용 웹사이트 사용자 로그인 단계에도 2FA를 걸어야 한다면, 사용 중인 프레임워크나 언어에 맞는 TOTP 라이브러리를 활용합니다. 예를 들어 Python/Django, PHP/Laravel, Node.js/Express 등에서 공통으로 취할 수 있는 절차는 다음과 같습니다. 가. 라이브러리 설치 • Python 예: `pip install pyotp qrcode` • Node.js 예: `npm install otplib qrcode` • PHP 예: composer로 `spomky-labs/otphp` 등 설치 나. 사용자 프로필에 비밀키(시크릿) 저장 기능 추가 1) 새로운 비밀키를 생성해 DB에 저장(pyotp.TOTP().now() 기반). 2) QR코드(시크릿을 포함한 otpauth:// URI)를 생성해 사용자에게 보여줌. 3) 사용자는 구글 인증기 앱에 QR코드를 스캔해 연동. 다. 로그인 로직 확장 1) 기존 아이디·비밀번호 인증을 통과하면, 서버는 사용자 프로필에 저장된 시크릿을 가져옵니다. 2) 로그인 화면 또는 별도 2단계 인증 페이지에서 사용자로부터 일회용 코드를 입력받습니다. 3) pyotp 또는 otplib으로 코드 유효성 검증: ``` if TOTP.verify(user_<a href='https://sangseek.com/sangseeks/input/ko'>input</a>_code): // 성공 else // 인증 실패 ``` 4) 검증이 성공해야만 세션을 발급하거나 토큰을 반환합니다. 라. 백업 코드 및 복구 수단 제공 2FA 기기를 분실했을 때를 대비해 일회용 백업 코드를 미리 생성·저장해 두고, 사용자에게 안전하게 출력·보관하도록 안내합니다. 4. 서드파티 서비스 연동 대안 직접 구현 대신 Duo Security, Authy, Okta, AWS Cognito MFA 같은 SaaS형 인증 서비스를 이용하면 복잡한 설정과 유지보수가 간소화됩니다. API 호출이나 SDK 연동만으로 푸시 알림, SMS, 전화, TOTP, U2F 등을 통합 제공하니, 보안 로그·리포트 기능도 함께 활용할 수 있습니다. 5. 운영 시 주의사항 • 비밀키(시크릿)는 절대로 평문 로그나 코드 저장소에 노출되지 않도록 합니다. • 타임스탬프 차이로 인증 실패 시 허용 오차(기본 ±1스텝)를 늘리거나 서버 시간을 NTP로 동기화하세요. • 정기적으로 백업 코드 유효성을 검토하고, 사용자가 2FA를 해제·재설정할 때는 추가 본인 확인 절차를 마련합니다. • 감사(audit) 로그에 2FA 인증 실패·성공 내역을 기록해 이상 징후를 모니터링합니다. 이 과정을 통해 SSH 접속은 물론 웹 애플리케이션 로그인 단계까지 이중 인증을 적용하면, 단순 비밀번호 탈취나 크리덴셜 스터핑 공격으로부터 서버와 사용자 계정을 훨씬 안전하게 보호할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기