iptables, порядок правил - я правильно це розумію?


17

Я хотів би налаштувати свій VPS таким чином, що він ТІЛЬКИ приймає з'єднання ззовні на порт 22 (де sshd слухає) та ICMP запити. Все інше ззовні слід відкинути. Всередині сервера все має бути дозволено. Чи наведені нижче правила створюють бажану поведінку?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

Я не зовсім впевнений, що правила ACCEPT "переможуть" над останньою загальною REJECT


1
Ви не повинні використовувати, --source 127.0.0.1щоб визначати, чи безпечно приймати пакет. Дивіться serverfault.com/a/825231/4131
Бруно Броноський

Відповіді:


20

Ви праві.

Правила будуть оброблені у порядку рядка файлу. Якщо є відповідність правилу, для цього IP-пакету у вашому випадку інші правила не обробляються.

http://en.wikipedia.org/wiki/Iptables

Кожне правило ланцюга містить специфікацію, яким пакетам воно відповідає. Він також може містити ціль (використовується для розширення) або вирок (одне із вбудованих рішень). Як пакет передає ланцюг, кожне правило по черзі вивчається. Якщо правило не відповідає пакету, пакет передається наступному правилу. Якщо правило відповідає пакету, правило вживає дій, зазначених цільовим / вердиктом, що може призвести до того, що пакету буде дозволено продовжувати рух по ланцюгу, або він не може

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.