![동일한 PC의 Linux에서는 가능하지만 Windows에서는 일부 사이트에 액세스할 수 없습니다.](https://rvso.com/image/1641934/%EB%8F%99%EC%9D%BC%ED%95%9C%20PC%EC%9D%98%20Linux%EC%97%90%EC%84%9C%EB%8A%94%20%EA%B0%80%EB%8A%A5%ED%95%98%EC%A7%80%EB%A7%8C%20Windows%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9D%BC%EB%B6%80%20%EC%82%AC%EC%9D%B4%ED%8A%B8%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
다음과 같은 사이트에 액세스하는 데 문제가 있습니다.Pastebin.com또는더 파이러트 베이내 Windows 10 시스템에서. 브라우저 시간이 초과되었습니다. 다른 브라우저(Brave, Edge, Chrome, Firefox)를 사용해 보았고 Windows에서도 새 사용자 프로필을 만들었습니다. 결과는 동일했습니다.
내 네트워크의 다른 시스템에서는 이러한 사이트에 액세스하는 데 문제가 없습니다. 시스템에서 Linux를 부팅할 때 해당 PC에서 이러한 사이트에 액세스할 수도 있습니다.
이는 라우터나 ISP 수준에서 필터링이 수행되지 않음을 나타냅니다. 그렇지 않으면 다른 시스템도 해당 사이트에 도달하지 않아야 합니다.
내가 무엇을 찾을 수 있을지 어떤 아이디어가 있나요?
답변1
TL;DR
호스트 파일이 변경되어 웹사이트 주소가 잘못된 IP로 리디렉션되어 웹사이트에 액세스할 수 없습니다.
컴퓨터 파일 호스트는 호스트 이름을 IP 주소에 매핑하는 운영 체제 파일입니다. 일반 텍스트 파일입니다. 원래 HOSTS.TXT라는 파일은 수동으로 유지 관리되었으며 ARPANET 멤버십을 위해 Stanford Research Institute에서 파일 공유를 통해 사용할 수 있게 되었습니다. 여기에는 회원 조직이 포함하도록 기여한 호스트 이름과 호스트 주소가 포함되어 있습니다. 1983년에 처음 설명되고 1984년에 구현된 도메인 이름 시스템(Domain Name System)은1게시 프로세스를 자동화하고 빠르게 성장하는 네트워크에서 즉각적이고 동적인 호스트 이름 확인을 제공했습니다. 최신 운영 체제에서 호스트 파일은 대체 이름 확인 메커니즘으로 남아 있으며, 이름 서비스 스위치와 같은 기능의 일부로 기본 방법이나 대체 방법으로 구성할 수 있는 경우가 많습니다.
~에서위키피디아
Windows 시스템의 경우 호스트 파일은 C:\Windows\System32\drivers\etc\hosts에 있으며 웹 사이트 주소와 인터넷 프로토콜 주소의 매핑이 포함되어 있습니다.
컴퓨터는 웹사이트 주소를 이해하지 못하고 1과 0만 이해하므로 컴퓨터가 연결할 위치를 알 수 있도록 웹사이트 주소를 IPv4 주소로 변환해야 합니다.
안IPv4주소는 각 숫자가 1바이트 길이인 4개의 숫자로 분할된 4바이트(32비트) 이진수이며 점으로 구분되므로 총 주소는 4294967296으로 제한됩니다.
IPv4를 4바이트 숫자로 변환하려면 왼쪽에서 오른쪽으로:
16777216*$ip.split('.')[0]+65536*$ip.split('.')[1]+256*$ip.split('.')[2]+$ip.split('.')[3]
하지만 4바이트를 IPv4로 변환하는 것은 더 어렵습니다.
$byte1=[math]::floor($number/16777216)
$number=$number % 16777216
$byte2=[math]::floor($number/65536)
$number=$number % 65536
$byte3=[math]::floor($number/256)
$number=$number % 256
"{0}.{1}.{2}.{3}" -f $byte1,$byte2,$byte3,$number
위는 PowerShell에서 IPv4를 변환하는 예입니다. 실제로는 이해하기 쉽습니다. 물론 1초 안에 값을 빠르게 변환할 수는 없지만 컴퓨터는 변환할 수 있지만 웹사이트 주소는 이해하지만 컴퓨터는 그렇지 않습니다.
컴퓨터의 IP 주소는 인간의 이름과 같습니다. 웹사이트는 컴퓨터가 소유한 책과 같습니다. 한 권의 책은 여러 사람이 소유할 수 있고 한 사람이 여러 권의 책을 소유할 수 있지만 이름은 각 사람마다 고유하며(적어도 이론적으로는) 사람과 이름 사이에는 일대일 대응이 있습니다. IP 주소는 실제로 각 컴퓨터마다 고유하다는 점에 유의하세요. 우리는 누군가를 그 사람이 소유한 책의 이름으로 부르지 않고 그 사람의 이름으로 부릅니다. 컴퓨터도 비슷하게 작동합니다. 웹사이트를 방문하려면 책을 읽으려면 책을 소유한 컴퓨터와 통신해야 합니다.
따라서 웹 주소에 액세스할 때 어떤 컴퓨터에 연결할지 컴퓨터에 알려주는 DNS 서버가 있습니다. DNS 서버는 웹 사이트가 호스팅되는 IP 주소(책의 소유자)를 기록하고 해당 IP 주소가 가리키는 컴퓨터와 통신하도록 컴퓨터에 지시합니다.
컴퓨터는 웹사이트가 실제로 어디에 있는지, 답변의 진위 여부를 알 수 없으며, 지시받은 IP 주소로 이동하기 때문에 잘못된 IP 주소에 대한 답변이 있으면 해당 웹사이트에 갈 수 없습니다. 잘못된 IP가 가리키는 시스템에서 호스팅되지 않으며 잘못된 IP와 연결된 시스템에 웹페이지가 존재하지 않습니다. 이를 DNS 스푸핑이라고 하며, 특정 웹사이트에 대한 질문이 있을 때 DNS 서버가 의도적으로 잘못된 IP로 응답하여 해당 웹사이트를 차단하도록 만드는 것입니다. 이 기술은 GFW에서 Wikipedia 및 DeviantArt와 같은 일부 웹 사이트를 금지하기 위해 광범위하게 사용됩니다(차단된 모든 웹 사이트가 이 기술로 차단되는 것은 아닙니다).
DNS 스푸핑을 방지하는 간단한 방법은 호스트를 변경하는 것입니다. 웹 사이트에 액세스할 때 컴퓨터는 웹 사이트의 주소가 호스트 파일에 있는지 확인하고 주소가 호스트 파일에 없는 경우에만 DNS 서버에 쿼리합니다. 호스트 파일에서 주소를 찾은 경우 호스트 파일에서 찾은 주소에 액세스하고 DNS 서버에 쿼리하지 않습니다. 따라서 올바른 IP가 호스트 파일 내에 있으면 DNS 서버의 잘못된 응답이 특정 웹 사이트에 대한 액세스를 차단하지 않습니다. 온라인 DNS 조회를 통해 올바른 IP를 찾습니다.
그러나 호스트 파일도 악용될 수 있습니다.
다음과 같은 방법으로 호스트 파일을 사용하여 웹 사이트를 차단할 수 있습니다.
127.0.0.1 www.contoso.com
일부 프로그램(특히 맬웨어 및 맬웨어 방지 프로그램)도 이 작업을 수행할 수 있습니다.
다시 말하지만, 컴퓨터는 IP가 올바른지 또는 사이트를 차단하려는 경우 IP를 준수하는지 알 수 있는 방법이 없습니다.
이 때문에 거의 모든 바이러스 백신 및 맬웨어 방지 소프트웨어(적어도 내가 아는 한)는 호스트 파일이 변경되는 것을 방지하는 동시에 호스트 파일 자체를 변경하여 일부 웹 사이트를 차단하여 사용자를 "보호"합니다. "보안" 이유 때문에 호스트 파일에 손을 대고 싶다면 먼저 소위 바이러스 백신 소프트웨어를 제거하십시오.