실습
실습1. 포트포워딩을 통해 본인의 컴퓨터로 외부 접속해보기
링크 :
서버2주차 실습
📝 실습 체크리스트
[v] (1주차 실습1)비트나미에 새로운 html 파일 만들기
[ v] 공유기 포트포워딩 설정
SK 공유기 관리자 접속 방법 및 포트포워딩 설정 하는 방법!
ipTime 공유기 포트포워딩 설정
ipTIME공유기 포트포워딩 설정 방법 간단 정리
[v ] 스마트폰 or 테블릿(데이터)에서 내 컴퓨터로 외부 접속
[v ] bitnami 기본 페이지 확인
[ v] 새로운 html파일 확인 및 캡쳐
캡쳐한 사진
[ v] 방화벽 설정 확인 (포트포워딩 실패 시)
🔥 트러블 슈팅(실패한 경험도 성장을 위한 경험!)
트러블 슈팅 양식
[ 문제 원인 ]포트포워딩 후 외부기기에서 접속이 안되었다.
[ 해결 방안 ]구글링을 통해 방화벽 설정을 하였다. 정확히는 pc에 새로
포트를 추가하여 그곳에 연결시켰더니 접속이 가능하였다.
[ 참고 자료 ]구글링 자료
핵심 개념 키워드
클라이언트-서버 통신
프로토콜
HTTP
Hypertext인 HTML을 전송하기 위한 통신규약으로, 서버/클라이언트 모델을 따라 인터넷 상에서 정보를 주고받기위한 규칙이다. 애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동한다. 하지만 HTTP은 암호화되지 않은 방법으로 데이터를 전송하여 악의적인 감청과 데이터 변조가 가능하다.
HTTPS
HTTP+암호화+증명서 + 완전성으로 HTTP의 보안적 약점을 보완한 프로토콜이다. HTTPS의 기본 TCP/IP포트로 443번 포트를 사용한다. 소켓통신에서 일반 ㅔㄱ스트를 이용하는 대신에, 웹 상에서 정보를 암호화하는 SSL이나 TLS프로토콜을 통해 세션 데이터를 암호화한다.
FTP
파일 전송 프로토콜의 약자로, FTP는 TCP/IP네트워크상의 장치가 파일을 전송할 때 사용하는 규칙이다.
SFTP
시큐어셀 데이터 스트림을 통해 보안등급이 높은 파일 전송을 실현하는 별도의 프로토콜을 말한다. 22번 포트를 사용하고, FTP의 취약한 보안으로 인해 많은 사람이 SFTP를 선호한다.
MYSQL
세계에서 가장 많이 쓰이는 오픈소스의 관계형 데이터베이스 관리 시스템이다.
SSH
시큐어 셸은 네트워크 상의 다른 컴퓨터에서 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
SSL
웹사이트와 브라우저 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술이다.
네트워크 계층
OSI 7 계층
각계층을 분리함으로서 독립적인 역할을 할 수 있고, 문제 발생 시 문제의 현상을 보았을 때 어떤 계층의 문제가 생겼는지도 파악이 가능하다.
1.물리 계층
하드웨어 전송기술로 이루어져 있다. 전기적인, 기계적인 신호를 주고받는 역할을 하는 계층이다. 대표적인 장비는 통신케이블, 허브, 리피터 등이 있다.
2.데이터 링크 계층
데이터 계층은 Point to Point간의 신뢰성 있는 전송을 보장하기 위한 계층이다. 대표적으로는 스위치와 브릿지가 있다.
3.네트워크 계층
우리가 흔히 아는 IP주소를 제공하는 계층이다.
대표적으로 노드들을 거칠때마다 라우팅 해주는 역할을 담당한다.
대표적으로는 라우터,L3스위치,IP공유기 등이다.
4.전송 계층
양끝단의 사용자들이 데이터를 주고 받을 수 있게 하는 계층이다.우리가 자주 사용하는 TCP,UDP 프로토콜이 있는 계층이다.
5.세션 계층
여기부터 데이터를 만들어내는 계층이다. 통신하는 사용자들을 동기화하고 오류복구 명령등을 일괄적으로 다룬다. 대표적으로는 RPC,Socket등이 있다.
6.표현계층
코드간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다. 데이터의 압축이나 인코딩 등을 여기에서 다룬다.
7.응용계층
응용 프로세스와 직접 관게하여 일반적인 응용 서비스를 수행한다. 대표적으로는 HTTP,FTP등의 프로토콜이 속한다.
TCP/IP
TCP
전송제어 프로토콜은 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나로, 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간의 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
IP
인터넷 프로토콜은 송신 호스트와 수신 호스트가 패킷 교환 네트워크 에서 주고받는 데 사용하는 정보위주의 규약이며, OSI네트워크 계층에서 호스트의 주소지정과 패킷분할 및 조립기능을 담당한다.
IP
Packet
Header
HTTP공통헤더
DATE : HTTP 메시지를 생선한 일시
Connection : 클라이언트와 서버 간 연결에 대한 옵션 설정
2.HTTP헤더 내 엔터니/개체 헤더
Content-Type : 해당 개체에 포함되는 미디어 타입 정보
Content-Language : 해당 개체와 가장 잘 어울리는 사용자 언어
3.Request헤더
Host : 요청하는 호스트에 대한 호스트명 및 포트번호
User-Agent : 클라이언트 소프트웨어 명칭 및 버전 정보
4.Response 헤더
Server : 서버 소프트웨어 정보
Set-Cookie : 서버측에서 클라이언트에게 세션 쿠키 정보를 설정
Body
가져올 실제 데이터 컨텐츠/ 메시지가 나타난다. 콘텐츠에서는 요청한 리소스에 따라 HTML코드, 이미지, CSS스타일 시트등이 포함될 수 있다.
IPv4
인터넷 프로토콜의 4번째 버전이며, 전세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이었다.
IPv6
인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜이다. IPV4프로토콜의 주소가 32비트라는 제한된 주소공간 및 국가별로 할당된 주소가 거의 소진되고 있다는 한계점을 개선하기 위해 제안되었다.
Domain
로마자로 나타낸 인터넷 사이트 주소로, 숫자로만 구성된 아이피 주소의 단점을 보완하기 위해 사용하게 되었다. 예를들어 www.naver.com과 같은 표기이다.
Port
서버에서 포트란?
웹 브라우저를 이용하여 인터넷 상에 있는 서버에 접속할 때 컴퓨터에 있는 웹브라우저 프로그램과 서버에 있는 웹서버 프로그램간을 연결해주는 플러그와 같은 역할을 하는 것이다.
프로토콜별 포트 번호 정리
FTP : 20(데이터 포트),21(전송포트)
SSH : 22
Telnet : 23
SMTP : 25
DNS : 53
HTTP : 80등
포트리스닝
UCP 또는 TCP와 같은 통신 프로토콜 유형, 연결된 IP주소 및 포트 번호는 네트워크 포트를 식별한다. 네트워크 포트는 리스닝 포트와 같습니다. 리스닝포트는 네트워크 포트의 응용 프로그램이나 프로세스를 수신합니다.
인바운드 아웃바운드
내부를 향한다는 의미로, 서버 내부로 들어오는 IP등을 의미하고, 서버 또는 네트워크 내부들어오는 것이다. 클라이언트 -> 서버방향이고, 클라이언트가 업로드 할때 실행된다.
아웃바운드
외부를 향한다는 의미로, 서버 외부로 나가는 것이다. 서버또는 네트워크 존 외부로 송출하는것이고 서버->클라이언트 방향으로 나타난다. 클라이언트가 다운로드 할 때 실행된다.
데몬
사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램이다.
Port forwarding
공유기
WAN
LAN과 LAN사이를 광범위한 지역단위로 구성하는 네트워크 입니다.
LAN
Locl Area Network의 약자로, 사용자가 포함된 지역 네트워크를 의미합니다. 컴퓨터끼리 1대1로 직접 연결하는게 아니라 공유기나 스위치등을 이용해서 연결하게 되는것입니다.
외부 IP (공인 IP)
내 PC에서 하는 작업등이 온라인상에서 사용되고 표현되는 IP
내부 IP (사설 IP)
내 PC가 현재 사용하고 내부적으로 표현되는 할당받은 IP
외부 포트
외부에서 어떤 포트로 접속을 하였을 때 지정된 컴퓨터로 연결을 할것인가 이다.
내부 포트
외부에서 포트로 접속한 기기를 내부의 어떤 포트번호로 연결해 주느냐에 대한 포트 번호이다.
게이트웨어
컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 일컫는 용어이다.
방화벽
네트워크를 통과하는 통신을 허용/거부/검열/수정하는 모듈이다. 네트워크 단계의 인터넷 보안 시스템 중 가장 널리 쓰이는 방법으로, 외부로부터 침입을 막는 벽으로 표현한 것이다.
추가 개념 키워드
TCP vs UDP
UDP
데이터를 데이터그램 단위로 처리하는 프로토콜이라는 뜻으로, 비연결형 프로토콜로, 각각의 패킷이 독립적인 관계를 지녀 다른 경로로 독립적으로 처리하는 프로토콜이다.
TCP 예시
여러 응용프로그램 계층 프로토콜을 지원한다. TLS를 사용하는 보안 버전뿐만 아니라 HTTP,HTTPS,POP3및 SMTP와 같은곳에서 사용된다.
UDP 예시
음성 및 비디오를 위한 실시간 스트리밍 서비스이다. 음성서비스를 tcp로 할 경우 문제는 중간에 패킷이 빠질 경우 음성서비스가 중단된다는 점이다. 전화를 하다가 잡음이 생기면 바로 전화가 끊어져버리는 것과 마찬가지다. 따라서 통신 품질보다는 통신의 연속성이 더욱 중요시되는 곳에 사용될 수 있다.
DNS(Domain Name Server)
전세계의 IP주소에 대응하는 도메인을 효율적으로 관리하기 위해 개발된 시스템이다.
Proxy
프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해준다.
Foward proxy
포워드 프록시 서버는 앞단에서 먼저 요청을 받은 후, 인터넷에 연결하여 그 결과를 클라이언트에게 전달해준다.
Reverse proxy
클라이언트가 웹 서비스에 데이터를 요청하면 REVERSE Proxy는 이 요청을 받아서 내부서버에서 먼저 데이터를 받은 후에, 이 데이터를 클라이언트에게 전달하게 된다.