LINUX.ORG.RU
решено ФорумAdmin

Разрешить ping и apt update с сервера через nftables

 


0

1

Доброго всем времени суток!

На борту debian buster + nftables. По умолчанию в debian политика accept на всё, решил попараноить немного. Разрешил пинг до сервера и ssh на него, и оное работает как часы. Набор правил:

table ip IPv4 { # handle 2
	chain INCOMING { # handle 1
		type filter hook input priority 0; policy drop;
		iif "lo" accept # handle 5
		tcp dport ssh accept # handle 6
		icmp type echo-request accept # handle 7
	}

	chain FORWARDING { # handle 2
		type filter hook forward priority 0; policy drop;
	}

	chain OUTGOING { # handle 3
		type filter hook output priority 0; policy accept;
	}
}
table ip6 IPv6 { # handle 3
	chain INCOMING { # handle 1
		type filter hook input priority 0; policy drop;
	}

	chain FORWARDING { # handle 2
		type filter hook forward priority 0; policy drop;
	}

	chain OUTGOING { # handle 3
		type filter hook output priority 0; policy accept;
	}
}

… Но, как оказалось, не всё как часы работает. С сервера не могу ничего пропинговать, а также не могу пакеты установить/обновить.
Может, туплю с утреца.

Может, туплю с утреца.

Сделать nft list table ... и проверить какие правила на самом деле работают.

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

А какая разница?

Ну выведу я отдельно правила для таблицы IPv4:

table ip IPv4 { # handle 2
	chain INCOMING { # handle 1
		type filter hook input priority 0; policy drop;
		iif "lo" accept # handle 5
		tcp dport ssh accept # handle 6
		icmp type echo-request accept # handle 7
		tcp dport { http, https } accept # handle 8
	}

	chain FORWARDING { # handle 2
		type filter hook forward priority 0; policy drop;
	}

	chain OUTGOING { # handle 3
		type filter hook output priority 0; policy accept;
	}
}

Или выведу отдельно для цепочки ip IPv4 INCOMING:

table ip IPv4 {
	chain INCOMING { # handle 1
		type filter hook input priority 0; policy drop;
		iif "lo" accept # handle 5
		tcp dport ssh accept # handle 6
		icmp type echo-request accept # handle 7
		tcp dport { http, https } accept # handle 8
	}
}

Вы же все потом на меня гнать будете, что не дал список полный из всех правил всех таблиц. )

speed_vm
() автор топика
Ответ на: комментарий от SkyMaverick

ТОЧНЯК-ВЕРНЯК, братуха!
Осталось, туды его в качель, починить установку/обновление пакетов.

speed_vm
() автор топика
Ответ на: комментарий от SkyMaverick
icmp type { echo-reply, echo-request } accept # handle 7

Так в итоге нужно было для пингов.

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

А какая разница?

Такая, чтобы не гадать и быть уверенным, что реальные правила соответствуют конфигу.

А почему нет:

ct state established,related accept
vvn_black ★★★★★
()
Ответ на: комментарий от speed_vm

Так это не из конфига выдержки я постил, а вывод реальных команд.

THUMBS UP

vvn_black ★★★★★
()
Ответ на: комментарий от Valar

Ну, думаю, что ты тоже в курсе, что # handle .. - это не комментарий, а номер правила, который водится если добавить к nft list … -a. ;)

speed_vm
() автор топика
Ответ на: комментарий от Valar

Ты серьёзно?

$ sudo nft list chain ip IPv4 INCOMING -a
table ip IPv4 {
	chain INCOMING { # handle 1
		type filter hook input priority 0; policy drop;
		iif "lo" accept # handle 5
		tcp dport ssh accept # handle 6
		icmp type echo-request accept # handle 7
		ct state established,related accept # handle 9
	}
}

Выдержка из мана - это конечно круто, но я тоже как бы не пальцем сделан.

speed_vm
() автор топика
Последнее исправление: speed_vm (всего исправлений: 1)
Ответ на: комментарий от Valar
$ cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Может захочешь проверить.

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

С этой фиговиной действительно echo-reply не нужен…

А, где благодарность и раскаяние в том, что не читаешь wiki.nftables.org

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

А-а-а, каюсь-каюсь, стыдно-стыдно! Выражаю огромную благодарность всем присутствующим за помощь!

Итоговый набор правил без номеров (специально для Valar):

table ip IPv4 {
	chain INCOMING {
		type filter hook input priority 0; policy drop;
		iif "lo" accept
		tcp dport ssh accept
		icmp type echo-request accept
		ct state established,related accept
	}
}
speed_vm
() автор топика
Ответ на: комментарий от speed_vm

Всегда считал, что icmp трафик нужен не для ping (в первую очередь) а для обмена служебной информацией, на вроде фрагментации и т.д. - Блокировать icmp, насколько мне представляется, не лучшее решение.

DALDON ★★★★★
()
Последнее исправление: DALDON (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.