구름 13일차

박경현·2022년 8월 18일
0
post-thumbnail

소프트웨어 원격 관리!

SSH
	Secure SHell, 22번 포트를 사용
	네트워크를 이용하여 원격으로 접속하는 서비스

	공개키 암호 방식으로 암호화된 데이터 송수신
	원격 접속 대상 linux host에 ssh daemon process가 동작 중이어야 한다
	원격 접속 클라이언트는 ssh 클라이언트 프로그램을 통해 접속
		windows - putty, xshell등
		linux/Mac OS - ssh명령
	
	별도의 공개키를 생성하여 client에 제공하고 접속하는 방식으로 사용할 수 있음
		public cloud에서 제공하는 가상 컴퓨터 서비스 
		lac(코드기반 인프라 구축)를 이용한 imfrastructure 관리시에도 많이 사용
		ssh-keygen - 개인키/공개키 생성 명령 
	
	

원격접속 3가지 방법

가상 pc환경에서 ssh 접속 환경 구축 방법에 대해 설명해보겠다

NAT 환경에서 포트 포워딩 기능 사용

(

우분투 설정 들어가서 네트워크 -> 고급 -> 포트포워딩 추가하기
-> 이름 원하는걸로 바꾸고 호스트 포트와 게스트 포트 22번으로 바꾸기!!
-> 게스트IP는 virtual box안에서 도는 사설IP다!!

호스트 IP를 지정하지 않았으면 루프백 (네트워크를 나갔다가 들어오는거! )IP이다 -> 127.0.0.1!!

)

NAT 네트워크 구성

별도의 네트워크 구성시 유리(가상 pc네트워크 구성) ->
직접 전부 구성하는거! ->
virtural Box의 도구에 서 네트워크 들어가서 설치 -> 실습 안했음

호스트 어댑터 이용

