[TIL 19. 리눅스: 네트워크, SSH]

Juhee Fred Lee·2023년 11월 2일
0

TIL

목록 보기
22/24

네트워크 매니저

  1. 네트워크 매니저

    1. RHEL부터 네트워크를 모니터링하고 관리하는 데몬
    2. 설정 파일은 /etc/sysconfig/network-scripts/에 저장
    3. nmcli 명령을 통해 설정 파일 수정 가능
    4. 여러 개의 연결 설정 파일로 네트워크 관리 가능
    5. 과거에는 랜카드에 설정값들을 저장하였기에 네트워크가 바뀔때마다 랜카드 상에 설정을 바꿔줬어야하나, 현재는 중간에 커넥터에 설정 내역을 저장한다.
  2. 커넥션: 각 네트워크에 대한 설정 값을 저장하고 적용하는 무언가??

  3. nmcli 명령어 정리

    1. 연결 설정 파일 추가: nmcli connection add

      1. 유동 IP 설정 옵션

        • con-name: connection 이름

        • ifname: connection과 연결할 device

        • type: 통신방식 (ethernet, wifi, bluetooth)

        • autoconnect: 부팅 시 자동연셜

      2. 고정 IP 설정 옵션

        • ip4 (ip4.addresses) : 고정 IP 주소

        • gw4 (ipv4.gateway): 게이트웨이 주소

      3. 연결 설정 적용: nmcli con up (connection 이름)

    2. 연결 설정 수정: nmcli con modify (connection명) option argument

      1. 변경하고자 하는 커넥션을 선택한 후 설정값을 입력한다.

      2. 명령어 입력시 DHCP7 ⇒ static2로 변경된 것을 볼 수 있다.

      3. 해당 커넥션을 up명령어를 통하여 ether1에 적용하면 된다.

      4. DHCP7 ⇒ static2로 바꾸었지만 설정파일의 이름은 변경되지 않는 것을 확인할 수 있다.

    3. 연결 설정 수정 (설정파일 수정 방법: 권장하지 않음): vim /etc/NetworkManager/system-connections/dhcp7.nmconnection

      1. vim으로 설정파일 수정

      2. nmcli reload

      3. nmcli con up으로 변경사항 적용

    4. TUI를 활용하여 설정: nmtui

  4. Hostname 관리: hostctl

    1. hostname 조회: hostname, cat/etc/hostname

    2. hostanem 변경: hostnamectl hostname (hostname)

원격접속

  1. 기존 telnet의 한계: 패킷 내용이 평문으로 전달되기 때문에 보안상 취약하다는 한계 존재함.

  2. 이를 보완하기 위해서 SSH(Secure Sheel)가 고안됨.

    1. SSH는 대칭키와 비대킹 암호화 알고리즘을 동시에 사용.
      1. 대칭키: 데이터를 암호화 할 때 사용하는 키와 복호화할 때 사용하는 키가 같은 알고리즘
      2. 비대칭키: 데이터를 암호화 하고 복호화할 때 사용하는 키가 다른 암호화 알고리즘
        • 공개키와 개인키
          • 공개키: 외부에 공개된 키로 누구나 공개키를 가지고 있어도 됨. 공개키는 데이터를 암호화 하여 전달, 공개키와 쌍으로 이루어진 개인키를 이용해 암호화된 데이터를 복호화 함. ⇒ 644 setting
          • 개인키: 키 생성자만 갖고 있는 키. (공개키로 암호화된 내용 ⇒ 개인키로 복호화) ⇒ 600 setting
  3. SSH 접속 (C: client, S: server)

    1. C → S 접속요청
    2. S가 C 공개키 전송(knon-host): 서버의 공개키가 클라이언트에 저장되어 있지 않으면 SSH 서버의 공개키를 저장하기 위한 메세지가 출력
    3. C ⇒ 비밀키 생성(한 쌍을 생성): 공개키를 저장하고 난 다음 C는 대칭키 알고리즘을 사용해 암호화를 위한 비밀키 생성
    4. C ⇒ 비밀키 암호화 (서버의 공개키): 이 비밀키를 다시 서버의 공개키로 암호화 하여 서버에게 전달
    5. C ⇒ 비밀키 전송
    6. S ⇒ 전송받은 비밀키 복호화 (서버의 개인키)
  4. 원격 접속 (SSH)

    1. 클라이언트, 서버 각각 구동

    2. ssh (접속할 원격 주소)및 비밀번호 입력

    3. 접속 완료

    4. 접속 종료 시 exit 명령어 입력

  5. 서버의 호스트 키 정보가 최신화 될 경우

    1. 호스트 키 초기화 (키 파일 삭제 후 sshd 재시작)

    2. 클라이언트에서 접속 시 인증정보가 변동되었다는 알림을 받게 됨

    3. 클라이언트 키 파일 삭제: rm -rf .ssh/known_hosts

    4. 재연결

  6. 키 기반 인증 방식

    1. 기존 인증키 파일 삭제: rm -rf /ssh/known_hosts(Client), rm -rf ~(user)/.ssh/*(Server)

    2. 키 생성: ssh-keygen

    3. 원격접속 진행: ssh-copy-id (address)

    4. 두 파일의 내용이 같은 것을 알 수 있다.

  7. 원격에서 root로 접속하는 것을 방지하는 방법

    1. vim /etc/.ssh/sshd_config에 접속하여 PermitRootLogin의 값을 no로 설정한다.

    2. systemctl restart sshd로 서비스를 재시동하여 변경사항을 적용한다.

    3. 키 기반 인증만 허용할 경우 without-password라는 설정 값을 적용하면 된다.

    4. 하지만 초기에 키를 인증해야하기 때문에 최초에는 PermitRootLogin 값을 yes로 설정하여 키인증 후 설정값을 바꿔주는 것이 좋다.

profile
공릉동에 살며 백엔드를 공부하는 감자입니다.

0개의 댓글