Посилання на офіційну та рекомендовану документацію існують на веб-сайті Netfilter.
Це не нова тема, ресурси безмежні .
Більшість основних команд досить інтуїтивно і легко може бути посилання на сторінки керівництва .
netfilter - це технологія рівня ядра, яка дозволяє фільтрувати пакет, досить розвинена. Є додаткові таблиці, які можуть обробляти пакети, перекладати пакети та іншим чином впливати на маршрутизацію. iptables
Утиліта є інструментом для програми користувачів , що взаємодіють з Netfilter. Якщо ви хочете дізнатися про розширені функціональні можливості, пропоную вам посилатися на вищезгадану документацію. Для ознайомлення з базовою функціональністю, будь ласка, читайте далі.
Щоб перелічити всі існуючі правила:
iptables -L -n
-n
не дозволяє iptables розв’язувати ips, що забезпечує швидший вихід.
Таблиця за замовчуванням - це filter
таблиця, яка використовується для застосування основних правил брандмауера до трьох ланцюгів. Три стандартні ланцюга в filter
таблиці INPUT
, OUTPUT
і FORWARD
.
Ланцюги багато в чому пояснюють себе. Ланцюг INPUT впливає на пакети, що надходять, ланцюг OUTPUT впливає на локально генеровані пакети і, нарешті, Вперед, для будь-яких пакетів, які проходять через систему.
Серед цілей, які ви можете вказати, ви можете DROP
пакетів, тобто просто ігнорувати та не відповідати. Ви можете REJECT
пакетів, де відповідь icmp буде надіслана до джерела відмови. Нарешті, ви можете ACCEPT
їх, що дозволяє пакетам продовжувати маршрутизацію.
Часто для зовнішнього брандмауера вибір за замовчуванням буде DROP
протилежним REJECT
, оскільки це зменшує видимий слід вашої мережі в Інтернеті. Наприклад, IP-адреса, яка в іншому випадку обмежує послуги певним хостом, мала б менше видимості DROP
.
Зауважте, -A
означає додавати до кінця ланцюга. Якщо ви хочете вставити вгорі, ви можете використовувати -I
. Усі правила обробляються зверху вниз. -D
для видалення.
До DROP
вхідного пакету, що надходить від 192.168.235.235
:
iptables -A INPUT -s 192.168.235.235 -j DROP
Це переходить до DROP
цілі для всіх протоколів, що надходять з цього IP.
Прийняти:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Щоб запобігти доступу до цього IP з вашого локального сервера або мережі:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Ви можете вказати -p
протокол, -s
джерело пакету, -d
призначення пакету, порт призначення, порт --dport
джерела --sport
та багато інших прапорів, які впливатимуть на те, як пакети обробляються правилом.
Якщо ваша INPUT
політика за замовчуванням була, DROP
і ви хотіли дозволити всім 192.168.123.0/24
підмережам отримати доступ до SSH на вашому сервері, ось такий приклад:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Правильно, ви також можете використовувати позначення CIDR !
Взагалі найкраща політика за замовчуванням - це DROP
для всіх ланцюгів. Кожен ланцюг має політику за замовчуванням, яка вказана -P
прапором. Навіть якщо у вас політика встановлена за замовчуванням DROP
, все одно рекомендується, щоб остаточний запис у ланцюжку DROP
також був.
Наприклад, щоб змінити політику на DROP
ланцюги INPUT, FORWARD та OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Будьте уважні , якщо ви визначите політику DROP за умовчанням для INPUT на віддаленій системі, не попередньо дозволяючи собі доступ до SSH, ви можете не допустити доступу до системи. Якщо у віддаленій системі, ви можете вказати тимчасовий crontab, щоб виконувати всі правила кожні 5 хвилин як помилку.
Щоб видалити всі правила та дозволити весь трафік:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Зауважте, -X
видаляє всі створені ланцюги. -F
змиває всі правила.
Існують рідні інструменти для збереження та відновлення правил. Зокрема, iptables-save
і iptables-restore
. Більшість сучасних дистрибутивів Linux мають save
та restore
функціонують у файлі iptables init, наданому системі.
Існують і інші найкращі практики брандмауера, такі як викидання неправильно сформованих пакетів та інший тип небажаного трафіку. Це одна з переваг використання передньої утиліти, такої як Shorewall , оскільки вона буде реалізовувати багато з цих правил за замовчуванням. Тим не менш, я погоджуюся з вашим підходом і вважаю за краще дотримуватись власних правил безпосередньо, і ці самі найкращі практики можуть бути реалізовані без передового досвіду.