OSI 7Layer 의 각 계층적 구조는 다음과 같다.

OSI 7Layer

Application 계층부터 Transport 계층까지를 Network Edge 라고 하며, 

Network 계층부터 Physcial 계층까지를 Nerwork Core 라고 한다.

 

1) Network Edge

- 인터넷의 말단 부분

- 사용자들이 존재하고, 사용자들이 직접 접할수 있는 네트워크

- 기업 에서 관리되는 부분

 

2) Network Core

- 네트워크 엣지들을 연결해 주기 위해 중간에 위치한 네트워크

- ISP 가 관리하는 부분

- Router , Switch 등등..

 

1. Physical Layer ( 물리 계층 )

- 개별 시스템간 비트단위의 신호를 전송하는 일을 수행하며, 비트 자체에 대한 의미에는 관여하지 않는다

- 대체적으로 케이블 등의 물리적인 형태로 나타낸다

- Hub , UDP 케이블 ( 랜선 ) 등등..

 

2. Data Link Layer ( 데이터 링크 계층 )

- 시스템을 H/W 적으로 구별하며, Frame (프레임) 형태로 Data를 전송하는 역할을 담당

- CRC Error 점검을 통해 손상을 점검한다

- S/W 와 H/W 의 혼용으로 나타낸다

- 랜카드, 브릿지, L2 스위치 등등..

 

3. Network Layer ( 네트워크 계층 )

- 개별 시스템을 논리적으로 구별하는 역할 수행

- 여러 프로토콜의 Routing 을 담당

- IP , ICMP , IPsec, ARP 등의 프로토콜

- H/W 장비 : Router , L3 스위치 등등..

 

4.   Transport Layer ( 전송 계층 )

- 상위 프로토콜을 구분하고 패킷의 순서와 손상을 보장

- 수신자가 발신자에게 응답을 전송하는 역할을 수행

- TCP, UDP, DCCP 등등..

 

5. Session Layer ( 세션 계층 )

- 세션 열결의 설정 과 해제, 세션 메세지 전송 등의 역할을 수행

- 인증, 허가, 세션 회복

- TLS, SSL, 넷 바이오스

 

6. Presentation Layer ( 표현 계층 )

- 네트워크의 데이터 번역 역할 수행

- 데이터 변환, 압축, 암호화 및 암호해제

 

7. Application Layer ( 응용 계층 )

- 전송 계층 프로토콜을 사용하여 호스트 간 연결을 확립

- IP 를 통하는 프로세스간 통신 접속을 위해 설계

- 사용자 인터페이스 로써, 데이터와 그림을 사용자에게 보여주는 역할 수행

- HTTP, SMTP, SSH, FTP 등등..

 

 

※ OSI 7 계층에서는 투명성이 존재해야 한다.

즉, 상위 계층은 하위 계층에서 어떤일이 일어나는지 알 필요가 없어야 한다.

 

* 투명성 : 존재하지만 보거나 알아야 하는 필요가 없는것을 의미한다

            ex) 내 PC와 Naver 사이의 패킷교환이 존재하지만, 사용자가 패킷 교환 과정을 알아야할 필요가 없는것


TCP/IP 4Layer

- 인터넷 프로토콜 스택 이라고도 불리운다

TCP/IP 4Layer

1. Link Layer ( 링크 계층 )

- 네트워크 Routing 경로상 한 노드에서 다른 노드로 패킷을 이동하기 위해 존재하는 계층

- 링크 계층의 통신단위를 Frame ( 프레임 )이라고 함

- Ethernet, PPP, FDDI

=> 국내의 경우 PPP 와 FDDI 는 거의 사용하지 않는다

      PPP 란 Point to Point Protocol 의 약자로, 시리얼 케이블, 전화선 등 전화선으로 통신하는것을 의미한다

      FDDI 란 근거리 통신망의 데이터 전송 표준으로, 군용 이나 의료용 장비에 주로 사용된다

 

2. Network Layer ( 인터넷 계층 )

- 한 호스트에서 다른 호스트로 Datagram ( 데이터그램 ) 을 Routing 하는 역할을 수행

