Я использую человечность 18.04 и успешно устанавливаю nginx и uwsgi для хостинга нескольких веб-сайтов.
Мне отобразили запись AAAA на адрес IPv6 через моего поставщика DNS, и у меня есть свой nginx файл конфигурации, слушающий на портах 80 и 443 для того адреса IPv6.
Эта установка работает просто великолепно.
Однако я хотел бы ограничить трафик IPv6 портами 80 и 443 к ТОЛЬКО нескольким определенным IP-адресам.
Когда я перечисляю текущие правила ip6table с помощью ip6tables-S, существует строка к нижней части как это.
-A ufw6-user-input -p tcp -m multiport --dports 80,443 -m comment --comment "\'dapp_Nginx%20Full\'" -j ACCEPT
Я плохо знаком с iptables в целом, но от всего чтения и учебных руководств я сделал его, походит:
Мой вопрос - то, какие правила мне придется достигнуть установленной цели выше, и в том, какой порядок, и это будет только относиться к ipv6 трафику в 80/443 портах?
foo@example:~# sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp (Nginx Full) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
Вы уже используете ufw
. Так что установите правила с ufw
.
Для IPv4 Allow In для 80,443, попробуйте:
ufw allow proto tcp from 0.0.0.0/0 to port 80,443
Для IPv6 нам нужно использовать еще несколько правил:
ufw allow proto tcp from IPV6ADDRESS/128 to port 80,443
# Do the above more than once for more than one IPv6 address
ufw deny proto tcp from ::0/0 to port 80,443
На основе man-страницы для ufw
, это позволит достичь того, что вы хотите - разрешить IPv4 для TCP-портов 80 и 443, разрешить IPV6ADDRESS
для TCP-портов 80 и 443 и запретить всем остальным IPv6-адресам достигать TCP-портов 80 и 443.
Обратите внимание, что вы не можете получить доступ к адресам IPv6 без возможности подключения по протоколу IPv6, поэтому, если у вас нет доступа к IPv6 в рассматриваемых полях (это IPv4), вы не сможете легко получить доступ к адресу v6.
Обратите внимание, что мы в конечном итоге декомплексировали эту проблему XY с помощью чата и сузили их цели по управлению доступом к определенному веб-сайту / поддомену, и, поскольку они использовали NGINX в качестве бэкэнда, я предоставил им подробности о том, как реализовать контроль доступа для сайта.