По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Как правило, EIGRP-спикер роутер динамически обнаруживает своих соседей, отправляя multicast Hello сообщения. Однако есть возможность статически настроить этих соседей и общаться с ними с помощью unicast сообщений. Это делается крайне редко, но в таких случаях может оказаться полезным.
Предыдущие статьи из цикла про EIGRP:
Часть 1. Понимание EIGRP: обзор, базовая конфигурация и проверка
Часть 2. Про соседство и метрики EIGRP
Часть 2.2. Установка K-значений в EIGRP
Часть 3. Конвергенция EIGRP – настройка таймеров
Часть 4. Пассивные интерфейсы в EIGRP
Следующие статьи из цикла:
Часть 6. EIGRP: идентификатор роутера и требования к соседству
Рассмотрим для примера Frame Relay WAN. Представьте себе, что роутер А имеет интерфейс, настроенный на десять постоянных виртуальных каналов Frame Relay (PVC). На другом конце двух этих PVC каналов находятся EIGRP-спикер роутеры. Однако другие восемь PVC каналов не подключены к EIGRP-спикер роутерам. В данной топологии, если бы WAN-интерфейс роутера A участвовал в EIGRP, то роутер A должен был бы реплицировать свое приветственное сообщение EIGRP и отправить копию всем десяти PVC, что привело бы к увеличению нагрузки на роутер A и увеличило использование полосы пропускания на других восьми PVC, не подключающихся к EIGRP роутеру. Это ситуация, при которой выигрыш состоит в статической настройке соседей EIGRP, а не от использования процесса обнаружения на основе многоадресной рассылки. Давайте рассмотрим вариант конфигурации статического соседства EIGRP в этой статье.
Статическая конфигурация соседства
Команда neighbor ip_address outgoing_interface вводится в режиме конфигурации роутера EIGRP для статического указания соседства EIGRP. Обратите внимание, что эта настройка должна быть выполнена на обоих соседях. Кроме того, имейте в виду, что IP-адрес, указанный в команде neighbor, принадлежит той же подсети, что и указанный исходящий интерфейс. На основе топологии, показанной ниже, следующие примеры настроек показывают, как роутеры OFF1 и OFF2 статически указывают друг на друга, в отличие от использования динамического обнаружения.
OFF1#conf term
Enter configuration commands, one per line. End with CNTL/Z.
OFF1(config)#router eigrp 1
OFF1(config-router)#neighbor 10.1.1.2 gig 0/1
OFF1(config-router)#end
OFF1#
OFF2#conf term
Enter configuration commands, one per line. End with CNTL/Z.
OFF2(config)#router eigrp 1
OFF2(config-router)#neighbor 10.1.1.1 gig 0/1
OFF2(config-router)#end
OFF2#
На роутере OFF1 команда neighbor 10.1.1.2 gig 0/1 введенная в режиме конфигурации роутера EIGRP, дает команду процессу EIGRP прекратить отправку многоадресных сообщений из интерфейса Gig 0/1 и вместо этого начать использовать одноадресные сообщения. Он также инструктирует процесс маршрутизации EIGRP попытаться установить соседство с EIGRP-спикер роутером, по IP-адресу 10.1.1.2 (то есть IP-адрес интерфейса Gig 0/1 роутера OFF2). Поскольку статическая конфигурация соседа должна выполняться на обоих концах канала, роутер OFF2 аналогично настроен для отправки одноадресных сообщений EIGRP со своего интерфейса Gig 0/1 и для установления соседства с EIGRP-спикер роутером с IP-адресом 10.1.1.1 (то есть IP-адресом интерфейса gig 0/1 роутера OFF1).
Проверка статического соседства
Чтобы определить, какие интерфейсы на роутере статически настроены с соседом EIGRP, можно использовать команду show ip eigrp neighbors detail. В приведенном ниже примере показано, что эта команда выполняется на роутере OFF1. Обратите внимание, что выходные данные идентифицируют 10.1.1.2 как статически настроенного соседа.
Предостережение по применению статического соседства
Рассмотрим роутер, который должен установить более чем одно соседство EIGRP с одного интерфейса, например роутер OFF2 на рисунке ниже. В этой топологии роутеры OFF1 и OFF2 динамически cформировали соседство EIGRP. Позже был добавлен роутер OFF4, и роутеры OFF2 и OFF4 были настроены как соседи EIGRP статически. Однако после того, как была сделана статическая настройка, роутер OFF2 потерял свое соседство с роутером OFF1. Причина заключается в том, что роутер OFF2 отправляет только одноадресные сообщения EIGRP со своего интерфейса Gig0/1 и хочет получать только одноадресные сообщения EIGRP, поступающие на этот интерфейс. Однако роутер OFF1 все еще настроен (с настройками по умолчанию) для отправки и ожидания многоадресных сообщений EIGRP на своем интерфейсе Gig0/1. Итак, мораль этой истории заключается в том, что если вы настраиваете интерфейс роутера для установления соседства EIGRP статически, убедитесь, что все соседи EIGRP вне этого интерфейса также настроены для соседства статически.
Дело за малым - осталось последняя статья из цикла - EIGRP: идентификатор роутера и требования к соседству.
Начиная своё знакомство с iptables, следует рассказать про netfilter. Netfilter - это набор программных хуков внутри ядра Linux, которые позволяют модулям ядра регистрировать функции обратного вызова от стека сетевых протоколов.
Хук (hook) - это программный элемент, который позволяет перехватывать функции обратного вызова в чужих процессах.
Netfilter является основой для построения Firewall'а в дистрибутивах Linux, но для того, чтобы он заработал в полную силу его нужно настроить. Как раз с помощью iptables мы можем взаимодействовать с хуками Netfilter и создавать правила фильтрации, маршрутизации, изменения и транслирования пакетов. Иногда про Netfilter забывают и называют эту связку просто iptables.
Введение
Итак, iptables - это утилита для настройки программного Firewall'а (межсетевого экрана) linux, которая предустанавливается по умолчанию во все сборки Linux, начиная с версии 2.4. Запускается iptables из командной строки (CLI) под пользователем с правами root и настраивается там же.
Можете в этом убедиться, набрав команду iptables -V в командной строке, она покажет вам версию iptables.
Почему же iptables всем так понравился, что его стали включать во все сборки Linux? Всё дело в том, что iptables действительно очень прост в настройке. С помощью него можно решить следующие задачи:
Настроить stateless и statefull фильтрацию пакетов версий IPv4 и IPv6;
Stateless - это фильтрация, основанная на проверке статических параметров одного пакета, например: IP адрес источника и получателя, порт и другие не изменяющиеся параметры.
Statefull - это фильтрация, основанная на анализе потоков трафика. С помощью нее можно определить параметры целой TCP сессии или UDP потока.
Настраивать все виды трансляции IP адресов и портов NAT, PAT, NAPT;
Настроить политики QoS;
Производить различные манипуляции с пакетами, например - изменять поля в заголовке IP.
Прежде чем переходить к практике, давайте обратимся к теории и поймём саму логику iptables.
Логика и основные понятия iptables
Правила
Как и все файрволлы, iptables оперирует некими правилами (rules), на основании которых решается судьба пакета, который поступил на интерфейс сетевого устройства (роутера).
Ну допустим у нас есть сетевое устройство с адресом 192.168.1.1, на котором мы настроили iptables таким образом, чтобы запрещать любые ssh (порт 22) соединения на данный адрес. Если есть пакет, который идёт, например, с адреса 192.168.1.15 на адрес 192.168.1.1 и порт 22, то iptables скажет: “Э, нет, брат, тебе сюда нельзя” и выбросит пакет.
Или вообще ничего не скажет и выбросит, но об этом чуть позже :)
Каждое правило в iptables состоит из критерия, действия и счётчика
Критерий - это условие, под которое должны подпадать параметры пакета или текущее соединение, чтобы сработало действие. В нашем примере – этим условием является наличие пакета на входящем интерфейсе, устанавливающего соединение на порт 22
Действие - операция, которую нужно проделать с пакетом или соединением в случае выполнения условий критерия. В нашем случае – запретить пакет на порт 22
Счетчик - сущность, которая считает сколько пакетов было подвержено действию правила и на основании этого, показывает их объём в байтах.
Цепочки
Набор правил формируется в цепочки (chains)
Существуют базовые и пользовательские цепочки.
Базовые цепочки - это набор предустановленных правил, которые есть в iptables по умолчанию.
Существует 5 базовых цепочек и различаются они в зависимости от того, какое назначение имеет пакет. Имена базовых цепочек записываются в верхнем регистре.
PREROUTING - правила в этой цепочке применяются ко всем пакетам, которые поступают на сетевой интерфейс извне;
INPUT - применяются к пакетам, которые предназначаются для самого хоста или для локального процесса, запущенного на данном хосте. То есть не являются транзитными;
FORWARD - правила, которые применяются к транзитным пакетам, проходящими через хост, не задерживаясь;
OUTPUT - применяются к пакетам, которые сгенерированы самим хостом;
POSTROUTING - применяются к пакетам, которые должны покинуть сетевой интерфейс.
В базовых цепочках обязательно устанавливается политика по умолчанию, как правило – принимать (ACCEPT) или сбрасывать (DROP) пакеты. Действует она только в цепочках INPUT, FORWARD и OUTPUT
Таблица
Таблицы - это набор базовых и пользовательских цепочек. В зависимости от того, в какой таблице находится цепочка правил, с пакетом или соединением производятся определённые действия
Существует 5 таблиц:
filter - таблица, выполняющая функции фильтрации пакетов по определённым параметрам. В большинстве случаев вы будете использовать именно её. Содержит следующие встроенные цепочки: FORWARD, INPUT, OUTPUT;
raw - чтобы понять предназначение этой таблицы, нужно понимать логику работы statefull firewall'а. Дело в том, что по умолчанию, iptables рассматривает каждый пакет как часть большого потока и может определить какому соединению принадлежит тот или иной пакет. С помощью raw таблицы настраиваются исключения, которые будут рассматривать пакет как отдельную, ни к чему не привязанную сущность. Содержит следующие встроенные цепочки: INPUT, OUTPUT;
nat - таблица, предназначенная целиком по функции трансляции сетевых адресов. Содержит следующие встроенные цепочки: PREROUTING, OUTPUT, POSTROUTING;
mangle - таблица, предназначенная для изменения различных заголовков пакета. Можно, например, изменить TTL, количество hop'ов и другое. Содержит следующие встроенные цепочки: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING>;
security - используется для назначения пакетам или соединениям неких меток, которые в дальнейшем может интерпретировать SElinux.
Теперь мы можем представить себе логику iptables в виде следующей схемы:
Действия
Ну и последнее, о чем нужно рассказать, прежде чем мы с вами начнем писать правила - это target. В контексте iptables, target - это действие, которое нужно проделать с пакетом или соединением, которое совпало с критериями правила.
Итак, наиболее используемые действия:
ACCEPT - разрешить прохождение пакета;
DROP - тихо выбросить пакет, не сообщая причин;
QUEUE - отправляет пакет за пределы логики iptables, в стороннее приложение. Это может понадобиться, когда нужно обработать пакет в рамках другого процесса в другой программе;
RETURN - остановить обработку правила и вернуться на одно правило назад. Это действие подобно break'у в языке программирования.
Помимо этих четырех, есть ещё масса других действий, которые называются расширенными (extension modules):
REJECT - выбрасывает пакет и возвращает причину в виде ошибки, например: icmp unreachable;
LOG - просто делает запись в логе, если пакет соответствует критериям правила;
Есть действия, которые доступны только в определенной цепочке и таблицах, например, только в табоице nat и цепочках OUTPUT и PREROUTING доступно действие DNAT, которое используется в NAT'ировании и меняет Destination IP пакета. В той же таблице, только в цепочке POSTRUNNING доступно действие SNAT, меняющее Source IP пакета.
Отдельно остановимся на действии MASQUERADE, которое делает то же самое что SNAT, только применяется на выходном интерфейсе, когда IP адрес может меняться, например, когда назначается по DHCP.
Пишем правила
Отлично, теперь давайте приближаться к практике. Как Вы уже поняли, мы будем писать правила, поэтому нам нужно понять, как они строятся.
Итак, допустим у нас есть хост с адресом 192.168.2.17, на 80 (http) порту которого, работает вэб-сервер Apache. Мы заходим на адрес http://192.168.2.17 с хоста с адресом 192.168.2.2 и всё отлично работает:
А теперь открываем командную строку под root на хосте 192.168.2.17 и пишем:
iptables -A INPUT -p tcp -s 192.168.2.2 --dport 80 -j DROP
Попробуем открыть открыть http://192.168.2.17 ещё раз:
Упс, не работает. Давайте теперь разбираться, что мы наделали?
Всё очень просто – данной командой мы:
вызвали утилиту iptables;
-A - этим ключом мы указали, что нужно добавить правило к существующей цепочке;
INPUT - указали цепочку, к которой хотим добавить правило;
-p tcp - явно указали протокол TCP. Здесь также можно указывать другие протоколы (udp, icmp, sctp), или номер протокола, инкапсулируемого в IP (17 – udp, 6 – tcp и др.);
-s 192.168.2.2 - указали, какой адрес источника должен быть у пакета, который мы хотим фильтровать;
--dport 80 - указали адресованные какому порту пакеты мы хотим фильтровать. В данном случае - 80, на котором работает наш сервер Apache.
-j DROP - указали что нужно сделать с пакетом, параметры которого совпали с данными критериями. В данном случае – просто тихо выбросить.
Таким образом, мы заблокировали все пакеты с адреса 192.168.2.2 на локальный порт 80 и тем самым закрыли доступ к нашему серверу Apache для данного хоста.
Обратите внимание – мы не указывали таблицу, в цепочки которой мы хотим добавить правило. Поэтому, по умолчанию таблица - filter. Для явного указания таблицы нужно перед указанием цепочки ввести ключ -t или (--table)
Чтобы открыть доступ опять просто поменяем ключ -A в правиле на -D, тем самым мы удалим данное правило из iptables.
Синтаксис iptables
Друзья, на самом деле в iptables очень богатый синтаксис правил. Полный список ключей и параметров вы можете найти в официальном гайде на iptables.org. Мы же приведём самые “ходовые” опции, которыми вы, вероятно, будете пользоваться. Чтобы вы не запутались, мы приводим их в табличках ниже.
Для удобства, в iptables реализовано очень много сокращений для разных ключей. Например, мы писали ключ -A вместо полного --append, -p вместо полного --proto и -s вместо полного --source, дальше мы покажем, что ещё можно сократить и где применить.
Начнём с команд для редактирования правил и цепочек – добавления, удаления, замены и так далее:
коротко
синтаксис правила
применение
-A
--append {цепочка правила}
добавить правило к цепочке (в самое начало)
-D
--delete {цепочка правила}
удалить правило из цепочки
-D
--delete {номер правила в цепочке}
удалить правило из цепочки по номеру (1 - x)
-I
--insert {номер правила вцепочке}
вставить правило в цепочку по номеру (1 - x)
-R
--replace {номер правила вцепочке}
заменить правило в цепочке по номеру (1 - x)
-X
--delete-chain {цепочка}
удалить цепочку (только для пользовательских)
-E
--rename-chain {старое имя цепочки} {новое имя цепочки}
переименовать цепочку
-N
--new {имя цепочки}
создание новой пользовательской цепочки
-C
--check {правило цепочки}
проверит наличие правила в цепочке
-F
--flush {цепочка}
удаляет все правила в цепочке, если цепочка не указана – удалятся все правила
-Z
--zero {цепочка} {номер правила вцепочке}
обнуляет все счётчики пакетов и байтов в цепочке или всех цепочках
-P
--policy {цепочка} {номер правила вцепочке}
изменяет политику по умолчанию, она должна основываться на встроенном target’e {ACCEPT, DROP, QUEUE}
Продолжим синтаксисом настройки правил – на каком сетевом интерфейсе следить за пакетами, какой протокол проверять, адрес источника, назначения и так далее.
Кстати, перед некоторыми параметрами можно ставить восклицательный знак - !, означающее логическое НЕ. В таблице мы пометим такие параметры таким значком – (!)
коротко
синтаксис опции
применение
-p
(!) --proto {протокол}
протокол {tcp, udp, udplite, icmp, esp, ah, sctp} или номер протокола {16,7}, all - все протоколы
-4
--ipv4
указывает версию протокола ipv4
-6
--ipv6
указывает версию протокола ipv6
-s
(!) --source {адрес/маска}
указывает ip адрес источника
-d
(!) --destination {адрес/маска}
указывает ip адрес назначения
-m
--match
включает дополнительные модули, явно задающимися данным ключем. например <code>m limit --limit 3/min</code> - установит лимит на количество пакетов в минуту
-f
(!) --fragment
включает обработку фрагментированных пакетов, в которых нет параметров изначального полного пакета, содержащихся в первом фрагменте пакета
-i
(!) --in-interface {имя интерфейса}
обрабатывает только входящие пакеты, прилетающие на сетевой интерфейс {имя интерфейса}
-o
(!) --out-interface {имя интерфейса}
обрабатывает только исходящие пакеты, прилетающие на сетевой интерфейс {имя интерфейса}
--set-counters {пакеты} {байты}
включает счётчик для ключей--insert, --append, --replace
Теперь рассмотрим опции для действий, которые должны сработать по совпадению критериев:
коротко
синтаксис опции
применение
-j
--jump {действие}
применяет одно из действий accept, drop, reject и другие
-g
--goto {цепочка}
переходит к другой цепочке правил
Теперь рассмотрим какую информацию мы можем вытянуть с помощью iptables и какие опции для этого нужно использовать:
коротко
синтаксис команды
применение
-l
--list {цепочка} {номер правила}
показывает правила в цепочке или всех цепочках. по умолчанию покажет таблицу filter
-s
--list-rules{цепочка} {номер правила}
показывает текст правила в цепочке или всех цепочках
-n
--numeric
покажет параметры правила в числовом виде. например не порт будет не http, а 80
-v
--verbose
выводит более подробную информацию
-v
--version
покажет версию iptables
-x
--exact
покажет точные значения числовых параметров
--line-numbers
покажет номера правил
Для быстрого получения информации о настроенных правилах и о метриках их срабатывания, часто применяется команда, комбинирующая 3 ключа - iptables -nLv. Например, для настроенного нами ранее правила – вывод будет такой:
Пример посложнее
Давайте рассмотрим ещё один пример. Допустим у нас во локальной сети есть хост 192.168.2.19 с сервером Apache. Мы хотим сделать его доступным из Интернета. Для этого нам нужно воспользоваться возможностями таблицы nat и написать правило, которое будет перенаправлять входящий http трафик на внешний интерфейс (пусть будет enp0s3 с адресом 101.12.13.14) и порт 80 на адрес нашего сервера внутри сети и 80 порт – 192.168.2.19:80. По сути – нужно сделать проброс портов.
Напишем такое правило:
iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to 192.168.2.19:80
Теперь если мы перейдём по адресу http://101.12.13.14, то должны попасть на наш Apache.
Возможности iptables настолько обширны, что мы могли бы начать писать новую Базу знаний по нему. В статье мы показали лишь базовые варианты применения. Это действительно великий инструмент и освоить его не так уж сложно. Надеюсь, данная статья Вам в этом поможет. Спасибо за внимание!
Дорогой друг! В поисках лучшего на рынке программного телефона (софтфона) мы продолжаем делать обзоры на различные продукты. Сегодня у нас на очереди программный телефона MizuPhone. Обзор возможностей, установка и настройка для IP – АТС Asterisk в статье.
Обзор
Из ключевых особенностей и удобств софтфона можно подчеркнуть следующие:
Автоматическая конфигурация сети, стабильное обнаружение аудио выходов и микрофона, простота в использовании
Приятный и «юзабельный» интерфейс, который не утяжелен лишними функциями
Высокое качество звука со встроенными функциями подавления акустического эха (acoustic echo cancellation – AEC), автоматической регулировкой уровня (Automatic gain control – AGC), алгоритмами восстановления потерянных VoIP – пакетов (Packet loss concealment - PLC), автоматической настройкой QoS и другими.
Стабильная работа c NAT/PAT
Шифрование, запись звонков, переадресация, перевод звонка и другие удобные «фичи»
Установка
Скачиваем .exe файл с официального сайта разработчика и запускаем его. Процесс инсталляции тривиален и не представляет никакой сложности:
В приветственном окне нажимаем Next
Соглашаемся с лицензионным соглашениям (сперва прочитав его) нажатием на чекбокс I accepted the agreement и нажимаем Next
Выбираем различные опции установки. По завершению выбора нажмите Next. Возможные опции:
Create a Desktop icon - cоздать значок на рабочем столе
Create a Quick Launch icon - создать значок для быстрого запуска
Create a Website shortcut - создать значок быстрого запуска сайта разработчика
Associate MizuPhone with callto: links - позволить ли MizuPhone совершать все вызовы, которые будут инициированы при нажатии на ссылки вида callto:НОМЕР
Auto launch when Windows starts - запускать ли софтфон при загрузке Windows
Launch MizuPhone - запустить ли софтфон по факту завершения установки
После этого запустится процесс установки.
Настройка
В случае, если на этапе инсталляции, вы выбрали опцию Launch MizuPhone, то по факту установки у вас откроется интерфейс настройки программного телефона. В ином случае, просто запустите его вручную:
Первое, что система предлагает нам сделать – настроить логин и пароль внутри самого софтфона, чтобы начать пользоваться телефоном.
Важно! В данном разделе происходит настройка учетной записи для безопасности. Не путайте с SIP – реквизитами, которые Вам выдал провайдер или вы настроили на IP – АТС – доступ к их настройке появится только после настройки первичной учетной записи
Указав реквизиты, мы попадаем к настройке софтфона В левом верхнем углу перейдите в раздел настройки File → Basic Settings → Accounts.Укажите реквизиты вашего SIP – профиля .В случае, если у вас создан внутренний номер на IP – АТС Asterisk, настройки будут такими:
Нажимаем Save. В случае, если все SIP – реквизиты были указаны правильно, вы увидите статус регистрации в нижнем левом углу. В нашем случае - SIP Register OK
