iptables разрешает только определенные IP-адреса с определенного порта

Я всегда нервничаю при редактировании iptables, так как знаю, как просто блокировать весь трафик на сервер, довольно большая проблема, когда ваш сервер находится в облаке.

Это будет правильная серия команд?

iptables -A INPUT -p tcp --dport 123 -s 1.2.3.4 -j ACCEPT 
iptables -A INPUT -p tcp --dport 123 -s 5.6.7.8 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -j DROP
iptables-save

3 ответа

Это не отвечает на ваш вопрос - другие хорошо справляются с этим - но это решает и другую вашу проблему: блокирование себя от удаленного сервера. Всякий раз, когда я делаю большой iptables изменить в системе, я всегда проверяю, что atd работает, затем положить at работа в течение 10 минут в будущем, чтобы отключить брандмауэр, что-то вроде

at now + 10 minutes
at> service iptables stop
at> ^D

Таким образом, я знаю, что если я действительно запутаюсь и запрусь, через десять минут я смогу вернуться и исправить вещи. Если я закончу свою работу, и я не испортился, я смогу найти эту работу с atq и удалите его с atrm еще до того, как он запустится

Это должно работать, но это может быть улучшено. Вы не опубликовали, какая у вас политика INPUT по умолчанию. Если это ПРИНЯТЬ, то ваши команды должны работать, хотя и не самая рекомендуемая. Если это DROP, то линия вам не нужна iptables-save,

Наиболее рекомендуемая политика для iptables, как и для любого другого брандмауэра, - УБРАТЬ ВСЕ, а затем явно разрешать порты / протоколы, которые вы хотите разрешить. Итак, вы начинаете с этого -

iptables -A INPUT -j DROP

Затем вы явно разрешаете входящий трафик, предназначенный для порта 123/tcp.

iptables -A INPUT -p tcp --dport 123 -s 1.2.3.4 -j ПРИНЯТЬ

iptables -A INPUT -p tcp --dport 123 -s 5.6.7.8 -j ПРИНЯТЬ

В пакете Debian iptables есть '/usr/sbin/iptables-apply', который спрашивает вас, все ли в порядке после внесения изменений, если вы не отвечаете на вопрос, тогда изменения отменяются.

Другие вопросы по тегам