iptables дуже низький рівень, і коли ви пишете правила iptables, ви маєте справу з сирими IP-пакетами. Це має ряд наслідків, один з яких ви знайшли.
Існують цілком допустимі випадки використання, коли вихідний трафік повинен бути дозволений, але будь-який відповідний вхідний трафік не повинен проходити через брандмауер; або навпаки, вхідний трафік дозволений, але вихідний не дозволений. Одним з поширених прикладів для цього є сервери зберігання журналів (які, в свою чергу, часто корисні для аудиту): трафік журналу повинен бути дозволений в , але жоден не повинен бути дозволений з . У крайньому випадку дозволений трафік журналу в , але більш нічого має бути дозволено або вхід, або вихід .
За допомогою iptables не роблячи ніяких припущень про те, що ви хочете, ви не тільки підвищуєте безпеку, але й продуктивність, тому що набір правил може бути оптимізований саме для того, що ви хочете брандмауер насправді робити.
Якщо ви бажаєте дозволити вхідний трафік, пов'язаний з вже встановленим з'єднанням або сеансом, просто скажіть йому так:
sudo iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
або для IPv6:
sudo ip6tables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Налаштуйте -I INPUT 1
частину за необхідністю (наприклад, якщо у вас є інші правила, які повинні мати перевагу над загальним правилом дозволу трафіку, що стосується встановленого з'єднання або сеансу).