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

Я не совсем уверен, будут ли правила ПРИНЯТЬ «побеждать» над последним ОТКЛОНЕННЫМ

Xpector
источник
1
Вы не должны использовать, --source 127.0.0.1чтобы определить, безопасно ли принять пакет. См. Serverfault.com/a/825231/4131
Бруно Броноски

Ответы:

20

Ты прав.

Правила будут обрабатываться в порядке строки файла. Если есть совпадение для правила, никакие другие правила не будут обрабатываться для этого IP-пакета в вашем случае.

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

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

NGRhodes
источник