- 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜 제공

- IP , ICMP 등..

 

3. Transport Layer ( 전송 계층 )

- 클라이언트와 서버간 Application 계층 메세지를 전송하는 역할을 수행

- 전송 계층의 통신단위를 Segment  ( 세그먼트 ) 라고 함

- TCP 프로토콜 , UDP 프로토콜 등..

=> TCP : 연결지향 서비스 제공

     UDP : 비연결형 서비스 제공

 

4. Application Layer ( 응용 계층 )

- 여러 종단 시스템에 분산되어 있으며, 한 종단 시스템의 Application 에서 다른 Application 과 정보 패킷을 교환하기 위해 사용되는 계층

- 응용 계층의 통신단위를 Message ( 메세지 ) 라고함

- HTTP, SMTP, FTP 등..

 

 

1. Network Topology ( 네트워크 토폴로지 )

- 데이터의 흐름을 표현한것 

- 네트워크에 참여하는 링크 , 노드 들의 구성 형태를 의미

 

1) Bus type

 

Bus 형

- 노드의 신호가 전체 노드에 전달된다

- 노드의 추가 및 삭제가 용이하고 특정 노드의 장애 발생시에도 다른 노드에 영향을 주지 않는다

- 대역폭을 공유하기 때문에 노드의 수가 증가됨에 때라 트래픽이 증가되어 충돌가능성이 증가된다

 

2) Ring type

Ring 형

- IBM에서 생산한 토큰링 장비의 형태

- Ring 형태로 순차적 통신을 진행하기 때문에 데이터간 충돌이 발생하지 않는다

- 보내야할 데이터가 있을때, 순서가 올때까지 기다려야 하기 때문에 통신 효율성이 떨어진다

- Ethernet 의 등장이후 사용하지 않는다

 

3) Star type 

Star 형

- 네트워크의 확장과 유지보수가 쉽다

- 장애 발견이 용이하고, 장애를 빠르게 처리할수 있다

- 중앙 집중식 구조이기 때문에, 중앙 시스템이 고장나면 전체 시스템이 마비된다

- 사용자가 증가되면, 트래픽또한 증가되어 속도 저하 현상이 나타난다

 

구분 장점 단점
Bus type ( 버스형 )

º 설치가  용이

º 저비용 케이블 설치

º 특정 노드의 고장이 다른 노드에 영향을 주지 않음

º 재구성이나 결합 분리에 어려움 존재

º 노드간 동시 통신 불가능

º 버스 케이블에 결함이 생기면 모든 노드 통신 불가

º 노드가 증가될수록 네트워크 성능 저하

Ring type ( 링형 )

º 단순한 구조이며 설치와 재구성이 쉬움

º 장애가 발생한 노드를 쉽게 찾을수 있음

º 노드가 증가해도 네트워크 성능에 영향을 주지 않음

º 단일 토큰링에서 한번에 하나의 노드만 데이터 전송

º 단방향 전송이므로 결함 발생시 네트워크 중단

º 새로운 노드 추가 어려움

Star type ( 성형 )

º 유지보수가 용이

º 한 노드의 고장이 전체 네트워크에 영향을 주지 않음

º 확장 용이

º 중앙 시스템 고장시 전체 시스템 마비

º 고액의 설치비용

º 통신량 증가시 전송지연 발생

º 네트워크 노이즈 발생

Mesh type ( 망형 )

º 각 노드가 별도의 케이블로 다른 노드와 연결

º 하나의 케이블이 고장나도 네트워크 계속 작동

º 각 노드마다 자신을 제외한 노드수만큼 케이블 연결 필요

º 많은 네트워크 구성 비용 요구

 

2. CSMA/CD

- Ethernet ( 이더넷 ) 에서 사용하는 통신 방식으로, Bus 형 토폴로지를 사용한다.

- 버스에 연결된 통신 주체들이 동시에 통신을 하게되어 발생하는 충돌을 방지

- 연결된 케이블의 전송신호를 감시(CS) 하고 있다가, 충돌이 없으면 통신하는 방식이다.

 

1) Carrier Sense ( CS )

