10주차 CSM_실습일지📝

ᴶᴬᴱᵞᴼᴼᴺ·2021년 5월 8일
1

컴퓨터 시스템관리

목록 보기
10/15
post-thumbnail

💡 10주차에는 네트워크에 대한 이론적인 부분을 배우고 Client-Server모델 중 Telnet Server, SSH Server, VNC Server에 대한 각각의 작동방식을 알아보며 직접 구축하고 접속해보는 실습을 했다.

📌 실습과제 영상

(SSH 설치 및 설정하고 원격으로 접속되는 모습)
: https://youtu.be/J67J_2UvCqg

새로 배운 내용

✔ 네트워크
▪ TCP/IP
-TCP(Transmission Control Protocol) : 통신의 송수신을 다룸
-IP(Internet Protocol) : 데이터 통신을 다룸
-패킷(packet)통신
: 패킷은 네트워크 상에서 데이터를 주고받는 최소단위임
-인터넷 프로토콜 스위트

▪ host name / domain name : 2단계 or 3단계로 표현
-도메인 네임 : IP주소를 사람이 기억하기 쉬운 이름으로 바꾼 것
-보통 시스템에서 host name은 외부에 공개돼있지X

▪ ip address
-컴퓨터의 네트워크 장치(랜카드)에 부여된, 중복되지 않은 주소
-IP체계 : IPv4, IPv6
-net mask / class
👉 net mask : 특정한 IP주소 찾을 때 사용
👉 class : 각 class는 256개(0~255)를 가지고 있음
-network address : 하나의 네트워크를 통칭할때 씀

▪ broadcast address : 내부 네트워크의 모든 컴퓨터가 수신하는 주소

▪ gateway : 내부 네트워크를 외부로 연결하기 위한 장치

▪ DNS server address : URL을 해당 ip주소로 변환해주는 서버 컴퓨터

✔ 네트워크 : Client-Server Model
: 서비스 요청자인 Clinet와 서비스 제공자인 Server 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처

👀 종류

▪ Web server - Web client (ex. 인터넷 익스플로러, 크롬, 사파리, 파이어폭스, 모질라 등)
: 웹 브라우저 이용하여 데이터 요청함. 그 요청에 따른 결과정보를 웹 서버에서 제공해줌.
원격 접속 지원
▪ Telnet server - Telnet client (ex. telnet, PuTTY 등)
▪ SSH server - SSH client (ex. ssh, PuTTY 등)
▪ VNC server - VNC client (ex. vncviewer, TightVNC 등)
파일 주고받을 수 있는 Server-Client 모델
▪ FTP server - FTP client (ex. FileZila, wsFTP, ftp, gftp 등)
DB에 대한 Server-Client 모델
▪ Oracle server - Oracle client (ex. sqlplus)

✔ Telnet
: 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜
-1990년대 이후 늘어난 인터넷 사용자 및 데이터 양으로 서버를 해킹하는 사례 증가
-보안 문제 때문에 SSH로 대체되고 있음

✔ Telnet Server (23번 포트)
▪ xinetd (eXtended InterNET Daemon)
: 오픈 소스 슈퍼 서버 서비스(데몬)
-네트워크에 들어오는 요청을 듣고, 거기에 맞는 적절한 서비스 실행
-여러 서비스들(telnet, ftp 등)을 통합관리하는 일종의 서비스(데몬)
-서비스별로 별도의 파일 설정 가능
-접속시도 횟수로 접근제어 가능 -> 서비스 거부 공격(DoS) 방지 가능
-서비스 거부, 서비스 접근제어된 경우 상세로그에 기록함

▪ 서비스 service
: 데몬 daemon 이라고도 하며, 서버 프로세스를 의미
-서비스는 시스템과 독자적으로 구동되어 제공하는 프로세스
ex) web server, DB server, FTP server
-서비스는 백그라운드 프로세스의 일종
: 기다리고 있다가 어떤 요청이 들어오면 동작을 해줌
-systemctl (control the systemd system and service manager)
: 서비스를 관리 및 제어하는 명령어

🔽telnet server 설정

service telnet
{
	disable = no
    	flags = REUSE
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/in.telnetd
        log_on_failure += USERID
}

▪ service : 해당 서비스의 이름
▪ disable : 해당 서비스를 하려면 no 로 설정, 서비스를 하지 않으려면 yes 설정
▪ socket_type
-해당 서비스가 TCP 프로토콜을 이용하는 서비스일 경우 stream 으로 설정
-해당 서비스가 UDP 프로토콜을 이용하는 서비스일 경우 dgram 으로 설정

👉 TCP 프로토콜 : 경로를 미리 정해놓고 (최적의 길을 정해놓고) 그 길로 순서대로 패킷을 보냄.
👉 UDP 프로토콜 : 패킷들을 보내서 패킷단위별로 알아서 경로를 찾아가게끔 함. 다양하게 가서 최종목적지에서 순서에 맞춰서 조합하는 형태.

