▶ BaroSolution/기술문서

Linux/Unix 시스템의 대화형 모드(Interactive mode)란?

누리아이티 2024. 4. 7. 12:49

Linux/Unix 시스템의 대화형 모드(Interactive mode) 쉘은 명령어를 tty의 사용자 입력으로부터 읽어 들인다. 

이 대화형 모드 쉘은 그 중에서도 특히나 기본적으로, 활성화시 시작 파일(Startup)을 읽어 들이고, 프롬프트를 표시해 주고, 작업 제어를 해준다. 

사용자는 쉘과 대화를 할 수 있게 되는 기능을 Linux/Unix 시스템의 대화형 모드(Interactive mode)라고 한다.

2단계 인증(2FA, Two Factor Authentication)은 Linux/Unix 시스템에서 사용할 수 있는 추가 보안 계층으로 대화형 모드(Interactive mode)에서 적용된다. 

일반 사용자 이름과 비밀번호를 입력하는 것 외에도 SSH를 통해 서버에 연결하는 사용자는 OTP 생성 앱에서 생성한 토큰(OTP, One-Time Password, 일회용 비밀번호)을 입력해야 한다.

Linux/Unix 시스템은 두 가지 요소를 결합하여 사용자를 인증하면 사용자의 비밀번호가 유출된 경우에도 승인된 사용자의 실제 신원을 확인할 수 있다.

2FA 인증을 활성화하는 가장 좋은 방법은 휴대폰에서 사용할 수 있는 OTP 생성 앱을 이용하는 것이다. 

이 앱을 사용하면 신원을 증명하기 위해 사용자 이름 및 비밀번호와 함께 Linux/Unix 시스템에 입력해야 하는 코드를 받을 수 있다.

이러한 기능은 Linux/Unix 시스템은 대화형 모드를 기본적으로 지원하기 때문에 가능하다.

2FA를 설정하고 이를 사용하여 악의적인 해커로부터 Linux/Unix 시스템을 보호하는 보안을 강화하는 좋은 방법이다.

[SSH를 사용하는 경우]

1. "/etc/ssh/sshd_config" 파일의 내용 중 다음과 같은 인자는 변경
 

PasswordAuthentication yes -> no
ChallengeResponseAuthentication or KbdInteractiveAuthentication no -> yes
UsePAM no -> yes

 


2. 2FA 설정(BaroPAM 솔루션 적용)

1) 추가 인증(로그인-ID, 비밀번호 이외의 추가 인증으로 일회용 인증키 적용)

 

$ vi /etc/pam.d/sshd
 
#%PAM-1.0
auth       required     /usr/baropam/pam_baro_auth.so nullok secret=/usr/baropam/.baro_auth encrypt=no

 

* "nullok"는 호출된 PAM(Pluggable Authentication Module, 플러그인 가능한 인증 모듈)이 null 값의 암호를 입력하는 것을 허용한다는 의미다.

"nullok"를 이용하여 다음과 같은 입력창이 나타난다.

 

login as:
Keyboard-interactive authentication prompts from server:
| Verification code:
| Password:
End of keyboard-interactive prompts from server
Last login: Sun Apr  7 16:00:50 2024 from 222.108.57.244

 



2) 새로운 비밀번호(로그인-ID, (비밀번호 + 일회용 인증키) 적용)

filezilla처럼 "Interactive process"가 불가능한 프로그램들을 위해서는 PAM에서 "forward_pass" 옵션을 사용하여 암호 입력 시에 BaroPAM 일회용 인증키를 입력하도록 하는 수 밖에 없다. 

 

이 경우, openssh client나 Windows의 RDP(Remote Desktop Protocol), RADIUS, filezilla 등 모두 이렇게 입력을 하는 수 밖에 없다.

 

$ vi /etc/pam.d/sshd
 
#%PAM-1.0
auth       required     /usr/baropam/pam_baro_auth.so forward_pass secret=/usr/baropam/.baro_auth encrypt=no

 

* "forward_pass"를 이용하여 암호 입력창(Password & verification code:)에 BaroPAM 일회용 인증키를 입력하면 된다.

 

login as:
Keyboard-interactive authentication prompts from server:
| Password & verification code:
End of keyboard-interactive prompts from server
Last login: Sun Apr  7 15:41:25 2024 from 222.108.57.244

 

 

예를 들어,비밀번호가 "baropam"이고, BaroPAM 일회용 인증키가 "123456" 이라면 "baropam123456"만 입력하면 된다.


국내 보안 솔루션이 적용된 Linux/Unix 시스템에서 기본적으로 제공되는 대화형 모드(Interactive mode) 기능을 지원하지 않아서 2FA(2-Factor Auentication)를 설정해도 정상적으로 작동되지 않아서 Linux/Unix 시스템에 로그인 할 수 없는 현상이 발생하고 있다.

 

"아무 것도 하지 않으면 중간은 간다"는 건 오래된 말이고, 클라우드 시대에는 통하지 않는 말이다. 새로운 시대에는 새로운 보호 장치가 어울린다. 시스템과 인프라는 자꾸만 새 것으로 바뀌는데 왜 예전 것들을 부여잡고 있는지 각자가 스스로를 검토해야 할 때다.
 

결론은 "2차 인증을 도입했다"는 것이 아니라 기술 및 보안성 등 "어떤 2차 인증을 도입했느냐"가 관건이다.

"아무 것도 신뢰하지 않는다" = "아무도 믿지 마라" = "계속 검증하라"

 

앞으로 정보 보안의 흐름은 보안은 강화하고 사용자의 불편함을 최소화하는 방향으로, 기억할 필요가 없는 비밀번호! BaroPAM이 함께 하겠습니다.