[구름 k8s] TIL 1-3-3

Peppie·2022년 8월 18일
0

0. 소프트웨어 관리

SSH (Secure SHell)

  • 22번 포트 사용
  • 네트워크를 이용하여 원격으로 접속하는 서비스
    => Linux 사용시 일반적으로 SSH Client를 이용한 접속이 일반적
  • 공개키 암호 방식으로 암호화된 데이터 송수신
  • 원격 접속 대상(서버) Linux host에 SSH Daemon process (sshd, 부르는 용어 -> server program, daemon, service)가 동작중이어야 한다 -> client/server 구조
  • 원격 접속 client는 SSH client 프로그램을 통해 접속
    • Windows : putty, xshell
    • Linux/MacOS : ssh 명령
  • 별도의 공개키를 생성하여 client에 제공하고 접속하는 방식으로 사용가능
    • public cloud에서 제공하는 가상 컴퓨팅 서비스
    • IaC를 이용한 infrastructure 관리시에도 많이 사용
    • ssh-keygen 명령 사용
  • 가상 PC 환경에서의 SSH 접속환경 구축방법
    • NAT 환경에 포트 포워딩 기능 사용
      • Virtualbox -> Linux image -> 네트워크 -> 고급 -> 포트포워딩 설정
      • ssh client 사용시 : host ip 127.0.0.1 (loopback) / host port : 22
    • NAT 네트워크 구성 : 별도 네트워크 구성시 유리 (가상 PC 네트워크 구성)
    • 호스트 어댑터 이용 -> SSH server ip로 접속

스냅 패키지 관리

스냅 개념

Ubuntu에 새로 도입한 패키지 형식의 샌드박스 형태 패키지 (완전히 격리된 형태)
패키지를 만들 때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함

장점

  • 개발자가 다른 패키지나 라이브러리 의존성을 고려하지 않고 개발
  • 기존 시스템과 격리되어 실행하는 샌드박스 형식으로 보안 강화

단점

  • 큰 패키지 용량

snap 명령

  • snap이 별도로 설치되지 않은 경우 설치 후 사용 -> sudo apt-get install snap
  • snap [옵션] 명령
    • install 스냅명 : 지정한 스냅 설치, 관리자 권한
    • list : 설치한 스냅 목록 출력
    • remove 스냅명 : 지정한 스냅 삭제, 관리자 권한
    • info 스냅명 : 지정한 스냅 상세 정보 출력
    • find 스냅명 : 지정한 스냅 검색

이 실습에서 예시로 든 hello-world 스냅은 말그대로 Hello, World!를 출력하는 간단한 테스트 용도

파일 아카이브 및 압축

파일 아카이브

파일들을 하나로 묶는 동작

  • tar 명령
    아카이브 파일 확장자 -> .tar
    tar 기능 [옵션] <아카이브 파일> <아카이브 대상 파일 or 디렉토리>

기능

  • c : 새로운 tar 파일 생성
  • t : tar 파일 내용 출력
  • x : tar 파일을 원본 형태로 추출
  • r : 새로운 파일 추가
  • u : 수정된 파일 업데이트

옵션

  • f : 아카이브 파일 지정
  • v : 처리 과정 출력
  • j : bz2 형식으로 압축/해제
  • z : gz 형식으로 압축/해제
  • tar cvf <.tar> <아카이브 대상> : 아카이브 파일 생성
  • tar tvf <.tar> <아카이브 대상> : 아카이브 파일 내용 확인
  • tar xvf <.tar> <아카이브 대상> : 아카이브 파일 내용 추출
    ex) tar xvfz ~/Downloads/putty-0.77.tar.gz
  • tar cvfz <.tar.gz> <아카이브 대상> : 아카이브 파일 생성 및 gzip 압축
  • tar cvfj <.tar.bz2> <아카이브 대상> : 아카이브 파일 생성 및 bzip2 압축

내용을 확인하고 싶으면 file 명령어 활용하기

압축

파일 크기를 줄이는 동작
이미 압축한 파일을 또 압축한다고 크기가 더 줄거나 하지는 X

  • Linux 압축 명령은 파일 아카이브 수행 X, 압축만 수행

  • 손실 압축 방식

  • 비손실 압축 방식

  • gzip / gunzip 명령

    gzip [옵션] 파일명 : 압축
    압축파일 확장자 -> .gz

    • -l : 압축 파일 정보 확인
    • -r : 하위 디렉토리로 이동하여 파일 압축
    • -v : 압축 정보 화면 출력
    • -9 : 최대한 압축

    gunzip <압축파일명> : 압축 해제

  • bzip2 / bunzip2 명령

    bzip2 [옵션] 파일명 : 압축
    압축파일 확장자 -> .bz2

    • -l : 압축 파일 정보 확인
    • -d : 하위 디렉토리로 이동하여 파일 압축
    • -v : 압축 정보 화면 출력
    • -best : 최대한 압축

    bunzip2 <압축파일명> : 압축 해제

  • zip / unzip 명령

    압축파일 확장자 -> .zip
    zip <압축파일명> <파일명> : 압축
    unzip <파일명> : 압축 해제


여담) POSIX (파직스) : UNIX 표준 규약

1. 네트워크 명령

네트워크 명령

Debian 계열 및 Redhat 계열 공통 명령과 같은 기능을 하지만 他 패키지를 통해 동작하는 명령 존재
(기능은 같은데 명령어가 다르다던지 등)