: 네트워크 자원을 쓰고있는 PC 나 서버가 있는지 감시하는것, 누군가 통신을 수행중이라면 통신이 끝날때까지 대기

Carrier Sense

2) Multiple Access ( MA )

: 전송 방향을 제한하지 않고, 버스에 연결된 모든 노드에게 전부 전기적 신호를 전송

Multiple Access

3) Collision Detection ( CD )

: 충돌이 발생하면, 충돌현상이 사라질때 까지 작업을 중단하고 기다린다

Collision Detection

- 충돌이 지속적으로 발생하면 전송 효율이 대폭 떨어지기 때문에 통신 케이블을 세심하게 연결

- 충돌이 자주 발생하는 네트워크는 Bridge (브릿지) 또는 Router (라우터) 로 분할하여 사용

- 구현이 매우 쉽고 단순하기 때문에 현재 인터넷에 연결된 네트워크는 대부분 Ethernet 방식으로 구성

< Vi 편집기 >

- 각종 문서를 편집할수 있는 Text 기반의 편집기이다

- Unix / Linux 에서 대표적으로 사용되는 편집기

- vi [ 파일명 ] 으로 실행하며, 파일명에는 가급적 경로를 포함하도록 한다.

vi 명령어

1) VI 편집기의 모드

- vi 는 명령 , 입력 , 실행 모드를 번갈아가며 수행하는 편집기

- 명령 모드 : 입력 이외의 편집 작업으로, 문자 삭제, 복사 , 행 삭제 등의 기능을 수행

- 입력 모드 : 데이터 입력 및 수정을 하는 모드이며, 특정 키 입력으로 진입

- 실행 모드 : 파일 저장 및 종료, 검색의 기능을 수행

VI 편집기의 모드

① 입력 모드 진입 

- i : 커서의 앞부터 입력

- a : 커서의 다음칸 부터 입력

- o : 커서 아래칸에 공백라인을 삽입하고 입력

- I : 커서가 위치한 라인 맨앞에 입력

- A : 커서가 위치한 라인 맨뒤에 입력

 

② 명령 모드 진입

- ESC 키로 진입

이동 명령어 삭제 명령어
h, j, k, l : 커서 이동 ( ← , ↓ , ↑, →  ) x : 글자 삭제
gg , G : 문서 맨처음 이나 맨 마지막으로 이동 dd : 라인 전체 삭제
^f : 화면 아래로 이동 / ^b : 화면 위로 이동 ( Ctrl + f, b) dw : 단어 삭제
nG : n번째 라인으로 이동 D : 커서 뒷부분 삭제

③ 실행 모드 진입

- : ( 콜론 ) 키로 진입

검색 환경 설정 종료
/문자열 : 해당 문자열 검색
n , N : 검색상태에서 순방향 , 역방향 재검색

:set [환경 변수]

nu : 라인번호 표시

sm : 반대 괄호 표시

nonu : 라인번호 지우기

:w [파일명] 해당 파일명으로 저장

:wq 저장 후 종료

:q 종료

:q! 강제 종료

 

실행 모드 명령어 수행

1. Xrdp 란?

: 원격 접속 을 허용하는 프로그램으로, 윈도우 환경에서 GUI 환경으로 Linux 를 사용할수 있다.

 

2. 적용 방법

 

ntsysv 명령어 수행

우선 ntsysv 명령어를 수행하여 서비스 설정을 해야한다.

- ntsysv : 리눅스 부팅시 부팅 레벨에 따라 실행시킬 서비스를 설정하는 유틸리티

 

서비스 설정

1) ModemManager 와 NetworkManager 관련 서비스를 모두 해제한다

2) firewalld (방화벽) 을 해제한다

 

spacebar ( 스페이스바 ) 로 설정/해제 를 할수있고, Tab 키로 확인 및 취소를 수행할수 있다.

 

selinux 수정

Selinux 는 리눅스의 보안을 강화해 주는 보안 강화 커널으로

Zero-day 공격과 BOF 등 취약점으로 인한 해킹을 방지해주는 시스템이다.

