Некоторое время назад у меня было несколько проблем с моей сетевой картой, и мне пришлось полностью сбросить конфигурацию сети (мне пришлось переписать и перезагрузить новый файл netplan.yaml, который использует Network Manager)
Побочным эффектом этого (я думаю, это могло быть вызвано другим исправлением, которое я пробовал) является то, что я больше не мог получить доступ к Интернету. Решение, представленное в Как полностью сбросить сетевые настройки Ubuntu? состоит в том, чтобы сбросить правила iptables, что действительно работает, но является «временным исправлением», как и у меня, как и у пользователя joe_inz в исходной ветке, делать это при каждом запуске (что не удобно).
Вот вывод sudo iptables -L
при каждой загрузке:
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
Как видите, он в основном блокирует все
Покопавшись немного и поняв, что такое iptables (и, следовательно, также понимание того, что вообще не иметь правил — не лучшая идея), я взял «начальный» набор правил, представленный здесь https://doc.ubuntu-fr.org/iptables , установил iptables -persistent и сохранил их в /etc/iptables/rules.v4
Вот как выглядят правила после первого импорта (и как они должны выглядеть):
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere PKTTYPE = multicast
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,PSH,URG/FIN,PSH,URG
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:SYN,RST/SYN,RST
DROP all -- anywhere anywhere PKTTYPE = broadcast
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
LOG all -- anywhere anywhere LOG level warning
Chain FORWARD (policy DROP)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ! ctstate INVALID
Однако после перезагрузки у меня, как и прежде, не было доступа к интернету, поэтому я перепроверил правила, и они выглядели так:
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere PKTTYPE = multicast
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,PSH,URG/FIN,PSH,URG
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP tcp -- anywhere anywhere ctstate INVALID tcp flags:SYN,RST/SYN,RST
DROP all -- anywhere anywhere PKTTYPE = broadcast
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
LOG all -- anywhere anywhere LOG level warning
Chain FORWARD (policy DROP)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ! ctstate INVALID
Без всякой видимой причины были снова правила, которые отбрасывали каждый отдельный пакет
iptables-restore
по крайней мере восстанавливает набор правил, которые я взял в сети , что намного лучше, чем ничего (так что я буду использовать это вместо полной очистки, как я делал раньше), но кто-нибудь знает, почему мой ноутбук сбрасывает все по умолчанию и как это исправить?
PS: Также, если у вас есть какие-либо советы о том, как я могу настроить этот набор правил, это будет очень приветствоваться, поскольку наличие надежного брандмауэра не является незначительным.
PPS: у меня Ubuntu 20.04, если это имеет значение