
Raspberry Pi는 지금 어디에나 있으며, 이것이 위협 행위자와 사이버 범죄자의 눈에 띄는 이유입니다. 2 단계 인증으로 Pi를 보호하는 방법을 보여 드리겠습니다.
놀라운 라즈베리 파이
Raspberry Pi는 단일 보드 컴퓨터입니다. 2012 년에 영국에서 시작되어 아이들이 코드를 수정하고, 만들고, 배울 수 있도록 만들었습니다. 원래 폼 팩터는 전화 충전기로 구동되는 신용 카드 크기의 보드였습니다.
HDMI 출력, USB 포트, 네트워크 연결을 제공하고 Linux를 실행합니다. 나중에 제품에 통합되거나 헤드리스 시스템으로 실행되도록 설계된 더 작은 버전이 라인에 추가되었습니다. 가격은 미니멀 한 Pi Zero의 경우 5 달러에서 Pi 4 B / 8GB의 경우 75 달러입니다.
그것의 성공은 믿기지 않습니다. 이 작은 컴퓨터 중 3 천만 대 이상이 전 세계적으로 판매되었습니다. 애호가들은 그들과 함께 놀랍고 영감을주는 일을 해왔습니다. 하나는 우주의 가장자리에 떠 다니고 풍선에 다시 올라 타는 것을 포함합니다.
아아, 컴퓨팅 플랫폼이 충분히 보급되면 필연적으로 사이버 범죄자의 관심을 끌게됩니다. 얼마나 많은 Pi가 기본 사용자 계정과 암호를 사용하고 있는지 생각하는 것은 두려운 일입니다. Pi가 공용이고 SSH (Secure Shell)를 통해 인터넷에서 액세스 할 수있는 경우 보안이 유지되어야합니다.
Pi에 귀중한 데이터 나 소프트웨어가 없더라도 Pi가 실제 대상이 아니기 때문에이를 보호해야합니다. 이는 네트워크에 들어가는 방법 일뿐입니다. 위협 행위자가 네트워크에 발판을 마련하면 실제로 관심이있는 다른 장치로 전환합니다.
2 단계 인증
인증 또는 시스템에 대한 액세스 권한을 얻으려면 하나 이상의 요소가 필요합니다. 요인은 다음과 같이 분류됩니다.
- 당신이 알고있는 것 : 암호 또는 -phrase와 같은.
- 가지고있는 것 : 휴대폰, 물리적 토큰 또는 동글처럼.
- 당신은 : 지문이나 망막 스캔과 같은 생체 인식.
다단계 인증 (MFA)에는 암호와 다른 범주의 항목이 하나 이상 필요합니다. 예를 들어 비밀번호와 휴대 전화를 사용하겠습니다. 휴대폰은 Google 인증 앱을 실행하고 Pi는 Google 인증 모듈을 실행합니다.
QR 코드를 스캔하여 휴대폰 앱이 Pi에 연결됩니다. 이것은 Pi에서 휴대폰으로 일부 시드 정보를 전달하여 번호 생성 알고리즘이 동일한 코드를 동시에 생성하도록합니다. 이 코드를 시간 기반 일회성 암호 (TOTP)라고합니다.
연결 요청을 받으면 Pi가 코드를 생성합니다. 휴대폰의 인증 앱을 사용하여 현재 코드를 확인하면 Pi가 암호와 인증 코드를 요청합니다. 연결을 허용하려면 비밀번호와 TOTP가 모두 정확해야합니다.
Pi 구성
일반적으로 Pi에 SSH를 사용하는 경우 헤드리스 시스템 일 가능성이 높으므로 SSH 연결을 통해 구성합니다.
두 개의 SSH 연결을 만드는 것이 가장 안전합니다. 하나는 구성 및 테스트를 수행하고 다른 하나는 안전망 역할을합니다. 이렇게하면 Pi에서 자신을 잠그더라도 두 번째 활성 SSH 연결이 계속 활성화됩니다. SSH 설정을 변경해도 진행중인 연결에는 영향을주지 않으므로 두 번째 설정을 사용하여 변경 사항을 되돌리고 상황을 해결할 수 있습니다.
최악의 상황이 발생하고 SSH를 통해 완전히 잠긴 경우에도 Pi를 모니터, 키보드 및 마우스에 연결 한 다음 일반 세션에 로그인 할 수 있습니다. 즉, Pi가 모니터를 구동 할 수있는 한 계속 로그인 할 수 있습니다. 그러나 그렇게 할 수 없다면, 2 단계 인증이 작동하는지 확인할 때까지 안전망 SSH 연결을 열어 두어야합니다.
물론 궁극적 인 제재는 운영 체제를 Pi의 마이크로 SD 카드에 다시 플래시하는 것입니다.하지만이를 피하도록합시다.
먼저 Pi에 두 개의 연결을 만들어야합니다. 두 명령 모두 다음 형식을 취합니다.
ssh pi@watchdog.local

