전공과목 정리/리눅스시스템 + 시스템프로그래밍

[리눅스시스템🐧] 7장 인터넷과 서버

최연재 2024. 1. 3. 06:09

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)

 

7.1 네트워크 구성

1) LAN

- 근거리 통신망으로 집, 사무실, 학교 등과 같이 가까운 지역을 묶는 컴퓨터 네트워크

- 이더넷 : 제록스 PACRC에서 개발된 LAN 구현 방법으로 현재 가장 일반적으로 사용되고 있다.

 

 

2) 라우터

- 두 개 이상의 네트워크를 연결하는 장치

- 데이터 패킷의 목적지를 추출하여 그 경로에 따라 데이터 패킷을 다음 장치로 보내주는 장치

- 공유기 혹은 스위치라 함.

3) 게이트웨이

- 일종의 고용량 라우터로 LAN을 인터넷에 연결하는 장치

- 컴퓨터/프린터 등의 무선 장치들을 유선망에 연결할 수 있게 하는 장치

 

7.2 인터넷

1) 인터넷

- 인터넷 : 전세계 컴퓨터가 서로 연결되어 TCP/IP 프로토콜을 이용해 정보를 주고받는 공개 컴퓨터 통신망

- 프로토콜

  • 서로 다른 기종의 컴퓨터 사이에 어떤 자료를, 어떤 방식으로, 언제 주고받을지 등을 정해놓은 규약
  • 간단히 통신을 하기 위한 규약

2) TCP/IP 프로토콜

- IP(Internet Protocol)

  • 호스트의 주소 지정과 패킷 분할 및 조립 기능에 대한 규약
  • 인터넷 상의 각 컴퓨터는 자신의 IP주소를 갖는다.
  • IP주소는 네트워크에서 장치들이 서로를 인식하고 통신을 위해서는 사용하는 주소

- TCP(Transport Control Protocol)

  • IP 위에서 동작하는 프로토콜
  • 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다.

3) 호스트명과 IP 주소

- 인터넷에 연결된 컴퓨터에게 부여되는 고유한 이름

- 호스트명은 보통 사람이 읽고 이해할 수 있는 이름

- 도메인이름(domain name)이라고도 한다.

- 호스트명

  • $ hostname
  • 사용 중인 시스템의 호스트명을 출력한다.

- IP 주소

  • $ ip addr
  • 사용 중인 시스템의 IP 주소를 출력한다.

4) DNS

- 호스트명을 IP주소로 번역하는 서비스

- nslookup(name server lookup)

  • 도메인 이름 서버(domain name server)에 호스트명 질의
  • $ nslookup 호스트명 : 지정된 호스트의 IP 주소를 알려준다.

5) 사용자 정보

$ finger 사용자명

: 지정된 사용자에 대한 보다 자세한 정보를 알려준다.

 

7.3 서버 설치

1) 웹 서버

- 웹 서버

  • 리눅스 시스템이 많이 사용되는 분야 중 하나
  • 리눅스에 웹 서버가 설치돼야 사용 가능

- 아파치 웹 서버

  • 현재 가장 널리 사용되고 있는 웹 서버
  • 우분투에서 설치할 패키지 이름 : apache2
  • CentOS에서 패키지 이름 : httpd

- PHP

  • 웹 프로그래밍 언어
  • 웹 서버와 더불어 사용자의 요청에 따라 동적으로 웹 페이지를 생성하는 데 사용
  • 광범위한 데이터를 서비스하기 위해 MariaDB 데이터베이스와 연동하여 사용함.

- APM : 아파치 웹 서버, PHP,  MariaDB 통칭

 

2) 아파치 웹 서버 설치

- 필요에 따라 아파치 웹 서버, PHP,  MariaDB 설치

# apt install apache2
# apt install php
# apt install mariadb-server

 

- 구동(start), 서비스 활성화(enable), 실행 상태(status) 확인

# systemctl start apache2
# systemctl enable apache2
# systemctl status apache2

- mariadb를 설치한 경우 구동(start), 서비스 활성화(enable), 실행 상태(status) 확인

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb

- 방화벽에 http를 등록하고(add-service), 바로 적용(reload), 리스트해서 확인(list-all)

# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload
# firewall-cmd --list-all

 

3) FTP 서버 설치

- 대표적인 FTP 서버 : vsFTPD(Very Secure File Transfer Protocol Daemon)

- FTP 설치

# apt install vsftpd

- vsftpd를 시작(start), 서비스 활성화(enable)

# systemctl start vsftpd.service
# systemctl enable vsftpd.service

- 방화벽에 신뢰할 수 있는 서비스로 등록

# firewall-cmd --add-service=ftp

 

4) 원격 접속 서버 SSH

- 원격 접속

  • 로컬 호스트에서 원격으로 다른 호스트에 접속하여 사용하는 것
  • telnet은 보안 취약점으로 인해 리눅스에서는 지원하지 않음.
  • 보안을 강화한 원격 접속 서버인 ssh(Secure Shell)을 지원함.

