Ubuntu Server 파일 설치
Get Ubuntu Server | Download | Ubuntu
Option 2 -> Download Ubuntu Server 20.04.2 LTS 클릭
오늘 과정에선 더 진행하지 않았다. 아마도 내일 우분투 서버를 실행할 수 있을 듯하다.
Host-Only Ethernet Adapter 설정
VirtualBox 초기화면에서 Ubuntu-Desktop을 선택하고 설정 - 네트워크 - 어댑터2 에서
'네트워크 어댑터 사용하기' 체크, 다음에 연결됨을 '호스트 전용 어댑터'로 설정하고 확인 버튼 클릭.
Ubuntu를 부팅하고 시스템 인디케이터를 통해 설정에 진입한다.
이후 Network 설정에서 새로 생긴 2번 어댑터인 enp0s8의 설정(톱니바퀴)을 클릭한다.
IPv4 탭에 들어와 Method를 Manual로 바꾸고 직접 Addresses를 입력하고 Apply한다.
네트워크 허용 옵션에 따라서 이 설정 없이 될 수도 있고 안 될 수도 있다.
필자의 경우 '모든 네트워크'에서 공유 켜기 옵션을 켜야 했다.
우분투에서 IP 확인 시 정상적으로 바뀐 모습이다.
기존 DHCP에 따른 4번째 Octet이 101이었던 IP주소로 때린 핑과
Manual로 설정 후에 때린 핑이 모두 성공적으로 돌아온 모습.
어댑터 2를 처음 만들 때는 DHCP로 생성했었는데 그 과정을 스크린샷으로 담지 못했다.
어떻게 생성하는지, 어떻게 Manual 방식을 사용할 수 있는지만 알면 된다.
CIDR(Classless Inter-Domain Routing) 표기법 (사이더 표기법)
IPv4 : 총 32bit, 4개의 Octet으로 되어 있으며 각 Octet의 구분은 .으로 한다.
8bit.8bit.8bit.8bit
class 표기법
A class : 0으로 시작한다. 00000000 ~ 01111110(126)(127은 사용 불가)
ex) Google : 8.8.8.8 (A class)
서브넷 마스크 : 255.0.0.0
8.x.x.x -> 255*255*255가지의 IP를 사용 가능
B class : 10으로 시작한다. 10000000(128) ~ 10111111(191)
ex) 한국 통신 DNS : 168.126.63.1 (B class)
서브넷 마스크 : 255.255.0.0
168.126.x.x -> 255*255가지의 IP를 사용 가능
C class : 110으로 시작한다. 11000000(192) ~ 11011111(223)
ex) 212.34.56.78
서브넷 마스크 : 255.255.255.0
212.34.56.x -> 255가지의 IP를 사용 가능
클래스 방식은 A,B는 남고 C는 부족해서 Classless를 사용하기로 했다.
CIDR 표기법 (IP/비트 수)
213.34.56.78/8 : Octet 1개 가림
213.34.56.78/16 : Octet 2개 가림
213.34.56.78/24 : Octet 3개 가림
213.34.56.78/18 : Octet 2개와 2진수로 변환한 3번째 Octet의 앞 두 자리를 가림.
IPv6 : 총 128bit.
32bit.32bit.32bit.32bit
서버의 원격 관리
TELNET : 고전적인 방식, 보안에 취약함.
SSH(Secure Shell) : 인증서를 통한 보안이 뛰어나지만 GUI를 제공하지 않음.
XRDP : GUI를 제공하지만 그만큼 퍼포먼스가 느림.
준비 사항
Client Server
-----------------------------------------------------------------------------------------
Web Browser <--------80-------> Web Server(Apache, Nginx)
Telnet Client Tool <--------23-------> Telnet Server
SSH Client Tool(PuTTY) <--------22-------> SSH Server(openssh-server)
DB Client Tool <-------3306------> DB Server
(MySQL의 경우)
소켓의 구성
OSI 제 3계층 (Network Layer) : IP (공항 = 목적지)
OSI 제 4계층 (Transport Layer) : TCP/UDP 포트 (게이트 번호) : 0 ~ 65535
TELNET 서버와 클라이언트
TELNET은 보안이 취약하기 때문에 실제로 사용할 순 없고 SSH 전에 연습삼아 해보는 것이다.
$ sudo apt update
$ sudo apt install xinetd telnetd
뒤에 붙는 d는 daemon의 약자로 백그라운드 실행을 의미한다고 한다.
설치가 완료되면 위 경로로 찾아가 관리자 권한으로 telnet 파일을 만든다.
$ sudo gedit telnet
gedit에서 g는 GNU를 의미한다. 만든 telnet 파일을 열어서 위와 같이 작성하고 저장해준다.
cat 명령어를 통해 작성된 내용을 확인.
$ sudo adduser teluser
'teluser'라는 유저네임으로 유저를 생성한다.
비밀번호와 비밀번호 확인을 입력하고 나머지 부가 정보는 Enter키로 스킵한다.
$ sudo systemctl restart xinetd
$ sudo systemctl enable xinetd
$ sudo systemctl status xinetd
서버 준비를 위해 3종 세트를 실행.
이제 윈도우즈의 cmd에서 연결을 시도해보면 연결할 수 없다고 나온다.
방화벽이 활성화 되어있어 모든 포트가 막혀있기 때문이다.
리눅스 서버에 가서 방화벽이 active임을 확인하고,
$ sudo ufw allow 23/tcp 로 23번 포트를 TCP로 연다.
v6는 IPv6를 의미함
다시 cmd에서 접근을 시도해보면 권한이 거부되었다는 알림이 나온다.
관리자가 아닌 일반 유저는 접근할 수 없기 때문이다.
아까 작성한 문서에서 유저네임을 root로 바꾼다. 관리자를 뜻하는 고정 이름이다.
적용을 위해 다시 한 번 삼총사 실행.
다시 cmd로 이동해 접속해보면 드디어 접근이 됨을 확인할 수 있다.
윈도우즈 환경이 아닌 우분투 리눅스 환경임을 확인하기 위한 명령어 테스트.
cls는 찾을 수 없는 명령어라고 나오고, clear를 입력 시 명령이 수행된다.
SSH 서버와 클라이언트 (feat. PuTTY)
$ sudo apt install openssh-server 명령으로 SSH 서버 패키지를 설치한다.
화면엔 나오지 않았지만 설치 전에 동기화를 위해 $ sudo apt update를 반드시 실행해주어야 한다.
서버 준비를 위해 systemctl 삼총사 실행.
SSH의 포트번호인 22/tcp를 허용해주고, TELNET을 위해 열었던 23/tcp는 닫아준다.
서버는 기본적으로 필요한 포트 외에는 전부 닫아야 하기 때문.
Windows 10에 PuTTY 설치 마법사를 설치하고 진행한다.
PuTTY 프로그램 설치가 완료되면 실행한다. 위 사진은 초기화면이다.
Session 메뉴에서 IP와 포트 번호를 입력한다.
Appearance 메뉴에서 폰트와 글씨 크기 등을 변경할 수 있다.
Colours 메뉴에서 테마 색상을 변경할 수 있다.
설정을 마쳤으면 Session 메뉴에서 이름을 입력하고 Save 버튼을 클릭해 세팅값을 저장한다.
저장 후 Open을 하면 뜨는 경고창인데, 최초로 서버를 열 때 나오는 인증서가 믿을 수 없다고 판단되는 경우 뜬다.
믿을 수 있으므로 '예' 클릭.
실행된 PuTTY에 비밀번호를 입력하면 우분투 서버의 Terminal에 접속할 수 있다.
겉으로 보기엔 TELNET과의 차이를 모르겠지만 통신 과정에서 패킷에 대해 암호화와 복호화가 이루어져
중간에 해커가 패킷을 가로채더라도 내용을 해석할 수 없다고 한다.
서버의 조건
1. 머신이 서버여야 한다.
2. OS가 서버용 OS여야 한다.
3. 서버 프로그램(Package)이어야 한다.
4. 서비스가 Start 되어야 한다.
Windows 10에서 Port Number 목록 보기
C:\Windows\System32\drivers\etc 경로에서 services 파일을 열면 된다.
apt 명령어
apt -y install [패키지 이름] : 설치 여부 재확인 스킵 옵션
apt update : /etc/apt/sources.list 파일의 내용이 수정되었다면 이 명령으로 패키지 목록을 업데이트 해야 함
(인터넷에 연결되어 있지 않으면 불가하기 때문에 인터넷 연결 여부를 확인할 수 있다.)
apt remove [패키지 이름] : 기존 설치된 패키지 제거
apt purge [패키지 이름] : 기존 설치된 패키지를 설정 파일을 포함해 완전히 제거
apt autoremove : 사용하지 않는 패키지를 모두 제거
apt clean / apt autoclean : 설치할 때 내려받기한 파일 및 과거의 파일을 제거
apt-cache show [패키지 이름] : 패키지의 정보를 화면에 출력
apt-cache depends [패키지 이름] : 패키지에 대한 의존성 정보를 출력
apt-cache rdepends [패키지 이름] : 이 패키지에 의존하는 다른 패키지의 목록 출력
add-apt-repository : PPA 생성
dpkg 명령어 옵션
dpkg -i || --install 패키지파일이름.deb : 패키지 설치
dpkg -r || --remove [패키지 이름] : 기존에 설치된 패키지 제거
dpkg -P || --purge [패키지 이름] : 기존에 설치된 패키지 삭제 및 설정 파일까지 모두 제거
dpkg -l [패키지 이름] : 설치된 패키지에 대한 정보 출력
dpkg -L [패키지 이름] : 패키지가 설치한 파일 목록 출력
dpkg -info 패키지파일이름.deb : 패키지 파일에 대한 정보 출력
NAT Network 포트 포워딩을 위한 사전준비
VirtualBox 초기 화면 -> 파일 -> 환경설정 -> 네트워크 -> 녹색 플러스 아이콘 클릭.
주황색 톱니바퀴 아이콘 클릭.
네트워크 이름을 설정하고 아래의 '포트 포워딩' 버튼 클릭.
우측의 녹색 플러스 아이콘을 클릭해 Rule을 하나 만들고, 이름을 설정한다.
호스트 IP와 호스트 포트를 받아 게스트 IP와 게스트 포트로 포워딩 시키는 것이 포트 포워딩이라고 한다.
위와 같이 설정한다.
오늘은 여기까지 설정하고, 내일 수업 때 포트 포워딩과 NAT Network에 대해 공부한다.
'IT > Linux' 카테고리의 다른 글
210824 - Apache Web Server / Nginx Web Server 구축 (0) | 2021.08.24 |
---|---|
210823 - XRDP / WSL2 / Linux 명령어 몇 가지 (0) | 2021.08.23 |
210820 - NAT Network와 포트 포워딩, GuestOS 간 통신 / SSH(Secure Shell) Server 연결 / Ubuntu Server 설치 / Shell과 BASH에 관한 개념 (0) | 2021.08.20 |
210818 - 네트워크에 관한 몇 가지 개념 / 우분투 리눅스 패키지 설치 (0) | 2021.08.18 |
210817 - 첫 수업 / 가상화 프로그램과 우분투 리눅스 설치 (0) | 2021.08.17 |