~> xrdp 를 이용하기 위해서 해당 설정을 해제해야 하기 때문에 vi 편집기로 내용을 수정해야 한다.

 

Vi 편집기는 아래 링크 확인

 

03. Unix/Linux 기본 명령어 & VI Editor ( VI 편집기 )

 

ai-hong.tistory.com

 

selinux - disable

vi 편집기 모드에서 SELINUX=disabled 로 변경후 저장한다

 

ftp 설치

yum 을 이용해 ftp 패키지를 설치한다

 

ftp 접속

ftp 접속을 수행한다 

epel-release-7-11.noarch.rpm 을 가져와 설치한다. 

이 파일에 대한 내용은 아래 링크에서 확인

[ RPM & YUM 포스팅 주소 넣을것 ]

 

 

yum 을 이용해 xrdp 설치

 

시스템 재부팅을 위해 reboot 명령어를 사용한다

 

이제, 윈도우 에서 원격 데스크톱 연결 을 들어가 접속할 IP 주소 ( Linux ip ) 를 입력한다

 

계정과 비밀번호를 입력한다

 

인증서 관련 경고가 나오는데 를 클릭한다

윈도우 환경에서 Linux 를 GUI환경으로 접속할수 있다.

Unix / Linux 의 보안

1) 기본적으로 Unix / Linux 는 모든 내용을 공개하는 투명적인 OS이다, 오히려 모든 정보나 소스가 공개되어 있기 때문에 보안성이 높다

 

2) Unix 시스템은 가급적 패치를 하지 않아야한다 ( SW Upgrade 포함 ) : Unix 시스템은 하드웨어 플랫폼에 종속되어 있기 때문에 함부로 패치 또는 업그레이드를 수행하면 잘 작동하면 프로그램이 작동하지 않을수도 있다.

==> 단, 시스템의 결함이 있어 패치를 해야하는 경우에는 패치를 진행해야 한다.

 

3) Unix 관리자는 SW를 직접 설치할수없으며, 시스템 Program 또한, 직접 개발할수 없다.

 

4) Unix 에서는 UTF-8 을 사용하기 때문에 다양한 언어가 정상적으로 표시될수 있다.

 

CentOS 7 설치 과정

1) VMware 에서 CentOS 설치하기

 

ISO 파일은 설치시 경로를 설정하지 말고, 마지막에 넣어주도록 설정한다.

 

2) OS 종류 선택

CentOS 7 버전을 설치할것 이기 때문에, Version 을 CentOS 7 로 설정한다.

 

3) OS 이름 설정

사용시, 식별하기 편한 이름으로 설정한다.

[ CentOS 7 version ]

 

4) 용량 설정

리눅스의 용량을 설정한다.

리눅스의 용량은 너무 적게 설정하면 추후 문제가 발생할수 있기 때문에 가급적 넉넉 하게 잡아주는것이 좋다.

 

5) VMware 에서 설정

CentOS 설치 이유는 서버를 설치하는것 이기 때문에, printer , sound card , USB 는 사용하지 않으므로 삭제하고,

iso 파일을 넣어주어야 하므로 해당 설정을 진행한다.

 

6) 설정 후

Network 는 브릿지로 설정하고, CD/DVD 메뉴에서 iso 파일의 경로를 넣고 시작하면 CentOS 설치를 진행한다.

 

7) CentOS 설치 과정

install 과정의 첫 단계는 언어 설정이다.

한국어를 사용할것이기 때문에 한국어로 설정한다.

 

8) 상세 설정

CentOS 의 7버전에서부터는 통합적으로 설정할수 있다.

날짜&시간 / 키보드 / 지원하는 언어 / 설치 소스 

위의 항목들은 따로 설정을 안해도 된다.

 

소프트웨어 설치 항목으로 들어가면 여러 항목을 체크할수가 있는데, 

최소한의 툴 과 라이브러리만 설치를 한후, 이후 필요한 패키지는 따로 설치하기위해

GNOME 데스크탑 - 호환성 라이브러리 / 개발용 툴 만 체크하고 넘어가도록 한다.

 

