교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)
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)
'전공과목 정리 > 리눅스시스템 + 시스템프로그래밍' 카테고리의 다른 글
[리눅스시스템🐧] 9장 유틸리티 (4) | 2024.01.05 |
---|---|
[리눅스시스템🐧] 8장 파일 유틸리티 (4) | 2024.01.05 |
[리눅스시스템🐧] 6장 프로세스 (4) | 2024.01.03 |
[리눅스시스템🐧] 5장 쉘과 명령어 사용 (2) | 2024.01.03 |
[리눅스시스템🐧] 4장 파일 사용 (2) | 2024.01.02 |