Linux : /etc

делимся знанием

NetTools.ru


В процессе отстройки почтового сервера наткнулся на сайт сетевых утилит nettools.ru. Он позволяет просмотреть DNS-записи нужного домена, протестировать почтовый сервер на open relay, сервер на open proxy и много чего другого. Конечно, всё это можно (и нужно) уметь делать самому из шелла, но собранные в одном месте инструменты сетевого администратора порой здорово экономят время и силы.


OpenVPN: частный случай p2p соединения


Рассмотрим весьма частный случай применения OpenVPN.

Конфигурация сети:

  1. Диспетчер, он же центральный хаб “звезды”, он же VPN-сервер в стандартной схеме “клиент-сервер”.
  2. Client1, по отношению к диспетчеру — клиент.
  3. Client2, по отношению к диспетчеру — клиент.
  4. Предполагается, что впоследствии появятся ещё Client3, …, ClientN, и все они по отношению к диспетчеру будут суть клиенты.

Считается, что VPN между диспетчером и каждым из клиентов уже настроен, то есть классическая “звезда” уже работает.

Требуется обеспечить симметричный p2p VPN-линк между Client1 и Client2. Другими словами, превратить “звезду” в полносвязку.

Когда я приступил к решению данной задачи, то обнаружил, что в интернете практически отсутствуют описания применения OpenVPN в симметричных схемах. Везде тщательно и со вкусом рассматриваются схемы “клиент-сервер”, при которых одна определённая сторона ждёт входящих соединений, а другая
инициирует исходящие.

Так как Client1 и Client2 — это равноправные сервера, делать кого-то формальным сервером не было ни желания, ни особого смысла. С учётом же возможности пояления Client3, …, ClientN заводить N формальных серверов — это неизбежно запутаться во всех них.

Читать дальше...


SSL proxy на lighttpd


Возникла необходимость сделать на lighttpd балансирующий ssl-прокси к веб-серверу под управлением Apache. Другими словами, реализовать схему:

               https-запрос
	            |
		   \|/
                 lighttpd
		 /       \
		/         \
	    apache1      apache2

где apache1. apache2 выбираются, исходя из доступности.

Так как задача отняла чуть больше времени и сил, чем ожидалось, приведу решение с небольшим комментарием:

Читать дальше...


Подключение приёмника IRLink к Linux


Как-то раз я собрался с духом и настроил у себя просмотр IP-телевидения от Корбины с помощью всемогущего mplayer (возможно, я напишу об этом позднее). Создал в fvwm меню пунктов на сорок для быстрого выбора каналов… Но всё равно было как-то не вполне удобно. Например, научить домашних пользоваться телевизором с клавиатуры — мягко скажем, задача не из простых и смысла в ней нет никакого.

Так я осознал, что моему компьютеру нужен пульт дистанционного управления. Беглый поиск в гугле моментально вывел меня на общеизвестную в линуксовых кругах программу lirc. Всё бы ничего, но к ней требовался инфракрасный приёмник и пульт. Паять приёмник самому у меня не было ни умения, ни особого желания.

Читать дальше...


Быстрый поиск среди ebuild’ов


В интернете наткнулся на упоминание утилиты, индексирующей базу данных портежей Gentoo и работающую гораздо быстрее стандартных emerge –search и emerge –searchdesc. Рекомендую — eix.

Установка тривиальна: emerge eix.

Использование тоже несложно: после каждого emerge –sync следует запускать update-eix. После чего поиск пакета с foo в названии выполняется командой eix foo практически мгновенно. Да и информации, если приглядеться, eix выводит побольше — читатель вполне сможет оценить это самостоятельно, поставив eix.


Couldn’t allocate PPP unit 0 as it is already in use


На машине, где несколько интернет-провайдеров, соответственно имеются несколько ppp интерфейсов. Часто случается так, что неизвестно, который из провайдеров поднимет ppp-линк раньше и получит ppp0, ppp1 или вообще pppN. И тогда запросто возможна ситуация, когда второй по задумке провайдер, которому надо висеть не ppp1, вдруг появляется на ppp0, руша настроенные правила роутинга, файрволла и прочего сетевого хозяйства.

Подобную ситуацию можно, конечно, отследить в скрипте, меняя при необходимости имя сетвеого интерфейса ppp* на нужное. До поры до времени это работает.

Потом выясняется, что один из провайдеров мистическим образом непрерывно глючит, коннекта с ним нет никогда или почти никогда. В логах при этом, если приглядеться, мелькает запись вида: Couldn’t allocate PPP unit 0 as it is already in use

Проблема на самом деле решается очень просто. У pppd есть параметр unit N, где N есть закрепленный за данным экземпляром pppd номер интерфейса pppN. Таким образом, достаточно для всех ppp* в системе в соответствующих /etc/ppp/options.* дописать нужный unit 0, unit 1, etc, и проблема драки за номера pppN исчезнет навсегда.


Маленькие радости linux


  1. Вывод размеров директорий, отсортированный по объему:
  2. du –max-depth=1 -k | sort -n -k 1,8

  3. Удаление всех файлов, к которым не обращались последнии 30 дней, из заданной директории:
  4. find /var/spool/amavis/quarantine/ -atime +30 -exec rm {} \;

Когда-то давно слышал хорошее определение: linux — это ядро ос и набор взаимодействующих с собой утилит.


ping: sendmsg: Operation not permitted


Если вы получаете сообщение о такой ошибке:

ping: sendmsg: Operation not permitted

то 99 % это ошибка конфигурации вашего фаервола. Просто опустите iptables.


Работа одновременно с двумя выделенными линиями. Часть 2. Локальные сети и интернет


В первой части речь шла о первичной настройке одновременной работы с двумя локальными сетями, к которым присоединен ваш компьютер. Несмотря на достаточно сырое изложение материала, рекомендую прочитать сначала её — там как минимум описаны нюансы конфигурирования ядра Linux, которые надо учесть при работе с утилитами расширенного роутинга пакета iproute2.

Сейчас речь пойдёт об одновременной работе как двух локальных сетей, так и двух шлюзов в интернет, предоставляемых этими двумя сетями.

Читать дальше...


Работа одновременно с двумя выделенными линиями. Часть 1.


По ряду причин я решил купить домой вторую выделенную линию. Пришли монтажники из Корбины, провели мне вторую линию, воткнули во вторую сетевую карту, проверили на работоспособность и ушли. А я остался настраивать оба интернета :-).

Поднял вчерне оба интернета — от районной сети GolNet и от Корбины — и решил пропинговать извне одновременно оба своих ip. Результат: корбиновский ip пингуется, голнетовский нет. Через минуту я понял, что так и должно быть — ответ на пакет от GolNet уходил по дефолтному роутингу на корбиновский интерфейс и, естественно, не получался тем, кто пингует голнетовский ip-адрес.

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

Поиск в интернете в конце концов вывел меня на пакет iproute2 — подсистема расширенного роутинга под Linux.

Читать дальше...