LINUX.ORG.RU
ФорумAdmin

Запрет склеивания строк с одинаковым IP в файле etc hosts

 


2

3

Есть файл /etc/hosts в нем есть много доменов типа:

127.0.0.1 safebrowsing.google.com
127.0.0.1 telemetry.mozilla.org
127.0.0.1 telemetry.microsoft.com
127.0.0.1 google-analytics.com
и т.д. всего порядка 1000 строк...

Я их заношу в файл построчно чтобы мне было потом удобно искать и редактировать, но после перезагрузки сервера все строки объединяются в одну:

127.0.0.1 safebrowsing.google.com telemetry.mozilla.org telemetry.microsoft.com google-analytics.com ... 

редактировать с такой строкой невозможно и сильно неудобно.

Как запретить склевать строки в файле hosts с одинаковым IP в одну строку?

Гугление ничего не дает, установка прав только на чтение (444) не помогает.

возьми уже днс сервер и сделай правильно. а не тысячи строк в hosts..

anonymous
()
Ответ на: комментарий от anonymous

Мне нужно просто заблочить лишние сайты, это самый простой способ. Зачем мне еще DNS сервер настраивать? Я считаю это лишнее, ктому же эта 1000 строк будет в настройках DNS сервера прописана.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

суть в использовании правильного инструмента. hosts для твоего юзкейса не предназначем. Там один ip - она строка.

anonymous
()

что за ОС ? А если оставить эти 4 стоки как у тебя в примере выше , тоже объединит?

anonymous
()
Ответ на: комментарий от anonymous

на одной строке должен быть один сайт и один IP, все должно быть как в самом начале до перезагрузки. Не зависимо сколько указано адресов для 127.0.0.1 они все потом объединяются в одну строку. Linux считает что это один домен и остальное это alias:

IP domen [alias1] [alias2] [alias3]

OS: Debian 9

AnastasiaM
() автор топика

По характеру подлянки предполагаю что дело в каком-нить системд-резолвд. Попробуй покрутить настройки или вообще вырубить.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