▪ wait
-서비스 요청을 받은 후에 요청받은 서비스가 아직 종료하지 않았을 때 또 다른 서비스요청이 들어오더라도 허용하려면 no 로 설정
-socket_type 을 stream 으로 설정하려면 no 로 설정해야 함
▪ user
-해당 서비스를 어떤 사용자의 권한으로 서비스할 것인지 설정
▪ log_on_failure
-해당 서비스에 접속하지 못하였을 경우에 로그파일에 기록할 내용 설정
-USERID, HOST, ATTEMPT, RECORD 등 설정 가능
-> += 는 /etc/xinetd.conf 파일의 기본설정 항목에 추가할 항목 지정
-> -= 는 /etc/xinetd.conf 파일의 기본설정 항목에서 제거할 항목 지정

[실습💻] Telnet Server 접속하기
1. 리눅스에서 접속

2. windows 에서 접속

3. telnet clinet(iPuTTY)에서 접속

✔ SSH (Secure SHell)
: 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜
👉 기존 rsh, rlogin, telnet 등을 대체하기 위해 설계
▪ 기본으로 22번 포트 사용
▪ IP spoofing (호스트의 IP주소를 바꾸어 이를 통해 해킹) 방지 기능 제공

✔ Open SSH
▪ SSH 프로토콜 이용하여 암호화된 통신 세션을 컴퓨터 네트워크에 제공하는 컴퓨터 프로그램의 모임
👉 기존 상용화된 SSH 제품군을 대체할 목적으로 오픈소스로 작성 및 배포

[실습💻] Open SSH Server 접속하기
1. 리눅스에서 접속

2. SSH client(iPuTTY)에서 접속

✔ VNC Server
▪ VNC (Virtual Network Computing, 가상 네트워크 컴퓨팅)
: 컴퓨터 환경에서 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱 공유 시스템
▪ VNC server
: 그래픽 모드로 원격 관리를 지원하는 서버
-> 원격지에서 X윈도우 환경을 사용할 수 있게 해줌

[실습💻] VNC 서버 구축하기

✔ 텔넷 서버, SSH 서버, VNC 서버 비교

구분텔넷 서버SSH 서버VNC 서버
접속 속도빠름빠름느림 [각각의 그래픽 정보(픽셀 정보)들을 다 제공해야 하므로 주고받을 정보의 양 多]
그래픽 지원XXO (마우스 포인터 조작 가능)
보안취약강함취약하지만 SSH와 연동하여 보완 가능
사용 가능 명령텍스트 명령텍스트 명령텍스트 명령, 그래픽 명령

문제 발생 및 해결방안

  • Telnet Server 접속하는 실습을 하던 중 아래 사진과 같이 Unable to connect to remote host: Connection refused 라는 에러문구가 뜨면서 리눅스에서 telnet server에 접속이 되지 않는 문제가 발생하였다.

    ✍ 해당 에러문구를 그대로 복사하여 구글링해보며 해결방안을 찾아보기도 하고 찾은 정보를 토대로 실행해보기도 했지만 계속 접속에 실패하였다. 그러던 중 교수님께서 Server(b)를 초기화하여 다시 실행해보라는 말씀을 해주셔서 초기화한 후 다시 해보았더니 다행히 문제가 해결되었다.

참고할 만한 내용

회고

  • 플러스(+)
    : 네트워크와 관련된 개념과 Client-Server모델의 여러 종류에 대해 새롭게 배우고 그 중에서 Telnet server, SSH server, VNC server의 구축 및 접속하는 방법에 대해서 실습을 통해 더욱 자세히 알아갈 수 있어서 좋았다. Telnet server 구축하는 실습을 할때 telnet 서버 설정을 vi 편집기에서 하는 과정이 있었는데 vi 편집기에 적은 내용들이 무엇을 의미하는지 하나하나 짚어주며 설명해주셔서 이해하는데 도움이 되었다.

  • 마이너스(-)
    : Telnet server 실습을 하던 중 리눅스에서 telnet server에 접속이 되지 않는 문제가 발생하여 이를 해결하기 위해 구글링하고 이를 토대로 다시 시도해보는데 시간이 많이 소요되었다. 해당 에러문구를 그대로 복사하여 구글에 검색해본 결과 대부분 영어로 쓰여진 답변들이 많아서 안그래도 이번 주에 새로 배운 내용이고 익숙하지 않은 내용인데 더욱 혼란스러움을 느꼈고 수업에서 다루지 않은 내용이 나오기도 해서 구글링을 통한 문제해결에 어려움이 있었다.

  • !!!!!
    : TCP/IP, IP주소체계, Client-Server Model, xinetd, 데몬 등 지금까지 그냥 지나쳐왔던 개념들 뿐만 아니라 배워보지 못한 새로운 개념들을 알아갈 수 있었다. 이번 주에도 실습과정 중 문제가 발생하였지만 문제를 해결해가면서 다음에 또 다른 문제가 발생했을때 어떤식으로 대처해나가야할지에 대해 배울 수 있었다. 여러 Client들이 다양한 Server에 각기 다른 방식으로 접속할 수 있다는 것이 신기했고 이와 관련한 실습을 해볼 수 있어서 좋았다:-)

0개의 댓글