SSH란?
Secure Shell의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜이다.
기존 원격 접속은 텔넷(Telnet)방식을 이용했는데 암호화를 제공하지 않아 보안상 취약하다는 단점이 있었다.
이로 인해서 암호화하는 SSH 기술이 등장하였고 현재는 접속 보안을 위한 필수적인 요소로 자리 잡았다.
SSH의 작동 원리
SSH를 구성하는 가장 핵심적인 키워드는 'KEY'이다. 사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있고 이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받는 것이다.
여기서 키 생성하는 방식이 두가지가 있는데 '대칭키'와 '비대칭키(공개 키)'방식이다.
비대칭 키
사용자와 서버가 서로의 정체를 증명해야 할때 사용되는 키이다. 비대칭키 방식에서 서버 또는 사용자가 Key Pair를 생헝한다.
키페어는 공개 키와 개인 키의 두가지로 이루어진 한쌍을 뜻하며 공개키의 경우 .pub, 개인키의 경우 .pem의 파일 형식을 띄고 있다.
서버는 공개키를 받아서 랜덤값을 이 공개 키로 만들어진 랜던한 값을 생성한다.
이 값은 사용자가 올바를 키 페어를 가지고 있는지 확인하는 용도로 사용된다.
이 랜던 값을 사용자가 가지고 있는 개인키를 이용해서 해석한다. 이때 공개 키와 개인 키는 하나의 Pair이기 때문에 다른 공개 키나 개인 키를 이용해서 풀어낼 수 없다.
개인키로 해석한 값을 사용자는 다시 서버로 보내게 되고 서버는 자신이 처음에 낸 값과 비교를 해 두 값이 같아지게 되면 접속을 허용하게 된다.
대칭 키
비대칭키로 접속을 허용 받았다면 정보를 주고 받아야 한다. 이때 정보가 새어나가지 않도록 정보를 암호화해서 주고 받는데 이때 사용 되는 것이 대칭키이다. 대칭키의 경우 비대칭키와 다른게 한개의 키만 사용을 한다.
서버와 사용자는 하나의 대칭키를 만들어 서로 공유를 하고 공유된 대칭키를 이용해 암호화 하고 받은 쪽에서는 공유된 대칭키를 통해 함호를 풀어서 정보를 습득한다. 정보교환이 종료되면 대칭키는 폐기되며 나중에 다시 접속할 때 새로운 대칭키를 생성해서 사용한다.
ifconfig란?
ifconfig는 “interface configuration”의 약자로 리눅스의 네트워크 관리를 위한 인터페이스 구성 유틸리티로 리눅스 명령 줄 인터페이스 중에서 ifconfig는 top과 함께 가장 많이 쓰인다.
ifconfig 명령은 현재 네트워크 구성 정보를 표시하고 네트워크 인터페이스에 IP 주소, 넷 마스크 또는 broadcast 주소를 설정하고 네트워크 인터페이스의 별칭을 만들고 하드웨어 주소를 설정하고 네트워크 인터페이스를 활성화 또는 비활성화하는 등 다양한 곳에 사용된다.
ifconfig 사용 해보기
네트워크 인터페이스 확인하기
인수가 없는 ifconifg 명령을 통해 인터페이스의 세부 사항을 표시 할 수 있다. 단, 비활성화된 네트워크 인터페이스를 볼 수 없다.
내용의 의미는 아래와 같다.
- [enp0s3] : 네트워크 인터페이스
- [flags] : 네트워크 카드의 상태 표시
- [mtu] : 네트워크 인터페이스의 최대 전송 단위(Maximum Transfer Unit)
- [inet] : 네트워크 인터페이스에 할당된 IP 주소
- [netmask] : 네트워크 인터페이스에 할당된 넷마스크 주소
- [broadcast] : 네트워크 인터페이스에 할당된 브로드캐스트 주소
- [inet6] : 네트워크 인터페이스에 할당된 IPv6 주소
- [prefixlen] : IP 주소에서 서브 넷 마스크로 사용될 비트 수
- [scopeid] : IPv6의 범위. LOOPBACK / LINKLOCAL / SITELOCAL / COMPATv4 / GLOBAL
- [ether] : 네트워크 인터페이스의 하드웨어 주소
- [RX packets] : 받은 패킷 정보
- [TX packets] : 보낸 패킷 정보
- [collision] : 충돌된 패킷 수
- [Interrupt] : 네트워크 인터페이스가 사용하는 인터럽트 번호
모든 네트워크 인터페이스 구성 확인하기
ifconfig에 -a옵션이 들어가게 되면 비활성화된 네트워크 인터페이스를 볼수 있게 된다.
이때 비활성화된 네트워크가 없다면 -a 이 있어도 다르게 보여지는 것은 없다.
특정 인터페이스 정보만 보기
ifconfig [interface_name] 을 통해서 해당되는 인터페이스의 정보만 보는 것이 가능하다.
특정 인터페이스 비활성 하기
ifconfig [interface_name] down 을 통해서 해당되는 페이스를 비활성화 할 수 있다.
특정 인터페이스 활성화 하기
ifconfig [interface_name] [up,broadcast,runnin,multicast] up,broadcast,runnin,multicast 중 하나를 사용해 을 통해서 해당되는 페이스를 활성화 할 수 있다.
특정 인터페이스 IP 하기
ifconfig [interface_name] [ip] 를 사용해서 네트워크 인터페이스에 아이피 설정을 바깔 수 있다.
특정 인터페이스 넷마스크 변경하기
ifconfig [interface_name] netmask [netmask_info] 를 사용해 네트워크 인터펭스에 넷마스크 설정을 바꿀 수 있다.
특정 인터페이스에 브로드캐스트 주소 변경하기
ifconfig [interface_name] broadcase [broadcast_info] 를 통해 네트워크 인터페이스에 브로드캐스트 설정을 바꿀수 있다.
해당 인터페이스에 IP / 넷마스크 / 브로드캐스트 주소 한꺼번에 변경하기
ifconfig [interface] [ip] netmask [netmask_info] broadcast [broadcast_info]를 통해 한꺼번에 변경도 가능하다.
인터페이스에 맥 어드레스 할당하기
ifconfig [interface] hw ether [mac address]를 통해 네트워크 인터페이스에 맥 주소 설정을 바꿀 수 있다.
인터페이스에 별칭 추가해서 가상 인터페이스 만들기
ifconfig [interface]:0 [ip]을 사용하여 별칭을 사용하여 네트워크 인터페이스에 여러개의 IP를 설정 할 수 있다.
나의 Public IP 확인하기
리눅스 터미널에서 4가지의 방법으로 현재 나의 Public IP를 확인 할 수 있다.
dig Utility 사용하기
dig +short myip.opendns.com @resolver1.opendns.com
host Utility 사용하기
host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
wget Command Line Downloader 사용하기
wget -qO- http://ipecho.net/plain | xargs echo
wget -qO - icanhazip.com
curl Command Lind Downloader 사용하기
curl ifconfig.co
curl ifconfig.me
참고문서
가비아 라이브러리
IT 콘텐츠 허브
library.gabia.com
리눅스 네트워크 관리에 필요한 <ifconfig> 사용법 11가지 | 와탭 블로그
ifconfig 명령어로 네트워크 인터페이스 관리하기
www.whatap.io
4 Ways to Find Server Public IP Address in Linux Terminal
In this article, we will explain four useful ways to find out your Linux machine or server public IP address from the terminal in Linux.
www.tecmint.com
'Computer Science(CS)' 카테고리의 다른 글
[CS-Linux] 리눅스 시스템 모니터링 명령어 (1) | 2024.04.25 |
---|---|
[CS-Linux] systemd, systemctl 그리고 chmod, chown (0) | 2024.04.25 |
[CS] nslookup, ping, talnet 그리고 tracert (0) | 2024.04.25 |
[CS] curl 와 Http 테스트 (0) | 2024.04.25 |
[용어] 프로그래밍 용어 정리 (0) | 2024.04.01 |