выключила systemd-resolved.service перезагрузила, не помогает. Опять кто-то склеил все строки и отредактировал файл :-(

AnastasiaM
() автор топика
Ответ на: комментарий от ya-betmen

не запускается по человечески аудит, мятюкается. Пока не могу натравить ausearch или aureport на файл hosts. Продолжу разбираться завтра, может что-то получится...

# systemctl status auditd.service
● auditd.service - Security Auditing Service
   Loaded: loaded (/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-05-19 22:19:40 MSK; 45s ago
     Docs: man:auditd(8)
           https://people.redhat.com/sgrubb/audit/
  Process: 93 ExecStartPost=/sbin/augenrules --load (code=exited, status=4)
 Main PID: 92 (auditd)
   CGroup: /system.slice/auditd.service
           └─92 /sbin/auditd -n

май 19 22:19:40 VPS systemd[1]: Starting Security Auditing Service...
май 19 22:19:40 VPS auditd[92]: Started dispatcher: /sbin/audispd pid: 131
май 19 22:19:40 VPS audispd[131]: priority_boost_parser called with: 4
май 19 22:19:40 VPS audispd[131]: max_restarts_parser called with: 10
май 19 22:19:40 VPS audispd[131]: No plugins found, exiting
май 19 22:19:40 VPS auditd[92]: Init complete, auditd 2.6.7 listening for events (startup state enable)
май 19 22:19:40 VPS augenrules[93]: /sbin/augenrules: No change
май 19 22:19:40 VPS augenrules[93]: You must be root to run this program.
май 19 22:19:40 VPS systemd[1]: Started Security Auditing Service.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

chattr +i /etc/hosts

А дальше сама думай, но проще удалить скрипт который изменяет hosts

itn ★★★
()

Можно вешать не на 127.0.0.1, а на любой другой адрес в сети 127.0.0.0/8.

Т.е. для каждого домена свой ip, например 127.100.0.1, 127.100.0.2 ... 127.100.1.1, 127.100.N.N.

anonymous
()

установка прав только на чтение (444) не помогает.

chattr +i /etc/hosts

anto215 ★★
()

Коллеги, а тем не менее вопрос действительно интересный. «Какая сволочь такое делает?» Я с таким не сталкивался.

anc ★★★★★
()

Проверил на proxmox 5.4.5 (производное debian, тестовый стенд), не сжимает, остается так как написал.

127.0.0.1 localhost.localdomain localhost
10.10.10.204 pve-04.local pve-04 pvelocalhost

10.10.10.201 pve-01
10.10.10.202 pve-02
10.10.10.203 pve-03

10.10.10.201 test1
10.10.10.202 test2
10.10.10.203 test3
10.10.10.204 test4

192.168.28.26   zabbix

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Вопрос интересный, подписался.

pvvking ★★
()
Ответ на: комментарий от Anoxemian

Если это действительно так. То «дяде лёне» надо «глаз на попу натянуть» (c) Зачем такое делать? Могу врать, но мне кажется даже мс до такого не дошла.

anc ★★★★★
()
Ответ на: комментарий от Anoxemian

Это не systemd-resolved, я его выключала. Это не он. Понять кто именно не могу. Нашла временное решение:

- создать файл /etc/hosts_normal и в нем держать все нужные данные и только его редактировать и потом просто перезаписывать файл /etc/hosts. Внутрь файла /etc/hosts вообще тогда можно не смотреть, пусть система что хочет то и делает с ним.

cp -v /etc/hosts_normal /etc/hosts
AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

cp -v /etc/hosts_normal /etc/hosts

-a а то малоли...

anc ★★★★★
()
Ответ на: комментарий от AnastasiaM

Это не systemd-resolved, я его выключала.

Верно. Я сейчас проверил на тестовой (Debian GNU/Linux 9.9 (stretch)). Включил. Все как было так и осталось, не портит /etc/hosts.
Так что Anoxemian вы не правы.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от mky

На github сказали для сокращения используются флаги --compress и --minimize. Где эти флаги искать? я не могу понять, я пересмотрела конфигурационные файлы относящиеся к сети, там нет таких флагов. Еще для эксперимента была взята другая VPS с точно таким же Debian 9 и схожими настройками и там нет склеивания строк. Все службы и настройки почти схожие. Есть подозрение что до меня кто поменял руками настройки или сделал дополнительный скрипт для склеивания строк в одну. Судя по экспериментам что проводили люди большого выигрыша в скорости нет, только размер файла уменьшается и всё. Мне не важен размер файла, толи он будет 28 Кб, толи 19 Кб, разница копейки. Мне нужно просто по-человечески блокировать телеметрию и сайты с рекламой.

AnastasiaM
() автор топика
Ответ на: комментарий от anonymous

Ох, простите, вижу выше уже советовали.

anonymous
()
Ответ на: комментарий от AnastasiaM

Я, честно говоря, тоже не понял, что это за флаги. Надеялся, что может кто в этом топике расскажет.

другая VPS с точно таким же Debian 9 и схожими настройками и там нет склеивания строк.

Раз ситуация не воспроизводится у вас и у других, то вся надежда на вас, что получится настроить audit, найти причину и написать сюда, а то уже 3 подписавшихся. Мне подписываться лень, но я так буду отслеживать.

до меня кто поменял руками настройки

Надо бы поймать этого StevenBlack и задать пару вопросиков, у него явно было такое желание :-)

mky ★★★★★
()
Ответ на: комментарий от mky

auditd запустить не получается, он меня не понимает и требует от root'a чтобы он был root'ом

# id
uid=0(root) gid=0(root) группы=0(root)

# auditctl -l
You must be root to run this program.

Запустить службу тоже не получается, ошибку выше писала. Не хочет со мной дружить этот auditd. Пока есть только временное решение что описала выше.

AnastasiaM
() автор топика
Ответ на: комментарий от anc

я так поняла эти флаги имеют отношение в программе на github и если этой программы нет на VPS то и эти флаги не помогут. Я эту программу не ставила, значит этот метод чтобы убрать флаги --compress и --minimize мне не помогут.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

На втором дебиане, где нет склеивания строк, auditctl работает и тоже хочет root? Если это не из-за VPS, то сломаный auditctl ещё подозрительнее, чем склеивание строк в /etc/hosts.

Так можно посмотреть, какие у процесса ID, может не все uid будут равны нулю:

# ps -o pid,euid,ruid,suid $$

mky ★★★★★
()
Ответ на: комментарий от AnastasiaM

я так поняла эти флаги имеют отношение в программе на github

Именно так.

anc ★★★★★
()
Ответ на: комментарий от mky

Если это не из-за VPS

Кстати дельная мысль. 2ТС Пальцем в небо. А не какой-нибудь openvz у вас?

anc ★★★★★
()
Ответ на: комментарий от mky

Явных проблем нет, root = 0 есть. Именно под ним и идет запуск и настройка, точнее пытаюсь запустить, а оно не хочет.

# ps -o pid,euid,ruid,suid $$
  PID  EUID  RUID  SUID
  972     0     0     0

На другом сервере тоже самое - audit не запускается. На всех серверах OpenVZ, есть подозрение что это именно из-за него.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

после перезагрузки сервера все строки объединяются в одну

Старый добрый способ, составляем список того что у нас стартует и находим «негодяя».

anc ★★★★★
()
Ответ на: комментарий от AnastasiaM

Да, auditd не работает под OpenVz. И ничего не сделать. Может, если у вас высоке скрипт-фу, напишите скрипт, который через inotify-tools следит за /etc/hosts и при изменении сразу список процессов в файл сохраняет и, если повезёт, «вредитель» в этом списке засветится.

И grep'ните на всякий случай все файлы в /etc на наличие ″updateHostsFile.py″, может кто вместо вас это чудо установил, которое эти флаги (--compress и --minimize) понимает.

mky ★★★★★
()
Ответ на: комментарий от mky

напишите скрипт, который через inotify-tools следит за /etc/hosts

1. Да, но не забыть что этот скрипт должен стартовать до? И вот тут возникают вопросы, до какого сервиса? Чем раньше тем лучше. Это понятно. Имхо методом «тыка» или «половинного деления» быстрее можно найти «виновника торжества».
2. Вопрос: inotify - отработает на openvz ?

anc ★★★★★
()
Ответ на: комментарий от anc

можно попробовать поставить snoopy или грепнуть, посмотреть загрузочные скрипты и планировщики.

anonymous
()
Ответ на: комментарий от AnastasiaM

Если виртуалка развернута из хостервского образа напиши в саппорт, может они сами эту дрянь туда воткнули.

Кстати гуглится вот такая бага по опенвз https://bugs.openvz.org/browse/OVZ-3996. Т.е. оно само может лазать в хостфайлик.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 3)
Ответ на: комментарий от ya-betmen

Саппорт писала, они говорят что мы ничего не делали, это оно само. по поводу проблемы OVZ-3996 её решили еще 9 лет назад, я думаю это не оно.

Я смотрела список того что стартует, там почти ничего нет. что можно было выключть я выключала, результат один и тот же. Даже службу networking.service выключала, но без нее сеть вообще не работает :(

Писать скрипт который следит за hosts не сильно хочется, сеть задачи поважней, проблема с hosts не сильно большая, можно пережить.

Предлагаю оставить временное решение описанно выше и больше не мучаться. Всем спасибо за помошь :-)

AnastasiaM
() автор топика
Ответ на: комментарий от anonymous

snoopy поставила посмотрела, вроде все нормально ничего подозрительного стороннено или лишенго не запускается, только все системные программы.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

её решили еще 9 лет назад

Да но сам факт её существования говорит что сам опенвз может заниматься этим.

ya-betmen ★★★★★
()
25 июня 2019 г.
9 ноября 2019 г.
Ответ на: комментарий от AnastasiaM

нихрена подобного, у меня в хостс порядка 50 строк и везде 127.0.0.1 и состояние файла не меняется, ищи кто или что правит твой хостс в одну строку.

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.