Практика
Пожалуйста, выполните следующую команду:
Ifconfig
Перед тем, как приступить к созданию нового набора правил, вы можете вычищать все правила по умолчанию, а также существующие правила. Используйте IPtables флеш команды, как показано ниже, чтобы сделать это.
Iptables -F (или) Iptables --flush
Политика цепи по умолчанию ACCEPT. Измените это DROP для всех входных, FORWARD и OUTPUT цепочки, как показано ниже.
Iptables -P INPUT , DROP IPTables -P FORWARD DROP IPTables -P OUTPUT DROP
Когда вы сделаете оба сигнал, и политику по умолчанию OUTPUT цепной в качестве DROP, для каждого брандмауэра требования правил у вас есть, вы должны определить два правила. т.е. один для входящих и один для исходящих.
Во всех наших примерах ниже, у нас есть два правила для каждого сценария, так как мы установили DROP в качестве политики по умолчанию для входа и выхода цепи.
Если вы доверяете своим внутренним пользователям, вы можете опустить последнюю строку выше. т.е. не DROP всех исходящих пакетов по умолчанию. В этом случае для каждого брандмауэра требования правил у вас есть, вы просто должны определить только одно правило. т.е. определить правило только для входящих, исходящих, как это ACCEPT для всех пакетов.
Прежде чем мы продолжим будут другие примеры, если вы хотите заблокировать определенный IP-адрес, вы должны сделать это первым, как показано ниже. Изменение «XXXX» в следующем примере к конкретному IP-адресу, который вы хотите заблокировать.
BLOCK_THIS_IP = "XXXX" Iptables -A INPUT -s "$ BLOCK_THIS_IP" -j DROP
Это полезно, когда вы нашли какие-то странные действия с определенного IP-адреса в файлах журналов, и вы хотите временно заблокировать этот IP-адрес, в то время как вы делаете дальнейшие исследования.
Кроме того, можно использовать один из следующих вариантов, который блокирует только TCP трафик на eth0 соединения для этого IP-адреса.
Iptables - A ВХОДНОЙ -i eth0 -s "$ BLOCK_THIS_IP" -j DROP Iptables -A ВХОДА -i eth0 -p TCP -s "$ BLOCK_THIS_IP" -j DROP
Следующие правила разрешают все входящие соединения SSH на интерфейсе eth0.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 22 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 22 -м состояние --state ESTABLISHED -j ACCEPT
Следующие правила разрешают входящий SSH соединение только от сети 192.168.100.X.
Iptables - A ВХОДНОЙ -i eth0 -p TCP -s 192.168.100.0/24 --dport 22 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 22 -м состояние --state ESTABLISHED -j ACCEPT
В приведенном выше примере, вместо / 24, вы можете также использовать полную маску подсети. т.е. «192.168.100.0/255.255.255.0".
Следующие правила разрешают все входящие веб-трафик. т.е. HTTP трафик на порт 80.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 80 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 80 -м состояние --state ESTABLISHED -j ACCEPT
Следующие правила разрешают все входящие безопасный веб-трафика. т.е. HTTPS трафик на порт 443.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 443 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 443 -m состояние --state ESTABLISHED -j ACCEPT
Когда вы разрешаете входящие соединения от внешнего мира к нескольким портам, вместо того, чтобы писать отдельные правила для каждого порта, вы можете объединить их вместе с расширением мультипортового, как показано ниже.
Следующий пример разрешает все входящие SSH, HTTP и HTTPS-трафик.
Iptables - A ВХОДНОЙ -i eth0 -p TCP -m мультипортовый --dports 22,80,443 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP -m мультипортовый --sports 22,80,443 -m состояние --state ESTABLISHED -j ACCEPT
Следующие правила позволяют подключать исходящие SSH. то есть когда вы SSH изнутри внешнего сервера.
Iptables -A OUTPUT -o eth0 -p TCP --dport 22 -m состояния --state NEW, ESTABLISHED -j ACCEPT IPtables -A ВХОД -i eth0 -p TCP --sport 22 -й состояния --state ESTABLISHED -j ACCEPT
Пожалуйста, обратите внимание, что это немного отличается от входящего правила. т.е. мы позволяем как новые и ESTABLISHED состояния на выходной цепи, и только ESTABLISHED состояние сигнала на входе цепи. Для входящего правило, это наоборот.
Следующие правила позволяют исходящее соединение SSH только для конкретной сети. то есть вам SSH только 192.168.100.0/24 сети с внутренней стороны.
Iptables -A OUTPUT -o eth0 -p TCP -d 192.168.100.0/24 --dport 22 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A ВХОД -i eth0 -p TCP --sport 22 -m состояния --state ESTABLISHED -j ACCEPT
Следующие правила позволяют исходящий безопасный веб-трафик. Это полезно, если вы хотите, чтобы интернет-трафик для пользователей. На серверах, эти правила также полезно, если вы хотите использовать Wget для загрузки некоторых файлов из-за пределов.
Iptables -A OUTPUT -o eth0 -p TCP --dport 443 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A ВХОДА -i eth0 -p TCP --sport 443 -m состояние --state ESTABLISHED -j ACCEPT
Примечание: Для исходящего HTTP веб-трафика, добавьте две дополнительные правила, как указано выше, и изменить 443 на 80.
Вы также можете загрузить баланс вашего входящего интернет-трафика с помощью правил брандмауэра Iptables.
При этом используется IPtables п-й расширение. В следующем примере нагрузка уравновешивает трафик HTTPS на три различные IP-адрес. Для каждого пакета 3-й, это балансировкой нагрузки на соответствующий сервер (с помощью счетчика 0).
IPTables -A PREROUTING -i eth0 -p TCP --dport 443 -m состояние --state NEW -m п - й --counter 0 --every 3 --packet 0 -j DNAT --to-назначения 192.168.1.101:443 Iptables -A PREROUTING -i eth0 -p TCP --dport 443 -m состояние --state NEW -m п - й --counter 0 --every 3 --packet 1 -j DNAT --to-назначения 192.168.1.102:443 Iptables - PREROUTING -i eth0 -p TCP --dport 443 -m состояние --state NEW -m п - й --counter 0 --every 3 --packet 2 -j DNAT --to-192.168.1.103:443 назначения
Следующие правила позволяют внешним пользователям иметь возможность пинговать сервера.
Iptables -A ВХОД -p ICMP --icmp типа эхо-запроса -j ACCEPT IPTables -A OUTPUT -p ICMP --icmp типа эхо-ответа -j ACCEPT
Следующие правила позволяют свистеть внутри любой из внешних серверов.
Iptables -A OUTPUT -p ICMP --icmp типа эхо-запрос -j ACCEPT IPTables -A ВХОД -p ICMP --icmp тип эхо-ответ -j ACCEPT
Вы должны обеспечить полный доступ кольцевой проверки на серверах. т.е. доступа с использованием 127.0.0.1
Iptables - A ВХОДНОЙ -i -j ACCEPT л Iptables -A OUTPUT -o л -j ACCEPT
На сервере брандмауэра, где одна сетевая карта подключена к внешнему, а другой сетевой карты, подключенной к внутренним серверам, используйте следующие правила для обеспечения внутренней сети поговорю с внешней сетью.
В этом примере, eth1 подключен к внешней сети (Интернет), и eth0 подключен к внутренней сети (например: 192.168.1.x).
Iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Следующие правила разрешают исходящие соединения DNS.
Iptables -A OUTPUT -p УДП -o eth0 --dport 53 -j ACCEPT IPtables -A ВХОДА -p -i eth0 УДП --sport 53 -j ACCEPT
Если вы работаете в NIS для управления учетными записями пользователей, вы должны разрешить соединения NIS. Даже если соединение SSH допускается, если вы не позволяете соответствующие NIS соединения ypbind, пользователи не смогут войти в систему.
Порты NIS являются динамическими. т.е. когда ypbind начинает он выделяет порты.
Во-первых сделать rpcinfo -p, как показано ниже, и получить номера портов. В этом примере, это использует порт 853 и 850.
rpcinfo -p | Grep ypbind
Теперь позвольте входящее подключение к порту 111, а также порты, которые использовались ypbind.
Iptables - A ВХОД -p TCP --dport 111 -j ACCEPT IPTables -A ВХОД -p УДП --dport 111 -j ACCEPT IPtables -A INPUT -p TCP --dport 853 -j ACCEPT IPtables -A ВХОД -p УДП - -dport 853 -j ACCEPT IPTables -A ВХОДА -p TCP --dport 850 -j ACCEPT IPTables -A ВХОД -p UDP --dport 850 -j ACCEPT
Выше не будет работать при перезагрузке ypbind, так как он будет иметь различные номера портов, что время.
Есть два решения этого: 1) Использовать статический IP-адрес для NIS, или 2) Используйте некоторые умные методы создания сценариев оболочки автоматически захватить динамический номер порта вывода команды «rpcinfo -p», и использовать их в выше Iptables правила.
Следующие правила позволяют Rsync только из определенной сети.
Iptables - A ВХОДНОЙ -i eth0 -p TCP -s 192.168.101.0/24 --dport 873 -m состояния --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 873 -m состояние --state ESTABLISHED -j ACCEPT
Если вы работаете в MySQL, как правило, вы не хотите, чтобы позволить прямое соединение снаружи. В большинстве случаев, вы можете иметь веб-сервер работает на том же сервере, где работает база данных MySQL.
Однако АБД и разработчики, возможно, необходимо войти непосредственно в MySQL от своего ноутбука и рабочего стола с помощью клиента MySQL. В этих случае, вы можете позволить вашей внутренней сети, чтобы поговорить с MySQL напрямую, как показано ниже.
Iptables - A ВХОДНОЙ -i eth0 -p TCP -s 192.168.100.0/24 --dport 3306 -m состояния --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 3306 -м состоянии --state ESTABLISHED -j ACCEPT
Следующие правила позволяют почтовый трафик. Это может быть Sendmail или постфикса.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 25 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 25 -м состояние --state ESTABLISHED -j ACCEPT
Следующие правила позволяют IMAP / IMAP2 трафика.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 143 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 143 -m состояние --state ESTABLISHED -j ACCEPT
Следующие правила позволяют IMAPS трафик.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport +993 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport +993 -m состояние --state ESTABLISHED -j ACCEPT
Следующие правила разрешают доступ по протоколу POP3.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 110 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 110 -m состояние --state ESTABLISHED -j ACCEPT
Следующие правила позволяют POP3S доступа.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 995 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 995 -m состояние --state ESTABLISHED -j ACCEPT
Правило следующие Iptables поможет вам предотвратить отказ в обслуживании (DoS) атаки на вашем веб-сервере.
Iptables-A ВХОД -p TCP --dport 80 -m предел --limit 25 / мин --limit-Burst 100 -j ACCEPT
В приведенном выше примере:
Следующий пример маршруты весь трафик, который приходит к порту 442 до 22. Это означает, что соединение входящего SSH может исходить от оба порта 22 и 422.
Iptables -t физ -A PREROUTING -p TCP -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22
Если вы выше, вы также должны явно разрешить входящие соединения на порт 422.
Iptables - A ВХОДНОЙ -i eth0 -p TCP --dport 422 -m состояние --state NEW, ESTABLISHED -j ACCEPT IPTables -A OUTPUT -o eth0 -p TCP --sport 422 -m состояние --state ESTABLISHED -j ACCEPT
Вы также можете регистрировать все сброшенные пакеты. Эти правила должны быть на дне.
Во-первых, создать новую цепь протоколирования.
Iptables -N РЕГИСТРАЦИИ
Далее, убедитесь, что все остальные входящие соединения перехода к LOGGING цепи, как показано ниже.
Iptables -A INPUT -j РЕГИСТРАЦИИ
Далее, бревенчатый эти пакеты, указав обычай «лог-префикс».
Iptables -a -m Logging предел --limit 2 / мин -j LOG --log-приставка "IPTables Пакет брошено:" --log-7-го уровня
И, наконец, отбросить эти пакеты.
Iptables -A лесозаготовительного -j DROP
Комментарии
Оставить комментарий
Компьютерные сети
Термины: Компьютерные сети