이 Pi의 이름은 “watchdog”이지만 대신 귀하의 이름을 입력합니다. 기본 사용자 이름을 변경 한 경우에도 사용하십시오. 우리는“pi”입니다.
안전을 위해이 명령을 다른 터미널 창에 두 번 입력하면 Pi에 두 개의 연결이 있습니다. 그런 다음 그중 하나를 최소화하면 방해가되지 않고 실수로 닫히지 않습니다.
연결하면 인사말 메시지가 표시됩니다. 프롬프트는 사용자 이름 (이 경우 “pi”)과 Pi의 이름 (이 경우 “watchdog”)을 표시합니다.

“sshd_config”파일을 편집해야합니다. 나노 텍스트 편집기에서이 작업을 수행합니다.
sudo nano /etc/ssh/sshd_config

다음 줄이 나타날 때까지 파일을 스크롤합니다.
ChallengeResponseAuthentication no
“no”를 “yes”로 바꿉니다.

Ctrl + O를 눌러 변경 사항을 nano로 저장 한 다음 Ctrl + X를 눌러 파일을 닫습니다. 다음 명령을 사용하여 SSH 데몬을 다시 시작합니다.
sudo systemctl restart ssh

PAM (Pluggable Authentication Module) 라이브러리 인 Google 인증기를 설치해야합니다. 애플리케이션 (SSH)은 Linux PAM 인터페이스를 호출하고 인터페이스는 요청되는 인증 유형을 서비스 할 적절한 PAM 모듈을 찾습니다.
다음을 입력하십시오.
sudo apt-get install libpam-google-authenticator

앱 설치
Google Authenticator 앱은 iPhone 및 Android에서 사용할 수 있으므로 휴대 전화에 적합한 버전을 설치하기 만하면됩니다. 이러한 유형의 인증 코드를 지원하는 Authy 및 기타 앱을 사용할 수도 있습니다.

2 단계 인증 구성
SSH를 통해 Pi에 연결할 때 사용할 계정에서 다음 명령을 실행합니다 ( sudo 접두사):
google-authenticator
인증 토큰을 시간 기반으로 할 것인지 묻는 메시지가 표시됩니다. Y를 누른 다음 Enter를 누르십시오.
QR (Quick Response) 코드가 생성되지만 80 열 터미널 창보다 더 넓기 때문에 스크램블됩니다. 코드를 보려면 창을 더 넓게 드래그하십시오.
QR 코드 아래에 일부 보안 코드도 표시됩니다. 이 파일은 ‘.google_authenticator’라는 파일에 기록되지만 지금 사본을 만들 수 있습니다. TOTP를 얻을 수있는 기능을 잃은 경우 (예 : 휴대 전화를 분실 한 경우) 이러한 코드를 사용하여 인증 할 수 있습니다.
네 가지 질문에 답해야합니다. 그 중 첫 번째 질문은 다음과 같습니다.
Do you want me to update your "/home/pi/.google_authenticator" file? (y/n)
Y를 누른 다음 Enter 키를 누르십시오.

