Чтение онлайн

на главную

Жанры

Внутреннее устройство Linux
Шрифт:

Вы можете применить большую часть сведений из этой книги, чтобы исследовать внутренние части специализированной прошивки Linux, хотя вам и встретятся отличия, в особенности при входе в систему. Как и во многих внедренных си­стемах, прошивки с открытым кодом стремятся использовать утилиты BusyBox, чтобы предоставить большинство функций оболочки. Утилиты BusyBox являются единым исполняемым приложением, которое предлагает ограниченную функциональность для многих команд Unix, таких как shell, ls, grep, cat и more. Так экономится существенный объем памяти. Кроме того, команда init для загрузки системы оказывается очень простой во внедренных системах. Тем не менее подобные ограничения не создадут проблем для вас,

так как пользовательские прошивки Linux обычно содержат веб-интерфейс для администрирования, который напоминает интерфейс, предлагаемый производителем.

9.21. Брандмауэры

Маршрутизаторы должны всегда содержать какой-либо брандмауэр для запрещения нежелательного трафика в сети. Брандмауэр — это программное обеспечение и/или конфигурация аппаратных средств, которые обычно размещаются в маршрутизаторе между Интернетом и малой сетью, пытаясь не допустить того, чтобы что-либо «плохое» навредило малой сети. Можно также настроить функции брандмауэра для каждого компьютера, и тогда компьютер станет фильтровать все входящие и выходящие данные на уровне пакетов (в противоположность прикладному уровню, на котором серверные программы обычно пытаются самостоятельно обеспечить некоторый контроль доступа). Использование брандмауэра на отдельных компьютерах иногда называется IP-фильтрацией.

Система может фильтровать пакеты, когда она:

• получает пакет;

• отправляет пакет;

• перенаправляет пакет другому хосту или шлюзу.

Если брандмауэра нет, система просто обрабатывает пакеты и отправляет их по назначению. Брандмауэры помещают проверочные пункты для пакетов в указанных выше точках передачи данных. На этих проверочных пунктах пакеты удаляются, отклоняются или принимаются, как правило, на основе таких критериев:

• IP-адрес или подсеть источника или пункта назначения;

• порт источника или пункта назначения (в сведениях транспортного уровня);

• сетевой интерфейс брандмауэра.

Брандмауэры обеспечивают возможность работы с подсистемой ядра Linux, которая обрабатывает IP-пакеты. Рассмотрим ее сейчас.

9.21.1. Брандмауэр в Linux: основные понятия

В Linux правила для брандмауэра создаются в виде последовательности, известной как цепочка. Набор цепочек формирует таблицу. Когда пакет проходит через различные части сетевой подсистемы Linux, ядро применяет правила из определенных цепочек к пакетам. Например, после получения нового пакета от физического уровня ядро активизирует правила в цепочках, соответствующих вводу.

Все эти структуры данных обслуживаются ядром. Такая система в целом называется таблицами iptables, а команда из пространства пользователя iptables создает правила и управляет ими.

ПРИМЕЧАНИЕ

Есть также более современная система, nftables, которая призвана заменить таблицы iptables. Однако на момент написания книги таблицы iptables являются преобладающими для брандмауэ­ров.

Поскольку таблиц может быть несколько — каждая со своим набором цепочек, содержащих множество правил, — то перемещение пакетов становится довольно сложным. Тем не менее обычно работают с единственной таблицей, которая называется «фильтр» и контролирует основной поток пакетов. В таблице фильтра есть три главные цепочки: INPUT для входящих пакетов, OUTPUT для исходящих пакетов и FORWARD для перенаправляемых пакетов.

На рис. 9.5 и 9.6 приведены упрощенные схемы того, где к пакетам применяются правила из таблицы фильтра. Схем две, поскольку пакеты

могут либо поступать в систему из сетевого интерфейса (см. рис. 9.5), либо генерироваться локальным процессом (см. рис. 9.6). Как видите, входящий пакет из сети может быть поглощен пользовательским процессом и не достичь цепочки FORWARD или OUTPUT. Пакеты, создаваемые пользовательскими процессами, не достигают цепочек INPUT или FORWARD.

В действительности все сложнее, поскольку есть и другие этапы, помимо этих трех цепочек. Например, пакеты проходят обработку в цепочках PREROUTING и POSTROUTING, а сама обработка может происходить на любом из трех нижних сетевых уровней. Чтобы увидеть полную схему, поищите в онлайн-источниках что-либо под названием «Поток пакетов в сетевом фильтре Linux», но имейте в виду, что подобные схемы пытаются учесть все возможные сценарии поступления и перемещения пакетов. Часто может помочь разбиение схем на основе источников пакетов, как на рис. 9.5 и 9.6.

Рис. 9.5. Последовательность обработки цепочек для входящих пакетов сети

Рис. 9.6. Последовательность обработки цепочек для входящих пакетов от локального процесса

9.21.2. Определение правил для брандмауэра

Посмотрим, как работает на практике система IP-таблиц. Начнем с просмотра текущей конфигурации, использовав команду:

# iptables -L

Вывод обычно представляет собой пустой набор цепочек:

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

У каждой цепочки брандмауэра есть политика по умолчанию, которая определяет, что делать с пакетом, если он не удовлетворяет ни одному из правил. Для всех трех цепочек в данном примере установлена политика ACCEPT. Это означает, что ядро разрешает пакету пройти через систему фильтрации. Политика DROP говорит ядру о том, что пакет надо отбросить. Чтобы указать политику цепочки, используйте команду iptables -P, например, так:

# iptables -P FORWARD DROP

внимание

Не торопитесь с изменением политик на своем компьютере, пока не дочитаете данный раздел до конца.

Допустим, кто-либо с IP-адресом 192.168.34.63 надоедает вам. Чтобы избавиться от его запросов к вашему компьютеру, запустите следующую команду:

# iptables -A INPUT -s 192.168.34.63 -j DROP

Здесь параметр -A INPUT присоединяет правило к цепочке INPUT. Фрагмент –s 192.168.34.63 указывает IP-адрес источника в этом правиле, а часть -j DROP говорит ядру о том, чтобы оно отбрасывало любые пакеты, удовлетворяющие этому правилу. Следовательно, ваш компьютер будет отвергать любые пакеты, приходящие с адреса 192.168.34.63.

Чтобы увидеть это правило на своем месте, запустите команду iptables -L:

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP all — 192.168.34.63 anywhere

Но вот беда: ваш приятель с адресом 192.168.34.63 сообщил всем в своей подсети, чтобы к вашему компьютеру подключались через порт SMTP (TCP-порт 25). Чтобы избавиться также и от этого трафика, запустите такую команду:

# iptables -A INPUT -s 192.168.34.0/24 -p tcp —destination-port 25 -j DROP

Поделиться:
Популярные книги

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

Совпадений нет

Безрукова Елена
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Совпадений нет

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Авиатор: назад в СССР 14

Дорин Михаил
14. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Авиатор: назад в СССР 14

Последний Паладин. Том 4

Саваровский Роман
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 4

Не грози Дубровскому!

Панарин Антон
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому!

Кодекс Охотника. Книга XXIV

Винокуров Юрий
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV

Средневековая история. Тетралогия

Гончарова Галина Дмитриевна
Средневековая история
Фантастика:
фэнтези
попаданцы
9.16
рейтинг книги
Средневековая история. Тетралогия