KDUMP 와 SECURITY POLICY 를 비활성화 한다.

 

호스트 이름은 본래 ㅁㅁㅁ.domain 형태로 설정하는것이 일반적이지만,

실습용으로 사용할것이기 때문에 편한 이름으로 설정하면 된다, 나의 경우 [ hong ] 으로 설정한다.

 

이후, 네트워크 설정으로 들어가 사용할 IP 를 고정으로 할당한다. ( 방식 Tab 에서 [수동] 선택 )

IP 설정시 반드시 설정해야 하는 항목은 다음과 같다

 

1) IP 주소

2) 넷 마스크

3) 게이트웨이 

 

위의 설정들을 저장후 나와서 이더넷을 키면

 

위와같이 IP 설정 정보를 볼수있다.

정확한지 확인후,

 

설치대상 메뉴로 들어간다.

파티션 설정을 자동 으로 하지말고 수동 설정으로 한후 완료하면

수동 파티션 설정 메뉴가 나온다,

파티션은 표준 파티션 으로 지정하고

[ + ] 버튼을 눌러 파티션을 설정할수 있다.

 

설정할 목록은

 

1) /boot : 200Mib 로 설정

2) swap : 2G 로 설정 ( 일반적으로 메모리의 2배크기로 설정한다 )

3) /      : 용량을 지정하지 않으면 남은 용량이 모두 자동 할당 된다

 

설정을 완료하면 위와 같은 화면이 뜰것이다.

여기서

sda1 / sda2 / sda3 은 시스템이 식별하는 이름이다,

 

시스템은 / /boot  swap 이 아닌, sda3 sda1 sda3 으로 식별하게 된다

이후 완료를 누르면 모든 내용이 뜨면서 변경요약을 보여준다, 

이상이 없다면 변경사항적용 을 눌러준다

 

이제, 모든 설정이 완료되었으니 설치시작 을 적용한다.

설치 되는동안 다음과 같은 경고가 뜰수도 있다.

root 암호화 사용자를 생성해주면된다

 

설치가 완료된후, 해당 리눅스를 직접 접속하지 않고 Putty 프로그램을 이용해 원격으로 접속해야한다.

이를 위해 Putty 에서 설정을 해야한다.

 

먼저 Putty 에서 접속할 IP주소와 식별하기 위한 이름을 설정하고 저장 한다.

 

{ 분류 - 창 - 특성 }

인코딩을 [ UTF-8 ] 로 설정한후 저장한다.

 

{ 분류 - SSH - 키교환 }

디피-헬만 그룹 교환 을 최 하위로 내리고 , 디피-헬만 그룹 1 을 최상위로 올린다.

 

 

{ 분류 - 창 - 색깔 }

기본 글자색과 기본 배경색을 설정한다

=> 가독성을 위해 설정

 

설정 완료한후, 접속을 하면

위와 같은 경고창이 뜬다, [ 예 ] 를 누르면 접속이 된다.

 

접속한후, 계정과 Passwd 를 입력하면

리눅스에 정상적으로 접속할수 있다.

 

 

1. 서버를 따로 두는 이유

- 관리적 측면에서 서버를 자주 사용하는 컴퓨터에 두게되면, 오류가 발생할수도 있으며,

  잘못하면 서버 자체가 날아갈수 있기 때문에 별도의 Server 를 두어 관리하도록 해야한다

- 물리적으로 떨어져 있는 공간에 Server 가 구동되며, 사용자는 원격으로 해당 Server 를 관리해야 한다

 

2. 리눅스를 관리는 Putty 와 같은 프로그램으로 관리하도록 한다.

Putty 란?

- 하드웨어를 흉내낸 Software 로써, emulator 라고도 한다.

- 터미널 구조를 흉내낸 프로그램으로, 터미널 구조란 하나의 컴퓨터에 여러대의 모니터와 키보드를 연결해서 사용하는 것이며, 초창기 컴퓨터는 이와같은 방식으로 구성되었다.

초기 컴퓨터의 터미널 구조 - 출처 : http://www.soen.kr/lecture/devtool/SQL/1-3.htm

+ Recent posts