다음 질문은 30 초 내에 동일한 코드를 여러 번 사용하는 것을 방지할지 여부를 묻습니다.
Y를 누른 다음 Enter 키를 누르십시오.

세 번째 질문은 TOTP 토큰에 대한 수락 창을 넓힐 것인지 여부를 묻습니다.
이에 대한 대답으로 N을 누른 다음 Enter를 누릅니다.

마지막 질문은 “속도 제한을 활성화 하시겠습니까?”입니다.
Y를 입력 한 다음 Enter 키를 누릅니다.

명령 프롬프트로 돌아갑니다. 필요한 경우 터미널 창을 더 넓게 끌거나 터미널 창에서 위로 스크롤하여 전체 QR 코드를 볼 수 있습니다.
휴대폰에서 인증 앱을 연 다음 화면 오른쪽 하단의 더하기 기호 (+)를 누릅니다. “QR 코드 스캔”을 선택한 다음 단말기 창에서 QR 코드를 스캔합니다.
Pi의 호스트 이름을 따라 이름이 지정된 인증 앱에 새 항목이 표시되고 그 아래에 6 자리 TOTP 코드가 나열됩니다. 쉽게 읽을 수 있도록 세 자리의 두 그룹으로 표시되지만 한 자리, 여섯 자리 숫자로 입력해야합니다.
코드 옆에있는 애니메이션 원은 코드의 유효 기간을 나타냅니다. 전체 원은 30 초, 반원은 15 초를 의미합니다.
모두 함께 연결
편집 할 파일이 하나 더 있습니다. 사용할 PAM 인증 모듈을 SSH에 알려야합니다.
sudo nano /etc/pam.d/sshd

파일 상단 근처에 다음 줄을 입력합니다.
#2FA auth required pam_google_authenticator.so

TOTP 요청시기를 선택할 수도 있습니다.
- 비밀번호를 입력 한 후 : 위의 이미지에 표시된대로 “@include common-auth”아래에 이전 줄을 입력합니다.
- 암호를 요청하기 전에 : “@include common-auth”위에 이전 줄을 입력합니다.
앞에서 사용한 하이픈 (-) 대신 “pam_google_authenticator.so”에 사용 된 밑줄 (_)에 유의하십시오. apt-get 모듈을 설치하는 명령.
Ctrl + O를 눌러 변경 사항을 파일에 기록한 다음 Ctrl + X를 눌러 편집기를 닫습니다. 마지막으로 SSH를 다시 시작해야합니다. 그러면 완료됩니다.
sudo systemctl restart ssh

이 SSH 연결을 닫으 되 다음 단계를 확인할 때까지 다른 안전망 SSH 연결을 실행 상태로 둡니다.
인증 앱이 열려 있고 휴대 전화에서 준비되었는지 확인한 다음 Pi에 대한 새 SSH 연결을 엽니 다.
ssh pi@watchdog.local

암호를 입력 한 다음 코드를 입력해야합니다. 숫자 사이에 공백없이 휴대 전화의 코드를 입력하십시오. 비밀번호와 마찬가지로 화면에 표시되지 않습니다.
모든 것이 계획대로 진행되면 Pi에 연결할 수 있어야합니다. 그렇지 않은 경우 안전망 SSH 연결을 사용하여 이전 단계를 검토하십시오.
미안한 것보다 더 안전한
위의 “안전한”에서 “r”을 보셨나요?
실제로 Raspberry Pi에 연결할 때 이전보다 더 안전하지만 100 % 안전한 것은 없습니다. 2 단계 인증을 우회하는 방법이 있습니다. 이것들은 사회 공학, 중간자 공격과 끝점 공격, SIM 스와핑, 그리고 분명히 여기서 설명하지 않을 다른 고급 기술에 의존합니다.
그래서, 완벽하지 않다면 왜이 모든 것을 귀찮게합니까? 글쎄요, 같은 이유로 당신이 떠날 때 당신의 현관 문을 잠글 수 있습니다. 비록 자물쇠를 고를 수있는 사람들이 있지만 대부분은 그렇게 할 수 없습니다.