(

어댑터 추가( RAM 카드 하나 더 꼽는거라고 생각하면 편함!) ->
네트워크를 호스트 전용 어댑터로 설정!->
-> 가상환경에서만 네트워크 카드를 쓰겠다는 뜻
->이건 IP를 알아야 해서 부팅해야한다!
-> cent OS 들어가서 ip addr 치기

	원래는 2: enpOs3만 있어야하는데 우리가 추가해서 3. enpOs8이 추가됨!
	-> 만약 IP 찾아서 putty에 입력했는데 아무것도 안뜨면 이건 연결 안된거!

	세팅에서 두번째 이더넷도 on으로 바꾸기! -> ip addr 치고  3. enpOs8 여기에 ip가 기다리면 나옴

램카드를 설치했다 -> IP가 기본이 루프백이 아니다 -> 서버 접속하려면 서버 ip를 쓰는게 원칙 -> 실제 서버 IP에 직접 접속하는 방식 할거!

스냅 패키지 관리 -> apt랑 유사함!

스냅 개념
	Ubuntu 에 새로 도입한 패키지 형식으로 샌드박스(완전히 격리된 형테) 형태 패키지
	패키지를 만들때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함
	
스냅 장점
	개발자가 다른 패키지나 라이브러리 의존성에 대하여 고려하지 않고 개발	
	기존 시스템과 격리되어 실행하는 샌드박스 형식으로 보안 강화

스냅 단점
	패키지 용량이 크다
	
스냅 명령
	스냅이 별도로 설치 되지 않은 경우 설치 후 사용
		sudo apt-get install snap
	snap [옵션] 명령
		install 스냅명 - 지정한 스냅 설치
		list - 설치한 스냅 목록 출력
		remove 스냅명 - 스냅 삭제 - sudo 필요
		info 스냅명 - 지정한 스냅 상세 정보 출력
		find 스냅명 - 지정한 스냅 검색

snap find hello-world
sudo snap install hello-world
snap list
hello-world -> Hello World!
snap info

파일 아카이브 및 압축

파일 아카이브 - 파일들을 하나로 묶는 동작

	tar 명령
		tar 기능 [옵션] <아카이브 파일> <아카이브 대상>
			c - 새로운 tar file내영생성
			t - tar 파일 내용 출력
			x - tar 파일을 원본 형태로 추출
			r- 새로운 파일 추가
			f - 아가이브 파일 추가
			-j - bz2 형식으로 압축 또는 해제
			-z - gz형식으로 압축또는 해제

		tar cvf <.tar><아카이브대상> -> 아카이브 파일 생성
		tar xvf <.tar><아카이브 대상> -> 파일 내용 확인

압축 - 파일 크기를 출이는 동작

	리눅스 압축명령은 파일 아카이브를 수행하지 않고 압축만 수행
		
	
	gzip/gunzip 명령 -> 이거 많이 씀! -> 확장자 .gz임

		gzip [옵션] <파일 >
			-ㅣ - 압축 파일 정보 확인
			-r - 하위 디렉토리로 이동하여 파일 압축
			-v - 압축 정보 화면 출력
			-9 - 최대한 압축
	
		gunzip <파일명> - 압축해제
	
	bzip2/bunzip2 명령
		압축 파일 확장자 -> bz2
		-l : 압축 파일 정보 확인
		-best: 최대한 압축
		-d: 파일 압축 해제
		bunzip2<압축파일명> - 압축해제

	zip/unzip 명령
		zip 파일 명 -> 압축 (zip cron.out.zip cron.out)
		unzip 파일명 -> 압축해제

네트워크 명령

네트워크 명령

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

호스트 접속 확인 명령 -> 네트워크 연결되었는지 확인하는 절차!

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

-c 횟수 - 횟수만큼 패킷 송수신
ICMP 기반 명령으로 해당 호스트가 보안 문제 때문에 응답을 하지 않는 경우가 이삳

원격 호스트에 대한 패키지 경로 표시

ubuntu - trace route 패키지 - 설치 해야함
centos - trace path 패키지 - 설치 해야함

trace route [옵션]<호스트>
-n: 주소를 ip address로 표시
-m (maxtti) 패킷 최대 TTL (hops랑 같다 - 최대 몇번까지 다시 보낼수 있는지)설정

원격 호스트에 대한 패킷 경로 표시

	호스트 ip주소/도메인명 검색
		DNS에 해당 host 에 대한 ip 주소 /도메인명 검색 요청 명령
		- /etc/resolv.conf - 파일에 검색 요청할 dns 정보 기록
		host [옵션] <domain or Ip address> 
			-v -상세정보 표시

	

SSH client ————이건 좀 중요한듯

		ssh [옵션] <[사용자명]@<호스트명>>
			-I : <공개키 파일 경로  파일명> 공개키 파일 (아이)
			-l user - 원격 호스트에 접속할 사용자명
			exit 하면 연결 종료 
	
			ssh worker@127.0.0,1 -> 이건 패스워드만
			ssh <host IP> -> 이건 id와 패스워드 입력해줘야함

			

ssh-keygen 명령

		공개키 / 개인키 생성 명령
		ssh-keygen 누르면 됨 -> 그럼 위치 어디에 할건지 물어봄-> 이게 개인키 넣는곳
		-> 비밀구조문구 할건지 물어봄 -> 이걸로 암호를 만든다 -> 
		
		사용자 홈 디렉토리에 공개키와 개인키 저장
		개인키 - /.ssh/id_rsa
		공개키 -  (/.ssh/id_rsa.pub) 공개키의 permission은 소유자만 읽기 쓰기 부여
		chmod 600 id_rsa.pub

		cat ~/.ssh/known_hosts 는 
		ssh -I ~/.ssh/id_rsa.pub worker@127.0.0.1

CLI방식의 웹 브라우저

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

wget [옵션] URL - 파일로 바로 저장!

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

curl [옵션] URL - 애는 결과가 바로 나옴!!

설치 필요 (sudo snap install curl, sudo apt install curl)
		-o: download결과를 url에서 가져온 파일명으로 저장
		-o file: 다운로드 결과를 파일로 저장

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

		ip [옵션] address [내부 명령]
			-s 상세 정보 
			-f family - 네트워크 주소 종류 family
			-r 호스트 명 표시
		내부 명령
			show - device 주소 표기
			add addr - device 주소 추가
			del addr - device 주소 삭제
			flush dev - device 주소 일괄 삭제

		ifconfig 명령 - 향후 삭제 대상 명령
			ubuntu에서 사용을 원하면 패키지 설치
			sudo apt install net-tools
	
	인터넷 경로(라우팅) 설정
		ip route [내부명령어]
		route [옵션][내부 명령어]
	
	네트워크 소켓 정보 및 접속 상환 표시
		ss [ 옵션 ]
		ip [ 옵션 ] link [ 내부 명령 ]
		netstat [ 옵션 ]
			- I 네트워크 인터페이스 접속
			- r 라우팅 테이블 표시
			- s 프로토콜 통계 정보
			- l - 접속 대기 중인 소켓만 표시(엘)
			-t - TCP 소켓정보 표시
			-n - IP address 형식으로 출력	
	

오늘 질문해서 알아낸 흥미로운 내용들

압축한다고 계속 압축해도 줄지는 않는다!!!
압축은 반복하는걸 줄이는 걸 말한다!

네이버 같은곳은 하나의 도메인 이지만 여러개의 서버를 운영한다!!
도메인은 공신력있는 단체에서 사용을 허락해주는거 -> 일정 비용을 주면서 (생각보다 적음)
가비아는 대행 서비스 이다

팀원들 문제 풀어보기

1번째 문제- systemctl 명렁어를 사용해서 systemd 안에 유닛들중 원하는 정보만 가져오는 문제

sudo systemctl list-units --state=enabled 
sudo systemctl list-units --state=failed
sudo systemctl list-units --type=service --state=running

-> 문제를 풀면서 느낀점 :
sudo systemctl list-units로 모든 unit 파일을 보고 뒤에서 필터링을 어떻게 할지 적어주는게 중요하다

2번째 문제 - 패키지 설치 연습용 문제

sudo apt-get update - 이게 설치전 매번 해야하는 것
sudo apt-get upgrade
sudo apt-get install 패키지
sudo apt-get --reinstall install 패키지-> 패키지 재설치
sudo apt-chache search 패키지 이름	

셀프 피드백

디스크 부분부터 이해 안되는 부분들이 많으니까 실습 자료 찾아보면서 한번씩 해보고 그 전내용들이랑 이해하려고 노력해봐야겠다.

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글