Содержание файла hosts: Содержимое файла hosts и его изменение
Содержание
Программка дря контроля и редактирования файла HOSTS
Внимание !!!
На момент написания статьи все ссылки, приведёные в мною, указывали только на сайт Касперского и доктора Веба.
Все ссылки на скачивание только с Народа.ру и ни каких файлообенников.
Программка «Редактор файла HOSTS» написана на Delphi. Предназначена для контроля и при необходимости исправлением файла HOSTS в ручную, простым удалением из файла всего лишнего кроме строки:
127.0.0.1 localhost
Программа не требует установки.
Программа не вносит изменений в реестр.
Программа не обращается к интернету.
Программа не проверяет наличие обновления
и т.д. и т.д.
Внешний вид програмки после запуска.
вид1: файл hosts в норме файла лже-hosts нет |
вид 2: реальный файл Hosts содержит изменения есть файл лже-hosts |
1 текстовый редактор, в котором отображается содержание файла Hosts.
В зависимости от выбранного режима отображения (2) доступен в режиме просмотра или редактирования.
3 Кнопка «Загрузить Hosts» с диска
при запуске программы это действие выполняется автоматически.
Загружает содержимое файла Hosts в редактор (1)
4 Кнопка «Восстановить Hosts» позволяет удалить из окна редактора (1) всё лишнее.
Остаются только коментарии и строка 127.0.0.1 Localhost
5 Кнопка «Сохранить Hosts».
Сохраняет ваши изменения в файл Hosts
6 Кнопка «Выход» закрывает програмку без сохранения изменений.
7 Красная Кнопка. Появляется только в случае наличия файла лже-hosts.
Удаляет файл лже-hosts. Восстанавливает атрибуты файла HOSTS
Внимание !!!
Программа ни каких изменений не делает сама.
Программа не анализирует содержание фала HOSTS, а только отображает его содержание.
Все действия над файлом HOSTS выполняете только ВЫ. В редакторе и кнопками 4 5 7
Исправление изменений внесённых злоумышленниками
ШАГ 1
Если в редакторе (1) имеются записи (кроме 127.0.0.1 Localhost) нажмите кнопку 4 «Лечить HOSTS»
В окне 1 будут удалены все строки кроме 127.0.0.1 Localhost
Нажмите кнопку 5 «Сохранить HOSTS»
ШАГ 2
Если у вас отобразилась «Красная кнопка» 7. Нажмите её для удаления файла лже-hosts и установки нормальных атрибутов файла HOSTS.
ШАГ 3
Для контроля, что вы выполнили всё верно и изменения вступили в силу, нажмите конпку 3 «Загрузить HOSTS»
Проконтролируйте содержание окна 1 и отсутствие «Красной кнопки» 7
Внимание !!!
Запускайте программу от имени администратора
Если программа не может внести изменения в файл HOSTS вам надо повторить действия в безопасном режиме.
Внимание !!!
Если ваш файл HOSTS был изменён злоумышленниками.
Если в окне 1 были записи типа 127.0.0.1 «адрес сайта»
(см. вид 2: реальный файл Hosts содержит изменения)
Вам обязательно надо проверить компьютер на наличие вирусов.
Рекомендую бесплатную утилиту лечения Cureit с сайта Dr/WEB
Или аналогичную утилиту Kaspersky Virus Removal Tool с сайта Kaspersky Lab
Скачать программу «Редактор файла HOSTS» (копия с Яндекс-диска)
Скачать программу «Редактор файла HOSTS» в архиве (копия с Яндекс-диска)
Файл Hosts в Linux — General Software
Все операционные системы с поддержкой сети имеют файл hosts для перевода имен хостов в IP-адреса. Всякий раз, когда вы открываете веб-сайт, набирая его имя хоста, ваша система считывает файл hosts для проверки соответствующего IP-адреса и затем открывает его.
Файл hosts — это простой текстовый файл, расположенный в папке etc в Linux и Mac OS (/etc/hosts). Windows также имеет файл hosts, в Windows вы можете найти его в папке Windows\System32\drivers\etc\
Вот как это выглядит:
Из того, что мы упомянули, вы, возможно, ожидаете, что этот файл будет содержать очень длинный список IP-адресов и соответствующих им имен хостов; но это не так. Файл hosts содержит всего несколько строк;
- Первая часть, по умолчанию, содержит имена хостов и IP-адреса вашего localhost и машины. Это та часть, которую вы обычно изменяете для внесения нужных изменений.
- Вторая часть содержит информацию о хостах с поддержкой IPv6, и вы вряд ли будете редактировать эти строки.
Всякий раз, когда вы вводите адрес, ваша система проверяет файл hosts на его наличие; если он там присутствует, вы будете направлены на соответствующий IP. Если имя хоста не определено в файле hosts, ваша система проверит DNS-сервер вашего интернета на наличие соответствующего IP и перенаправит вас соответствующим образом.
Содержание
- Зачем редактировать файл /etc/hosts?
- Как редактировать файл /etc/hosts?
- Блокирование веб-сайта
- Доступ к удаленному компьютеру через псевдоним
Зачем редактировать файл /etc/hosts?
Редактируя файлы hosts, вы можете добиться следующих результатов:
- Заблокировать веб-сайт
- справиться с атакой или решить проблему розыгрыша
- Создать псевдоним для адресов на вашем локальном сервере
- переопределять адреса, которые предоставляет ваш DNS-сервер
- контролировать доступ к сетевому трафику
Как редактировать файл /etc/hosts?
Редактировать текстовый файл hosts, расположенный по адресу /etc/hosts, можно только в качестве суперпользователя. Сначала вам придется открыть его в текстовых редакторах, таких как VI editor, Nano editor или gedit и т.д. в терминале Linux. Затем вы внесете необходимые изменения и сохраните файл, чтобы эти изменения вступили в силу.
В этой статье мы будем использовать редактор Nano для редактирования файла. Пожалуйста, введите следующую команду:
sudo nano /etc/hosts
Или
sudo gedit /etc/hosts
Как уже упоминалось, мы будем редактировать первую часть файла hosts, где задаются IP-адреса и имена хостов. Ниже мы расскажем о двух способах использования файла hosts:
- Заблокировать веб-сайт
- Доступ к удаленному компьютеру через псевдоним
Блокирование веб-сайта
Вы можете заблокировать сайт, перенаправив его на IP вашего localhost или маршрут по умолчанию.
Например, если мы хотим заблокировать сайт google.com, мы можем добавить следующий текст в наш файл:
127.0.0.1 www.google.com
Теперь, когда мы откроем сайт google, наша система возьмет IP нашего localhost (127. 0.0.1) из файла hosts и перенаправит нас на него вместо IP google с нашего DNS-сервера.
ИЛИ
0.0.0.0 www.google.com
Теперь, когда мы открываем сайт google, наша система будет брать IP маршрута по умолчанию (0.0.0.0) из файла hosts и перенаправлять нас на него вместо IP google с нашего DNS-сервера.
Вот как будет выглядеть отредактированный файл. Пожалуйста, сохраните изменения, нажав ctrl+X.
Теперь, когда вы попытаетесь открыть www.google.com из браузера, вы увидите сообщение об ошибке следующего вида:
Обратите внимание, что в файле hosts мы указали полный адрес www.google.com, а не только имя хоста google.com, поскольку современные браузеры иногда обходят блокировку, если мы указываем только последнее.
Существует также несколько предопределенных списков блокировок, которые вы можете использовать в своем файле hosts: https://github.com/StevenBlack/hosts.
Доступ к удаленному компьютеру через псевдоним
Предположим, у нас есть сервер, расположенный в локальной сети, к которому мы хотим получить доступ. Обычно нам приходится вводить IP-адрес сервера, чтобы получить к нему доступ, если он не определен в локальном DNS. Один из способов избежать ввода IP снова и снова — назначить псевдоним серверу в файле hosts следующим образом:
192.168.1.10 myserver
IP соответствует местоположению сервера, к которому мы хотим получить доступ, а myserver — это новый псевдоним, который мы хотим использовать.
Теперь, когда мы сохранили файл и набрали myserver в адресной строке, мы будем перенаправлены на наш удаленный сервер.
Мы узнали, что, внеся очень простые изменения в файл hosts, мы можем настраивать и, таким образом, перенаправлять сетевой трафик в соответствии с нашими потребностями. Мы также можем избавиться от сетевой атаки или розыгрыша, восстановив файл hosts по умолчанию.
Как прочитать хост -файлы с помощью PowerShell: Local & Remote
Разделы
- Чтение файла хостов с помощью PowerShell
- для нескольких машин
- Подведение итогов
Разделы
Чтение файла hosts с помощью PowerShell
Получение всего содержимого файла hosts с помощью PowerShell
Получение всех записей из файла hosts
Получение записей из файла hosts для нескольких машин
Подведение итогов
Сегодняшний блог посвящен чтению файла hosts с помощью PowerShell. Хотя есть много причин, по которым кто-то может изменить файл hosts на машине, это может легко выйти из-под контроля, когда записи разбросаны по вашей сети.
Как бы то ни было, у большинства из нас хоть раз в жизни были причины читать или изменять информацию в файле hosts. Мы собираемся рассмотреть чтение файла hosts с помощью PowerShell локально, а также удаленно для нескольких машин. Ура!
Чтение файла hosts с помощью PowerShell
Проще говоря, файл hosts — это сопоставление имен хостов с соответствующими IP-адресами. Вы можете изучить, как и почему его использовать, но это выходит за рамки этого блога.
Достаточно просто перейти к расположению файла hosts и открыть его вручную. В современных версиях Windows он хранится здесь (вам потребуется доступ администратора, чтобы изменить его):
%SystemRoot%\System32\drivers\etc\hosts
Но как насчет учета всех машин в вашей сети? Вы действительно хотите вручную просматривать этот файл на каждой машине? Это определенно риторический вопрос. Правильный ответ – решительное «Нет!»
Итак, что нам делать? Мы используем PowerShell, конечно! Чтение файла hosts с помощью PowerShell очень просто.
Получение всего содержимого файла hosts с помощью PowerShell
Для этого воспользуемся командлетом Get-Content. Этот командлет будет читать содержимое файла.
Если вам нужно только быстро просмотреть все содержимое файла hosts, то эта очень простая однострочная строка должна помочь:
Get-Content $env:SystemRoot\System32\Drivers\etc\hosts
Это достаточно просто и дает нам основную информацию, которую мы ищем.
Но что, если мы хотим получить только фактические записи, а не весь файл? Легко с PowerShell.
Получение всех записей из файла hosts
Чтобы получить все записи из файла hosts, мы будем использовать регулярные выражения для сравнения с каждой строкой в файле hosts. 9(?
$File = «$env:SystemDrive\Windows\System32\Drivers\etc\hosts»
$Записи = @()
(Get-Content-Path $File) | ForEach-Object {
Если ($_ — соответствует шаблону $) {
$Entries += «$env:COMPUTERNAME,$($Matches.IP),$($Matches.Host)»
}
}
$ Записи | Tee-Object -FilePath $LogFile -Append
Вуаля! Это довольно просто, и вы получаете чистые результаты только с фактическими записями в файле hosts (а не со всем содержимым файла).
Фантастика! Теперь давайте перейдем к тому, чтобы сделать это для всех машин!
Получение записей из файла hosts для нескольких машин
Итак, у нас есть этот причудливый скрипт для получения записей из файла hosts и регистрации их в файле. Получить их с нескольких машин также несложно.
Вот несколько способов, как это можно сделать:
Шаги PDQ Deploy и PowerShell
Вот шаги по использованию PDQ Deploy с этими сценариями PowerShell.
1. Создайте пакет развертывания PDQ с шагом PowerShell, который включает ваш сценарий.
2. Выполните развертывание на целевых объектах и проверьте файл журнала.
Как по волшебству, теперь вы можете выполнять развертывание на всех ваших целевых объектах и сохранять результаты в файл журнала по некоторому пути UNC. Иди ты!
Инвентаризация PDQ и удаленное управление
Ниже приведены инструкции по использованию инвентаризации PDQ с этими сценариями PowerShell.
1. Выберите цели и используйте дистанционное управление.
3. Выберите все цели, чтобы просмотреть объединенные результаты. Компьютеры без результатов просто отобразят «Код возврата: 0», поскольку они успешно запустились, но не дали никаких результатов.
Да да! Это так просто. Очень быстро выбрать некоторые машины, а затем посмотреть, что у них есть в их файле hosts.
Удаленный PowerShell и Invoke-Command
Для этого необходимо предварительно настроить удаленный PowerShell для своих целей. В противном случае вы получите ошибки при попытке подключения к вашим целям. Я добавил Test-WSMan для фильтрации этих результатов.
Кроме того, нам нужно изменить способ входа в файл, иначе мы столкнемся с проблемами аутентификации с двойным переходом. 9(?
$File = «$env:SystemDrive\Windows\System32\Drivers\etc\hosts»
(Get-Content-Path $File) | ForEach-Object {
Если ($_ — соответствует шаблону $) {
«$env:COMPUTERNAME,$($Matches.IP),$($Matches.Host)»
}
}
}
Foreach ($Computer в $Computers) {
If ([bool](Test-WSMan -ComputerName $Computer -ErrorAction SilentlyContinue)) {
$Result += Invoke-Command -ComputerName $Computer -ScriptBlock $MyScript
}
}
$Результат | Tee-Object -FilePath $LogFile -Append 9(?
$Записи = @()
$Computers = @(«МАРШЬ», «МАТЕРА», «РОМАША»)
Foreach ($Computer в $Computers) {
$file = «\\$Компьютер\c$\Windows\System32\Drivers\etc\hosts»
(Get-Content-Path $File) | ForEach-Object {
Если ($_ — соответствует шаблону $) {
$Entries += «$компьютер,$($Matches. IP),$($Matches.Host)»
}
}
}
$ Записи | Tee-Object -FilePath $LogFile -Append
Вероятно, это будет самый быстрый способ получить информацию о файле hosts.
Подведение итогов
Вот и все! Теперь у вас есть куча способов решить задачу чтения всех записей файла hosts.
Это всего лишь примеры, поэтому вы, вероятно, захотите изменить их для своей среды. Одно изменение, о котором я могу думать, например, импортирует ваш список компьютеров. В своих примерах я использую статический список компьютеров.
В любом случае получайте удовольствие!
Счастливого PowerShelling!
Понимание файла /etc/hosts в Linux — Дневник Компьютерщика
от администратора
Что такое /etc/hosts и почему он используется?
Для отправки сетевого трафика на хост необходимо знать числовой адрес Интернет-протокола (IP) для этого хоста. IP-адрес традиционно записывается как xxx. xxx.xxx.xxx, где каждое xxx представляет значение от 0 до 255 для сетевого адреса IPv4. Компьютерам требуются эти адреса, но людям трудно запоминать числовые значения. Служба доменных имен (DNS) предоставляет механизм для связывания одного или нескольких буквенно-цифровых имен с числовым IP-адресом. В системе Linux эти удобочитаемые имена преобразуются в их числовые IP-эквиваленты библиотекой Resolver Library, содержащейся в файлах libresolve.so, поставляемых как часть RPM-пакета glibc. Программы, которым необходимо искать числовой IP-адрес для проблемы с именем, вызывают эту библиотеку.
Имена хостов и их IP-адреса можно найти в различных местах: в локальных файлах, на удаленных DNS-серверах или серверах NIS+ и т. д. Порядок поиска этих ресурсов зависит от hosts: запись в файле /etc/nsswitch.conf . Обычно эта строка выглядит так:
# vi /etc/nsswitch.conf hosts: files dns
Это приводит к тому, что библиотека распознавателя сначала обращается к локальному файлу /etc/hosts; если имя хоста там не найдено, обратитесь к удаленным серверам имен DNS, указанным в /etc/resolv. conf файл.
Linux предоставляет RPM-пакет bind , позволяющий административному домену настраивать и поддерживать свою собственную службу DNS, но часто размер локальной сети составляет всего несколько хостов, что делает неоправданными усилия по поддержке службы DNS.
Формат файла /etc/hosts
Файл /etc/hosts представляет собой обычный текстовый файл. Допускаются два типа строк:
- Пустые строки
- Определения имени хоста
При необходимости линии могут быть перемешаны. Комментарии начинаются с символа решетки ( # ) и продолжаются до конца строки.
Связывание имен хостов и IP-адресов
Для каждого хоста должна присутствовать одна строка со следующей информацией:
IP_адрес canonical_hostname [псевдонимы ...]
Поля записи разделяются любым пробелом (пробелом или табуляцией) . Первое поле — это числовой IP-адрес, который будет использоваться для всех имен хостов в этой записи. В зависимости от ваших требований можно использовать либо адрес IPv4 (10.1.2.3), либо адрес IPv6 (2001:0db8:0000:0000:0000:0000:1428:57ab), либо аббревиатуру IPv6 (::1).
После IP-адреса оставшиеся маркеры указывают локально известные имена хостов, связанные с этим IP-адресом. По соглашению первое имя после IP-адреса является каноническим или полным доменным именем. Примером канонического имени может быть server.example.com; это официальное имя хоста.
Любые оставшиеся имена, определенные для IP-адреса, являются псевдонимами или альтернативными именами для официального имени хоста. Например, предположим, что одна из обязанностей, возложенных на server.example.com, — быть корпоративным FTP-узлом. Тогда подходящим псевдонимом может быть myftp.example.com, и это имя можно добавить в запись /etc/hosts после канонического имени. Часто псевдоним — это просто имя хоста без суффикса домена. Например:
192.168.10.12 server.example.com myftp.example.com myhost myftp
Преимущество перечисления канонического имени хоста в качестве первого определения в строке заключается в том, что преобразование IP-адреса в имя хоста (аналогично обратному поиску DNS) обычно отображать только первое найденное имя; соглашение использует для этого каноническое имя.