- ssh 데몬(sshd) 설치 후 서비스 시작

# apt install ssh
# systemcl start ssh
# systemctl enable ssh
# systemctl status ssh

 

7.4 파일 전송

1) FTP (File Transfer Protocol)

- FTP 서버와 클라이언트 사이의 파일 전송을 위한 서비스

- 주로 파일을 업로드하거나 다운로드하기 위해 사용

- ftp 또는 sftp(secure ftp) 명령어를 이용하여 파일 전송

$ ftp -n [호스트명] 

$ sftp -n [호스트명] 

: 호스트명으로 지정된 FTP 서버에 접속하여 파일을 업로드 혹은 다운로드한다.

- FTP 내부 명령어

명령어 의미
!command 로컬 호스트에서 명령어 실행
lcd path 로컬 호스트의 작업 디렉토리 변경
cd path 원격 호스트의 작업 디렉토리 변경
get 파일명 해당 파일을 다운로드한다.
mget 파일명* 여러 파일들을 다운로드한다. 대표문자 사용 가능
put 명령어 해당 파일을 업로드한다.
mput 파일명* 여러 파일들을 업로드한다. 대표문자 사용 가능
help 도움말
ls [path] 원격 호스트의 해당 디렉터리 리스트
pwd  원격 호스트에서 현재 작업 디렉터리 프린트
quit 종료
ascii 전송 모드를 아스키 모드(ascii mode)로 설정 (기본 설정이며 텍스트 파일 전송 시 사용)
bin 전송 모드를 이진 모드로 설정 (실행 파일,이진 파일 전송 시 사용)

 

 

7.5 원격 접속

1) telnet

$ telnet 호스트명(혹은 IP주소) : 지정된 원격호스트에 원격으로 접속한다.

 

2) 안전한 원격 접속 : ssh

-  원격 로그인 혹은 원격 명령 실행을 위한 프로그램

  • 보안을 위해 강력한 인증 및 암호화 기법 사용
  • 기존의 rsh, rlogin, telnet 등을 대체하기 위해 설계됨.

- 사용법

$ ssh 사용자명@호스트명

$ ssh -l 사용자명 호스트명

: 지정된 원격 호스트에 사용자명으로 원격으로 접속한다.

 

-원격 명령 실행 : $ ssh 호스트명 명령

 

3) 호스트 확인 : ping

- 원격 컴퓨터의 상태 확인

$ ping 호스트명

: 지정된 원격 호스트가 도달 가능한지 테스트하여 상태를 확인함.

 

7.6 원격 데스크톱 연결

1) 원격 데스크톱 연결

- 원격 데스크톱 프로토콜 (Remote Desktop Protocol, RDP)

  • 원격 데스크톱 연결을 위한 프로토콜
  • 다른 컴퓨터에 GUI를 제공하는 프로토콜

2) 원격 데스트톱 설치

- 자동설치 도구 apt를 통해 xrdp 서버 설치

 # apt install xrdp

 

- systemctl 명령으로 xrdp 서비스 시작

# systemctl start xrdp.service

 

- systemctl 명령으로 xrdp 서비스가 실행되었는지 확인

# systemctl status xrdp.service

 

- 부팅할 때 xrdp 서비스가 자동으로 실행되도록 설정

# systemctl enable xrdp.service

 

- 방화벽에서 xrdp의 포트를 열어준 후에 방화벽 재시작

# apt install ufw

# ufw enable

# ufw allow from any to any port 3389

 

7.7 월드 와이드 웹

1) 월드 와이드 웹(World Wide Web, W3)

- 월드 와이드 웹(WWW)

: 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간

- 하이퍼텍스트 (hypertext)

  • 문서 내의 어떤 위치에서 하이퍼링크를 통해 연결된 문서나 미디어에 쉽게 접근
  • 하이퍼텍스트 작성 언어 : HTML(Hyper Text Markup Langauge)

- HTTP (Hyper Text Transfer Protocol)

  • 웹 서버와 클라이언트가 통신할  때 사용하는 프로토콜
  • 웹 문서뿐만 아니라 일반 문서, 음성, 영상, 동영상 등 다양한 형식의 데이터 전송

- URL (Uniform Resource Locator)

: 인터넷에 존재하는 여러 가지 자원들에 대한 주소 체계

 

2) 웹 브라우저 (web browser)

- 웹 브라우저

  • WWW에서 정보를 검색하는 데 사용하는 소프트웨어
  • WWW에서 가장 핵심이 되는 소프트웨어

- 웹 브라우저 종류

  • 1993년, 모자이크(Mosaic)
  • 1994년, 넷스케이프(Netscape)
  • 1995년, 인터넷 익스플로어(Internet Explorer)
  • 파이어폭스(Firefox)
  • 사파리(Safari)
  • 크롬(Chrome)