Я хотел бы настроить мой 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
Я не совсем уверен, будут ли правила ПРИНЯТЬ «побеждать» над последним ОТКЛОНЕННЫМ
Вы правы.
Правила будут обрабатываться в порядке строк файла. Если есть совпадение для правила, никакие другие правила не будут обрабатываться для этого IP-пакета в вашем случае.
http://en.wikipedia.org/wiki/Iptables
Каждое правило в цепочке содержит спецификацию пакетов, которым оно соответствует. Он также может содержать цель (используется для расширений) или вердикт (одно из встроенных решений). Когда пакет проходит цепочку, каждое правило в свою очередь проверяется. Если правило не соответствует пакету, пакет передается следующему правилу. Если правило соответствует пакету, правило выполняет действие, указанное целью / вердиктом, что может привести к тому, что пакету будет разрешено продолжить работу по цепочке, или может не соответствовать