2017-02-23 45 views
-2

У меня есть служба, которая слушает трафик клиентов на портах 80 и 443 eth1. Серверы, на которых размещен мой сервис, также содержат другие файлы с правами администратора/привилегированного доступа на eth0 и localhostПравила IPTable для ограничения доступа eth1 к портам 80 и 443

Я пытаюсь настроить правила iptable для блокировки eth1 на серверах, которые находятся в той же сети, что и клиенты (блокируйте такие вещи, как ssh через eth1/accessing внутренние службы, запущенные на порту 9904 и т. д.). Я также хочу убедиться, что правила не запрещают регулярный доступ к eth1: 80 и eth1: 443. Я придумал ниже правила, но хотел бы ознакомиться с iptable гуру по возможным вопросам с этим правилом.

-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -i eth1 -j DROP 
  • ли правила выше хватает
  • Как выше, отличаются от правил, найденных при прибегая к помощи
-P INPUT ACCEPT 
-P FORWARD ACCEPT 
-P OUTPUT ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP 
-A INPUT -i eth1 -p tcp -j ACCEPT 
-A INPUT -i eth1 -j DROP 
+0

Stackoverflow предназначен для программирования вопросов. Вы найдете iptable гуру на serverfault.com – Prabhu

+0

спасибо, я получил это ответил в http://serverfault.com/questions/834534/iptable-rules-to-restrict-eth1-access-to-ports-80-and-443 для люди, у которых может быть один и тот же вопрос – dejavu013

ответ

0

спасибо я получил этот ответ в https://serverfault.com/questions/834534/iptable-rules-to-restrict-eth1-access-to-ports-80-and-443, добавив его здесь для полноты

Первый набор правил сначала разрешает все входящие пакеты на ваших портах 80 и 443. Затем он удаляет ВСЕ другие входящие пакеты (кроме тех, которые уже приняты ).

Второй набор правил первого разрешить все входящие пакеты на порты 80 и 443. Затем он падает входящие соединения (за исключением 80 и 443, которые уже приняты), которые являются только пакеты с установленным флагом SYN. Затем он позволяет все входящие пакеты.

Разница в том, что происходит с вашими соединениями OUTGOING. В первом наборе правил, если вы попытаетесь подключиться к другому серверу, любые пакеты , отправленные сервером в ответ, будут отброшены, поэтому вы должны будете никогда не получать никаких данных. Во втором случае эти пакеты будут иметь значение , так как первый пакет с удаленного сервера будет иметь как SYN, так и ACK, и, следовательно, передать тест SYN, и любые последующие пакеты не будут иметь SYN, тест.

Это традиционно делается с помощью трассировщику, который требует ядра для отслеживания каждого соединения в брандмауэре, с команды, как

-A ВХОДОМ -m трассировщик --ctstate ESTABLISHED, RELATED -j ACCEPT

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