7/26

SSH 및 Sudo 관련 문제

  1. 사용자를 지정하지 않고 로그인 할 경우 어떤 사용자로 로그인 되나?

    지금 시스템을 사용하고있는 사용자

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/391f27d4-80ae-4efb-80cc-d871ff0f4d2a/Screenshot_from_2021-07-26_10-25-03.png

    서명 →fingerprint

    서명 →fingerprint

    server의 fingerprint가 맞는지 질문

    server의 fingerprint가 맞는지 질문

    SSH는 PKI구조 없음 제 3자가 검증해줄수 없기 때문에 나한테 검증을 요구하는것

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/74b2d7a0-2871-418a-bc15-c2d3ee5c333d/Screenshot_from_2021-07-26_10-17-33.png

    vagrant의 비밀키

    vagrant의 비밀키

    vagrant ssh control과 같은 결과

    vagrant ssh control과 같은 결과

    ssh_config → 클라이언트 설정 파일 / sshd_config → 서버 설정 파일

    ssh_config → 클라이언트 설정 파일 / sshd_config → 서버 설정 파일

    sshd_config / 패스워드 인증 불가, 개인키도 없음

    sshd_config / 패스워드 인증 불가, 개인키도 없음

    모든 시스템에서 패스워드 인증  yes로 수정 / ssh 재시작

    모든 시스템에서 패스워드 인증 yes로 수정 / ssh 재시작

    control에서 접속 시도하면 패스워드 기반 인증으로 접속 시도

    control에서 접속 시도하면 패스워드 기반 인증으로 접속 시도

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/98e61d59-6138-4a4f-83b2-c1c2fd23a2f5/Screenshot_from_2021-07-26_11-05-12.png

    처음 ssh로 접근할때 내가 검증→yes→~/.ssh/known_hosts에 키 등록

    다음에 접속 시도할때는 ~/.ssh/known_hosts와 원격 서버에 기록된 fingerprint 비교해서 접근 허용/불가를 판정


  2. ssh keypair 생성 방법

    기본 암호화 방식 → RSA

    기본 암호화 방식 → RSA

    1. 맨 아래는 생성될 키의 경로 지정하라는 메세지

    2. 반드시 패스워드 설정해야함

    3. 3072 ⇒ 키의 길이

    기본위치에 키를 저장하지 않으면 인식되지 않음 / 위치 경로를 지정하지 않으면 자동으로 기본 위치에 생성됨

    기본위치에 키를 저장하지 않으면 인식되지 않음 / 위치 경로를 지정하지 않으면 자동으로 기본 위치에 생성됨

    비밀키

    비밀키

    공개키

    공개키

    control) authorized_keys

    control) authorized_keys

    mgmt1) authorized_keys

    mgmt1) authorized_keys

    호스트에서 비밀키 파일의 위치

    호스트에서 비밀키 파일의 위치

    클라이언트 ssh키를 다른 서버에 등록(해당 키를 갖고있는 서버라면 접속 가능해짐)

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4e51187a-33de-493b-ae64-e003369d47ac/Screenshot_from_2021-07-26_13-57-10.png

    공개키를 지정하면 fingerprint  확인 가능

    공개키를 지정하면 fingerprint 확인 가능


  3. ~/.ssh/known_hosts 파일

    접속할 서버의 공개키가 저장된 파일

    #control
    rm .ssh/knownhosts
    ssh 192.168.200.101
    #질문~ => no
    #다시 생성되지 않음
    
    #mgmt1
    cd /etc/ssh
    ls ssh_host_*
    

    4개의 키 쌍 파일(dsa,ecdsa... ⇒ 암호화 알고리즘)

    4개의 키 쌍 파일(dsa,ecdsa... ⇒ 암호화 알고리즘)

    암호같이 긴 문자열 ⇒ fingerprint

    암호같이 긴 문자열 ⇒ fingerprint

    known host 파일을 생성하고 검증하는 목적

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5267807a-82e8-44ad-a009-3df22f3bb73b/Screenshot_from_2021-07-26_11-16-31.png

    접속할 대상의 시스템을 미리 스캐닝

    접속할 대상의 시스템을 미리 스캐닝

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/47b409ed-4cde-4f54-8ede-f9c61d7baaf3/Screenshot_from_2021-07-26_11-22-22.png

    같다

    같다

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/70061385-d85f-46b7-9590-ab9026525446/Screenshot_from_2021-07-26_11-53-24.png

    블록친 부분의 첫 부분 : 호스트 ip→ 인코딩되었음

    블록친 부분의 첫 부분 : 호스트 ip→ 인코딩되었음

    /etc/ssh/ssh_config

    /etc/ssh/ssh_config

    맨 아래 설정이 yes 라서 hash 값으로 인코딩 되는 것

    -o  옵션 설정 / 바람직하지 않은 방법 / 권장하는 방법 → ssh-keyscan

    -o 옵션 설정 / 바람직하지 않은 방법 / 권장하는 방법 → ssh-keyscan


  4. ~/.ssh/authorized_keys 파일

    클라이언트의 공개키를 등록한 파일


  5. Sudo를 사용할 수 있는 사용자는?

    일반 사용자가 sudo 명령으로 루트 권한을 행사하기 위해서는 /etc/sudoers 파일에 일반 사용자에 대한 권한 설정이 포함되어 있어야 한다.

    자신의 PW를 이용해서 접속 ⇒ su(접속하려는곳의 PW 필요)보다 안전

    RedHat 기반 OS - wheel 그룹에 포함된 사용자 (배포판마다 다름)


  6. Passwordless Sudo 설정 방법?


  7. ssh key passpharase를 매번 입력하지 않고 사용하는 방법은?

    SSH Key Pasephrase를 설정한 경우, SSH 키를 사용해 인증 시 마다 SSH Key Pasephrase를 요구하는데, 매번 입력하는것이 번거롭다면 ssh agent를 구성한다.

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8b88358b-4084-4946-8d41-c57c642da919/Screenshot_from_2021-07-26_15-25-36.png

    에이전트 등록을 쉘에게 맡김

    에이전트 등록을 쉘에게 맡김

MITM(Man In The Middle)

중간자 공격

known_hosts의 지문과 원격에서 받아온 지문이 다름

known_hosts의 지문과 원격에서 받아온 지문이 다름

위 경우가 모두 MITM인것은 아님

known_hosts 수정으로 해결 가능

known_hosts 수정으로 해결 가능

AWS Free Tier

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f46a7565-c0ad-4ead-ae44-02826a1d6ce3/Screenshot_from_2021-07-26_14-44-39.png