ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WEB2 - DNS (1)
    생활코딩 WEB 2022. 7. 9. 14:40

    ===

    https://opentutorials.org/module/3421

    https://youtube.com/playlist?list=PLuHgQVnccGMCI75J-rC8yZSVGZq3gYsFp 

     

    ---

    https://finepiz.tistory.com/557

    Route 53 정리해놓은 곳에도 DNS 원리가

     

    ---

    이 수업은 도메인 이름을 자신의 서버 컴퓨터에 부여하는 방법을 알려드리는 수업입니다. 원래 서버 컴퓨터에 접속을 하려면 그 컴퓨터의 ip 주소를 알아야 합니다. 그런데 이 주소를 기억하는 것은 쉽지 않은 일이죠. 그래서 고안된 것이 도메인 이름입니다. 전화번호를 몰라도 이름으로 친구에게 전화를 할 수 있는 것처럼, 도메인 이름을 컴퓨터에 부여하면 전세계인들이 개성있는 이름을 통해서 나의 컴퓨터에 접속할 수 있습니다. 

    • 도메인 이름을 서버 컴퓨터에 붙이고 싶은 분
    • 도메인 네임 시스템이 동작하는 방법이 궁금한 분
    • nslookup 명령의 자세한 이용법이 궁금한 분
    • github page, tistory와 같은 서비스에 도메인을 붙이는 방법이 궁금한 분

     

    ===

    서버, 클라이언트, IP주소 는 WEB1에서

     

    ===

    - 인터넷에 연결된 컴퓨터 한대한대를 host

    - host와 host가 통신하려면 서로의 주소가 필요, 이를 위해 사용하는 주소를 IP주소

    - IP주소 덕분에 인류가 host와 host를 연결해서 통신 가능, 한대의 컴퓨터가 한대를 초월하는 위대한 순간

     

    ===

    - 개선사항, IP주소를 기억하는게 어려워

    그래서 이 두 사람에 의해 DNS가 만들어짐, 인터넷의 신이래

     

    ===

    DNS의 핵심은 DNS Server, 이 서버에는 수 많은 IP주소의 도메인 이름이 저장돼 있다

    내가 웹브라우저의 주소창에 www.icann.org 을 입력하면

    내 운영체제는 나 몰래 DNS서버에 접속해서 icann.org의 IP주소가 뭔지 물어본다

    DNS서버가 IP주소를 내 컴퓨터에게 알려주면 그때 내 컴퓨터가 비로소 ip주소에 해당하는 컴퓨터에 접속한다

     

    ===

    3.14로 시작하는 파이가 정확히 어떤 숫자인지 모른다

    우주가 정확히 어떻게 생겼는지

    무의식이 어떻게 동작하는지 

     

    그럼에도 불구하고 우리는 미지의 대상에 대해 이름을 붙임으로 마치 미지의 대상을 알고있는것처럼 존재하고있는것처럼 대화생각기록계산한다

    이름을 붙인다는건 인류의 특별한 능력이다

     

    DNS를 통해 우리의 컴퓨터에 이름을 붙여줄 수 있다. 보다 인간적으로 대하게 될 것이다

     

    ===

    그 전에 IP주소가 무엇인가를 한번 더 살펴보기

     

    반드시 IP주소를 갖추고 있어야 두대의 컴퓨터가 통신할 수 있다

     

    클라이언트의 웹브라우저에 서버의 IP주소를 치고(IP를 알아야), 서버 컴퓨터에 접속하면

     

    서버는 어떤 방법을 이용해서 정보를 만들고 그 결과를 클라이언트에게 응답한다. (클라이언트의 IP를 알아야, 모든 컴퓨터가 IP주소를 가져야 한다)

     

    ===

    이때 인터넷에 연결돼 있는 컴퓨터는 데스크탑이 아닌 여러가지 장치들도 있기 때문에 host라고 부른다

    host : 네트워크에 연결돼 있는 컴퓨터,

     

    ===

    저 숫자를 기억하는건 기억하기 힘드니까 쉽게 외울 수 있는 이름을 지어서 그곳으로 접속하면 되게 하고 싶어

     

    이때 DNS를 통하지 않고도 내가 자주사용하는 사이트나 나만의 사이트에 도메인 주소와 같은 host에 이름을 부여할 수 있다. hosts라고 하는 파일의 역할, 마치 스마트폰의 전화번호부 같아

    옛날에는 DNS 대신에 hosts라는 파일을 조작해서 했다

     

    운영체제마다 위치는 다르지만 모든 운영체제에는 hosts라는 파일이 있어

    그 파일에다 93.184.216.34 example.com  라고 적어놓으면 내가 example.com 이라고 접속했을 때 저 hosts파일에 있는 내용을 읽어서 컴퓨터가 93.184.216.34로 접속하게된다

     

    ===

    실제로 해보자

    일단 운영체제별로 hosts파일의 위치가 다르기 때문에 검색해서 찾아야해

     

    windows hosts file location 이런식으로 검색하면 나온다

     

    근데 위키피디아에 잘 정리가 돼 있더라

     

    hosts wikipedia 로 검색

    %SystemRoot%는 윈도우즈 디렉토리

     

    ===

    hosts파일은 중요한 파일이고, 마음대로 수정해버리면 해킹을 당할 수 있어. 관리자 권한이 있어야 수정 가능

    메모장으로 편집할 것이다. 관리자 권한으로 실행, 이제 이 메모장은 관리자 권한을 갖고 있는 힘센 메모장

    저기가서 All Files하면 hosts라는 파일이 있다

     

    ===

    맥, 리눅스, 유닉스계열은 터미널을 켜야 한다

    편집하려면 에디터를 써야 하고, 명령어에서 에디터를 쓸 땐 nano라는 에디터를 쓰면 된다

    중요한 파일이기 때문에 앞에 sudo를 붙인다

    비밀번호 입력하라고 하면 입력한다

     

    ===

    그리고 파일에 입력하는 형식은 윈도우건 유닉스 계열이건 똑같다

    위를 참고하여 아래처럼 입력하면 된다 DNS는 아니지만 이 컴퓨터 안에서는 우선권이 주어진다

     

    ===

    성공

     

    안될수도 있는데 되는 이유는 1가지고 안되는 이유는 100가지 이므로 안되면 당장은 그냥 넘어가자

    웹브라우저를 껐다가 키든지.. 컴퓨터를 껐다가 키든지..

     

    ===

    이번엔 인터넷 상의 보안에 대한 얘기를 할 것

    누가 악의를 갖고

    이렇게 자신의 IP주소로 바꿔버리면

    우리는 거기에 들어가면 평소에 방문하던 사이트라고 생각해

     

    hosts기반으로 얘기했지만 example.com이라는 사이트의 도메인이 이미 있다고 해도 hosts파일을 변조하면 다른 사이트로 가게하는게 가능하다

     

    그래서 hosts파일은 굉장히 취약하다. 이 파일이 변조되지 않도록 백신을 사용하는게 좋다. 백신은 이 파일을 항상 예민하게 지켜본다

     

    ===

    어떤 일이 일어날 수 있는지 한번 살펴보기

    국민은행 홈페이지

     

    해커가 내 컴퓨터에 hosts파일을 조작해서

    이렇게, 52.231.11.152 가 나쁜 사람의 사이트 IP

     

    그럼 나는 평소처럼 kbstar.com으로 갔는데

    저기로 가. 근데? 저 사이트를 국민은행 홈페이지와 똑같이 만들면?

    그럼 나는 거기서 똑같이 생겨서 그냥 로그인하고 one time password OTP도 입력하고 여러가지 입력하고.. 그런 입력하는 유도를 할것

     

    그럼 그 입력한 정보를 갖고 실제 사이트에 들어가서 돈을 빼갈 수 있다

    =>피싱이라고 한다

     

    ===

    어떻게 대비해?

    - hosts파일을 잘관리

    - https로 접속하기, 주소를 저런식으로 변조하게 되면 웹브라우저가 마법을 써서 알아내고 경고해준다.

    국민은행 같은 사이트는 https로 돼있다 s가 보안이 안전하다는 뜻이야

     

    http로 접속한 사이트는 이 사이트가 변조돼도 내가 알 수가 없어

    https로 하면

    이런 메시지가 뜬다

    이 사이트는 ADVANCED의 unsafe버튼을 눌러야 강제로 들어갈 수가 있다

    피싱을 막아줄 수 있다

    굉장히 중요한 사이트에 접속하는데 그 사이트가 https가 아니라면 다시 생각해봐야된다. 네트워크는 눈감으면 코 베어가는 세상이다. 중요한 사이트는 https를 통해서 접속해야한다

     

    ===

    DNS는 복잡해. 워밍업으로 DNS 이전 인터넷은 어떻게 동작했는지 상황을 살펴보자, 지금은 DNS로 대체됐다

     

    이런걸 모르면 DNS가 등장하게된 맥락이 있는데 멀리서보면 천재들이 부자들이 한 일이구나 생각한다.

    자세히 들여다보면 사람들의 많은 노력과 희생이 존재했다.

    맥락들을 이해하고 공감했을 때 나도 DNS와 같이 혁신적인걸 만들어보려는 마음이

     

    ===

    hosts 파일을 통해 개인적으로 DNS를 운영할 수 있었다

    근데 자기한테만 해당되는거잖아

     

    서버입장에서 어떤 이름이면 나한테 들어오게 할 수 없어?

    그 이름이면 내가 나중에 이사를 가면 그 아이피로 바꿀 수 있게. 이름으로 개성을 드러내게

     

    ===

    이걸 하려면 중간에 신뢰할 수 있는 누군가가 필요해

    Stanford Research Institute라는 애가 있었고, 얘가 전세계에 있는 hosts파일을 관리했다

     

    여기 영업시간에 전화를 해서 저 IP주소 뭐뭐인데 example.com으로 해주세요 라고 요청하는식

    그럼 거기 직원이 걔가 관리하는 hosts파일에다 갱신을 하는 것

     

    그럼 전 세계의 컴퓨터들이 SRI에 있는 hosts파일을 다운로드 받아서 자기컴퓨터에다 덮어쓰기 한 다음 인터넷을 하는 것

     

    ===

    처음엔 이것만으로 행복했지만 인터넷이 커지면서 불편한점이

     

    일단 다운받아야해

    SRI는 수작업이라 시간과 비용이 듦

    하나의 파일에 모든 호스트의 주소가 담기면 한계지

     

    ===

    1983년

    인터넷의 신, 인터넷의 여러가지 기술이 만들어지는 데 결정적인 공헌, SRI에서 담당자였던 Jon Postel, Paul Mockapetris

     

    대안인 DNS를 마련하게 된다

    '생활코딩 WEB' 카테고리의 다른 글

    WEB2 - DNS (3)register, nslookup  (0) 2022.07.09
    WEB2 - DNS (2)DNS  (0) 2022.07.09
    WEB2 - OAuth 2.0 (2)OAuth는 3자간 인증시스템  (0) 2022.01.20
    WEB2 - OAuth 2.0 (1)  (0) 2022.01.15
    JavaScript 객체 지향 프로그래밍  (0) 2021.12.10
Designed by Tistory.