Iptables - мережевий екран (netfilter firewall)/Вступ

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук

Терміни, використані у цьому документі

Документ містить кілька термінів, які треба колись пояснити, тому що ви зіштовхнетеся із ними.

DNAT - від анг. Destination Network Address Translation -- Зміна Мережевої Адреси Отримувача. DNAT - це зміна адреси призначення у заголовці пакета. Найчастіше використовують у парі з SNAT. Основне застосування -- використання єдиної реальної IP-адреси кількома комп'ютерами для виходу до Інтернету та умов надання додаткових мережевих послуг зовнішнім клієнтам.

"Потік" (Stream) - під цим терміном мається на увазі з'єднання, крізь яке передаються і приймаються пакети. Я використав цей термін для позначення з'єднання, якими передається меншою мірою 2 пакета в обох напрямах. Що стосується TCP це означатиме з'єднання, крізь яке передається SYN пакет і далі приймається SYN/ACK пакет. Але це також може передбачати й передачу SYN пакета і прийом повідомлення ICMP Host unreachable. Інакше кажучи, використовую цей термін у досить широкому діапазоні застосувань.

SNAT - від анг. Source Network Address Translation -- Зміна Мережевого Адресу Відправника. SNAT - це й зміна вихідного адресу в заголовку пакета. Основне застосування -- використання єдиного реального IP-адресу кількома комп'ютерами для виходу до Інтернету. В теперішній час діапазон реальних IP-адрес, за стандартом IPv4, недостатньо широкий, та їх бракує усім (перехід на IPv6 дозволить позбутись цієї проблеми).

"Стан" (State) - під цим терміном мається на увазі стан, де знаходиться пакет, відповідно до RFC 793 - Transmission Control Protocol, і ті трактуванням, які є у netfilter/iptables. Хочу звернути вашу увагу на той факт, що визначення станів пакетів, як внутрішніх так зовнішніх станів, що використовуються Netfilter, в повному обсязі відповідають зазначеному вище в RFC 793.

"Простір користувача" (User space) - під цим терміном маю на увазі усе, що розміщено поза ядром, наприклад: команда iptables -h виконується поза ядром, тоді як команда iptables -A FORWARD -p tcp -j ACCEPT виконується (частково) у просторі ядра, оскільки вона додає нове правило до наявного набору.

"Простір ядра" (Kernel space) - більшою або меншою мірою є твердженням, зворотним терміну "Простір користувача". Підрозуміває місце виконання - в середені ядра.

"Userland" - див. "Простір користувача".


Вступ

netfilter/iptables - каркас для побудови потужних мережевих екранів в ОС Лінукс. Їх застосовують для:

  • Побудова мережевих фільтрів основаних, як на приналежності пакетів до конкретних сеансів зв'язку, так і без врахування такої приналежності.
  • Використання трансляції мережевих адрес (NAT) і (masquerading) для реалізації спільного доступу в Інтернет за відсутності достатнього числа реальних ІР адрес та для приховування внутрішньої структури мережі.
  • Використання NAT для реалізації прозорих проксі сервісів.
  • Дозволяє з допомогою програм tc, iproute2 будувати складний маршрутизатор з підтримкою якості сервісу (QoS) і політик.
  • Проводити різні маніпуляції з пакетами (mangling), такі як зміна бітів TOS/DSCP/ECN заголовків IP пакетів.
Особисті інструменти