220818 TIL 리눅스 소프트웨어 관리

sundays·2022년 8월 18일
0

SSH

  • Secure SHell

  • 22번 Port 사용

  • 네트워크를 이용하여 원격으로 접속하는 서비스

  • Linux 사용시 일반적으로 SSH client를 이용한 접속이 일반적

  • 공개키 암호 방식으로 암호화된 데이터 송수신

  • 원격 접속 대상( server ) 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 -> 네트워크 -> 고급 -> 포트포워딩 설정
      • NAT 네트워크 구성 - 별도의 네트워크 구성시 유리( 가상 PC 네트워크 구성 )
    • 호스트 어댑터 이용
      • ssh client 사용시
        • host ip : 127.0.0.1
        • host port : 22
    • SSH server ip 로 접속

스냅 패키지 관리

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

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

  • 스냅 단점
    패키지 용량이 크다.

  • snap 명령

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

파일 아카이브 및 압축

파일 아카이브

파일들을 하나로 묶는 동작
tar 명령

  • 아카이브 파일 확장장 -> .tar

  • tar 기능 [ 옵션 ] <아카이브 파일> <아카이브 대상 파일 또는 디렉토리>

  • 기능

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

    • f - 아카이브 파일 지정
    • v - 처리 과정 출력
    • j - bz2 형식으로 압축 또는 해제
    • z - gz 형식으로 압축 또는 해제
  • 아카이브 파일 생성
    tar cvf <.tar> <아카이브 대상>

  • 아카이브 파일 내용 확인
    tar tvf <.tar> <아카이브 대상>

  • 아카이브 파일 내용 추출
    tar xvf <.tar> <아카이브 대상>

  • 아카이브 파일 생성 및 gzip 압축
    tar cvfz <.tar.gz> <아카이브 대상>

  • 아카이브 파일 생성 및 bzip2 압축
    tar cvfj <.tar.bz2> <아카이브 대상>

파일 압축

  • 파일 크기를 줄이는 동작

  • Linux 압축 명령은 파일 아카이브를 수행하지 않고 압축만 수행

  • 손실 압축 방식

  • 비손실 압축 방식

  • gzip/gunzip 명령
    gzip [ 옵션 ] 파일명 -> 압축
    압축파일 확장자 -> .gz

    • -l - 압축 파일 정보 확인
    • -r - 하위 디렉토리로 이동하여 파일 압축
    • -v - 압축 정보 화면 출력
    • -9 - 최대한 압축
    • gunzip <압축 파일명> -> 압축 해제
  • bzip2/bunzip2 명령

    • bzip2 [ 옵션 ] 파일명 -> 압축
      압축파일 확장자 -> .bz2
      - -l - 압축 파일 정보 확인
      - -d - 파일 압축 해제
      - -v - 압축 정보 화면 출력
      - –best - 최대한 압축
    • bunzip2 <압축 파일명> -> 압축 해제
  • zip/unzip 명령

    • zip <압축파일명> <파일명> -> 압축
    • unzip <압축 파일명> -> 압축 해제

네트워크 명령

  • 네트워크 관련 명령으로 Debian 계열과 Redhat 계열 공통 명령과 같은 기능을 하지만 다른 패키지를 통해 동작하는 명령이 있다.

  • 호스트 접속 확인 명령
    ping [ 옵션 ] <호스트 IP 또는 domain>

    • -c 횟수 - 횟수 만큼 패킷 송수신
    • ICMP기반 명령으로 해당 호스트가 보안 문제 때문에 응답을 하지 않는 경우도 있다.
  • 원격 호스트에 대한 패킷 경로 표시 - routing 경로 확인

    • Ubuntu - traceroute 명령
      • sudo apt install traceroute
    • CentOS - tracepath 명령
      • sudo yum install iputils-tracepath
    • traceroute [ 옵션 ] <호스트>
      -n - 주소를 IP address로 표시
      -m maxttl - 패킷 최대 TTL 설정
  • 호스트 IP 주소/도메인명 검색

    • DNS( Domain Name Server )에 해당 host에 대한 IP 주소/도메인명 검색 요청 명령
    • /etc/resolv.conf 파일에 검색 요청할 DNS 정보 기록
    • host [ 옵션 ] <domain/IP address>
      • -v - 상세 정보 표시
  • DNS 정보 검색
    dlg [ 옵션 ] <쿼리 타입>

    • -x address - IP 주소가 address인 호스트 DNS 정보 출력
    • any - 모든 정보
    • ns - 지정 도메인 공인 네임 서버
    • dig @공인 네임 서버 -> 네임 서버 지정
  • 도메인 정보 취득

  • Ubuntu에서 별도 설치
    sudo apt install whois

  • whois [ 옵션 ] <host( www. 제외한 domain )>
    -h server - 검색에 사용할 서버 지정

  • SSH client 명령
    ssh [ 옵션 ] [사용자명]@<호스트명>

    • -i <공개키 파일 경로 및 파일명> - 공개키 파일
    • -l user - 원격 호스트에 접속할 사용자명
    • exit -> ssh client 종료
    • ssh -> login시 ID와 PW 입력
    • ssh <사용자명@host 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 address 형식으로 출력
  • 네트워크 인터페이스 트래픽 데이터 표시 하기 - Windows wireshark 프로그램과 유사 기능 수행

    • sudo tcpdump [ 옵션 ][ 조건 ]
      • -c count - count 개 패킷 취득후 종료
      • -F file - 패킷 필터링 조건을 file 에서 읽는다.
      • -i if - 인터페이스 if 지정
    • 조건
      • host host명 - 특정 호스트
      • port port번호 - 특정 포트 번호

    • sudo tcpdump port http and host www.example.com
      sudo tcpdump -c 20 port ssh
profile
develop life

0개의 댓글