본 포스팅은 네트워크 엔지니어 흐르는 강물처럼 님의 방화벽 시리즈를 기반으로 요약/작성되었음을 미리 알립니다. 이번 포스팅에서는 네트워크 보안에서 가장 필수적이며, 가장 대표적인 장비인 방화벽(Firewall)에 대해 다뤄보겠습니다. 방화벽이란? 방화벽이란? 정보 시스템을 운영하는 환경에서는 필수적으로 사용되는 장비로써 미리 정의된 보안 규칙에 기반하여 들어오고 나가는 네트워크 트래픽을 제어하는 보안 시스템이다. 인터넷을 사용하기 위해서는 라우터에 광케이블을 연결하고, KT, SKT 등의 ISP에서 제공하는 회선을 통해 서비스를 받습니다. 방화벽은 라우터에서 내부 네트워크로 연결되는 그 사이에 설치하게 됩니다. 위 그림과 같이 인터넷 회선(Untrust zone)을 받아서 연결하고, 내부 구역(Trust..
공인 SSL 인증서 공인 SSL 인증서는 인증 기관(CA)에서 발급하는 인증서입니다. 일반적으로 인터넷에서 접근하는 사이트들은 공인인증서가 적용되어 있다고 생각하시면 됩니다. 사용자 PC에 따로 인증서를 설치하지 않더라도 문제없이 https가 적용된 웹사이트를 사용할 수 있습니다. 사설 SSL 인증서 사설 SSL 인증서는 공인 인증 기관이 아닌 특정 조직에서 발급합니다. 예를 들어 A라는 회사가 자사가 인증한 SSL 인증서를 발급할 수 있습니다. 이런 인증서는 인터넷으로 서비스되는 웹사이트가 아니라 기업 내에서 직원들이 접속하는 웹사이트에서 주로 사용합니다. 내부망에서 이루어지는 통신이라 할지라도 보안 관련 인증심사에서 https 적용 여부를 확인하기 때문에 심사를 준비하는 기업은 적용하는 경우가 많습니..
HTTP(Htpertext Transfer Protocol) : 클라이언트와 서버 간 통신을 위한 HTML을 전송하기 위한 통신 규칙 또는 프로토콜. 통신규약: 데이터의 첫번째 줄에는 '목차' 내용을 쓰고, 두번째 줄부터 '실제 내용'를 써서 주고 받겠다는 규칙 같은 것. HTTP는 OSI 7계층의 애플리케이션 계층 프로토콜이다. 브라우저와 웹서버는 HTTP 프로토콜을 통해 데이터를 텍스트로 주고 받는다. 서버는 200,400,404 등의 응답을 전송하고, 일반적으로 사용자에게 보이지 않는다. HTTP는 Stateless이다. Stateless란 말 그대로 state(상태)를 저장하지 않는다는 것. 각각의 요청/응답은 독립적인 요청/응답이다. 여러 요청과 응답의 진행과정/데이터가 필요할때는 쿠키나 세션 ..
OSI(Open Systems Interconnection) 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 개념적 프레임워크 말한다. OSI 7 계층 모델을 만든 이유는? 네트워크 구조상 정말 많은 방식으로 End to End 연결이 가능하다. 행성급의 전기 신호가 있다면 미국 - 한국을 안테나 - 안테나로 바로 연결할 수도 있는데, 이런 경우에는 허브, 스위치 등의 네트워크 장비들은 하나도 필요 없다. 그러나 그런 예외는 우주에서나 존재하므로, 대부분은 공유기에 모뎀을 써서 기지국에 연결한다. 이런 정형화된 경우를 고려해 고안된 것이 OSI 7계층이다. OSI 7계층은 다음의 장점들을 가진다. 복잡한 시스템에 대한 이해 공유 계층을 나눈 이유는 통신이 일어나는 과정을..
네트워크는 크게 호스트와 노드로 이루어진다. End-to-End 통신에서 각 끝단을 호스트라고 하며, 그 사이 거쳐가는 모든 Path들을 노드라고 부르게 되는데, 네트워크적 관점에서 Node와 Path를 몇 번 거치느냐에 따라 속도에 차이가 생겨 전달시간과 망 점유율을 최소화하는 알고리즘이 중요하다. (BFS,Dijkstra 등) 호스트(Host) 인터넷 연결은 End to End 패킷 전달을 목표로하는데, 각 End는 개인의 단말 혹은 서버이고, 이를 Host 라고 부른다. 패킷의 입장에서는 발송자를 Source, 수신자를 Destination이라고 부른다. Host 이외의 Node End to End 통신을 단일 매체로 구현하는 것은 불가능에 가깝다. 패킷을 전달하기 위해선 패킷들을 잠시 저장하고 방..
패킷이란? Package + Bucket 패킷은 pack과 bucket을 합친 말로, 우체국에서는 화물을 적당한 크기로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이다. 쉽게 말해 컴퓨터 간 데이터를 주고받을 때 패킷은 네트워크를 통해 전송되는 일종의 데이터 조각이라고 생각할 수 있다. 그리고 컴퓨터 네트워크에서 이는 정해진 규칙으로서 작동한다. 데이터를 패킷으로 쪼개서 보내는 이유: 큰 데이터를 한번에 보내면, 많은 대역폭을 차지해 흐름을 원활하게 하지 못한다. 따라서 트래픽이 많아지게 된다. 큰 데이터를 보내는 방식 큰 데이터를 보낼때, 이는 작은 패킷들로 분할된다. 그리고 작은 패킷들로 분할된 데이터는 전달 시에 번호를 붙여서 전달이 된다. 수신자는 이 번호를 ..
dig란? dig는 Domain Information Groper의 약자로, DNS 정보를 조회하고 진단하기 위한 커맨드 라인 도구이다. dig의 영단어 뜻이 ‘파헤치다’ 인 것처럼 말 그대로 정보를 파헤치는 명령어다. 디그다도 그래서 디그다다 dig 명령어의 장점 nslookup 명령어로는 얻기 어려운 상세한 DNS 조회 결과를 얻을 수 있다. DNS 구성에 문제가 생겼을 때 원인을 찾는데 유용하다. 특정 IP의 도메인 이름을 찾거나, 특정 도메인 이름이 사용 중인 IP들을 찾을 수 있다. 우분투를 사용할 경우 다음 명령어로 설치가 가능하다. apt-get install dnsutils dig 사용법 dig 도메인 네임 [레코드명] [@네임서버명] [기타 옵션] 기본 사용 예시 dig 도메인네임 가장 ..
네트워크 공부를 시작하려면 우선 DNS에 대한 개념은 필히 우선적으로 숙지해야한다. DNS(Domain Name System)란? DDNS에 앞서 우선 DNS를 먼저 이해해야 한다. 인터넷상에서 우리가 웹에 접속할 때에는 IP주소를 사용하는데, 이는 넓은 인터넷 세상 속에서 우리 집의 주소라고 생각하면 된다. 그리고 함께 사용하는 port번호가 우리 집의 어느 문으로 출입할 것인지를 나타낸다. (정문인지, 후문인지, 2층 출입구인지 등등) 이렇게 IP주소와 port번호를 사용한 통신을 흔히 말하는 TCP/IP 통신이라고 하는데, DNS는 숫자로 된 IP 주소를 도메인 네임 ex) http://naver.com 과 매칭하는 역할을 한다. 우리가 네이버같은 웹사이트에 접속할 때, IP 주소를 일일이 작성하지..