호스트 접속 확인 명령

ping [옵션] <호스트 IP 또는 domain>

  • -c 횟수 : 횟수만큼 패킷 송수신
    (Windows처럼 일반적으로 4번 고정 개념도 없이 별다른 설정을 안하면 끊임없음)
    ex) ping -c 5 www.example.com
  • ICMP 기반 명령; 해당 호스트가 보안 문제로 응답하지 않는 경우도 존재

원격 호스트에 대한 패킷 경로 표시 - routing 경로 확인

  • Ubuntu : traceroute 명령 ; sudo apt install traceroute
  • CentOS : tracepath 명령 ; sudo yum install iputils-tracepath

traceroute [옵션] <호스트>

  • -n : 주소를 IP 주소로 표시
  • -m maxttl : 패킷 최대 TTL 설정
    ex) traceroute -m 10 www.example.com

호스트 IP 주소 / 도메인명 검색

  • DNS (Domain Name Server)에 해당 host에 대한 IP 주소/도메인명 검색 요청 명령
  • /etc/resolv.conf 파일에 검색 요청할 DNS 정보 기록

host [옵션] <domain / IP 주소>

  • -v : 상세 정보 표시

DNS 정보 검색

dig [옵션] <쿼리 타입> <도메인>

  • -x address : IP 주소가 address인 호스트 DNS 정보 출력
  • any : 모든 정보
  • ns : 지정 도메인 공인 네임 서버 (authority section)
  • dig @공인네임서버 <도메인> : 네임 서버 지정
    ex) dig @ns.icann.org www.example.com

도메인 정보 취득

Ubuntu에서 별도 설치 -> sudo apt install whois

whois [옵션] <호스트 (www. 제외한 도메인)>

  • -h server : 검색에 사용할 서버 지정

SSH Client 명령

ssh [옵션] < [사용자명]@<호스트명> >

  • -i <공개키 파일 경로 및 파일명> : 공개키 파일
    ex) ssh -i ~/.ssh/id_rsa.pub worker@127.0.0.1
  • -l user : 원격 호스트에 접속할 사용자명
  • exit : ssh client 종료

  • ssh <호스트 IP> : login시 ID와 PW 입력
  • ssh <사용자명@ 호스트 IP> : PW 입력 -> 가장 일반적인 방식

ssh-keygen : 공개키/개인키 생성 명령

  • 사용자 홈 디렉토리/.ssh에 공개키와 개인키 저장
    개인키 : id_rsa , ssh server에 저장
    공개키 : id_rsa.pub , ssh client 사용
    • 공개키의 permission은 소유자만 읽기/쓰기 권한 부여
    • chmod 600 id_rsa.pub

CLI 방식의 웹 브라우저

인터넷을 이용하여 특정 사이트로부터 데이터 download 동작 수행하는 웹 브라우저 기능 명령

wget [옵션] URL

  • -b : 백그라운드로 download
  • -r : 재귀적 download
  • -c : 이어받기 download

curl [옵션] URL

  • 별도 패키지 설치 필요 -> sudo snap install curl 또는 sudo apt install curl
  • -O : download 결과를 URL에서 가져온 파일명으로 저장
  • -o file : download 결과를 file로 저장

네트워크 인터페이스 확인 설정

ip [옵션] addr [내부명령]

  • -s : 상세 정보
  • -f family : 네트워크 주소 종류 family
  • -r : 호스트명 표시

내부 명령

  • show : device 주소 표시 (생략 가능)
  • add addr : device 주소 추가
  • del addr : device 주소 삭제
  • flush dev : device 주소 일괄 삭제

ifconfig 명령
향후 삭제 예정 명령어

  • ubuntu에서 사용을 원하면 패키지 설치 -> sudo apt install net-tools

인터넷 경로 (routing) 설정

ip route [내부 명령어]
route [옵션][내부 명령어]

네트워크 소켓 정보 및 접속 상황 표시

  • ss [옵션]
  • ip [옵션] link [내부 명령]
  • netstat [옵션]

    -i : 네트워크 인터페이스 접속상태 관련 정보
    -r : 라우팅 테이블 표시
    -s : 프로토콜 통계 정보
    -l : 접속대기 중인 소켓만 표시
    -t : TCP 소켓 정보 표시
    -n :IP 주쇼 형식으로 출력

여담) MySQL이나 MariaDB는 3306 포트 주로 사용 -> 그 포트가 주로 항상 열려있다보니

네트워크 인터페이스 트래픽 데이터 표시 (wireshark와 유사 기능)

sudo tcpdump [옵션][조건]

  • -c count : count 개수의 패킷 취득 후 종료
  • -F file : 패킷 필터링 조건을 file에서 읽음
  • -i if : 인터페이스 if 지정

조건

  • host host명 : 특정 호스트
  • port port번호 : 특정 포트번호

ex)
sudo tcpdump port http and host www.example.com
sudo tcpdump -c 20 port ssh

2. TIF

뭔가 또 정신없이 휘몰아친 것 같은 하루였다. 마치 지수 그래프를 보는 것마냥 갈수록 난이도가 급상승하는 느낌이다.

예전에 리눅스 기초 책으로 독학 실습할 적에는 ifconfig를 자주 썼었는데 실제로는 곧 삭제될 예정인 명령어라는게 많이 놀라웠다.

오늘 추가로 알아볼만한 것:

0개의 댓글