В чем разница между созданием разрешающих / запрещающих правил через службу и порт и протокол?
Например: ufw allow ssh
против ufw allow 22/tcp
или даже, ufw allow ssh/tcp
.
Какой 1) самый чистый 2) самый строгий 3) лучший подход?
ufw allow ssh
Это вставляет правила, которые разрешают пакеты udp и tcp, предназначенные для порта 22.
ufw allow 22/tcp
Это вставляет правила, которые разрешают только tcp-пакеты, предназначенные для порта 22.
ufw allow ssh/tcp
Это вставляет правила, которые разрешают только tcp-пакеты, предназначенные для порта 22.
Когда вы указываете имя службы, а не номер порта, ufw ищет имя в /etc/services
и считывает с него номер порта. В конечном итоге
ufw allow ssh/tcp
переводится на ... 22/tcp
а оттуда в iptables / netfilter.
Наиболее строгими являются те, которые ограничивают службу / протокол (очевидно, вы можете дополнительно ограничить использование исходного адреса (адресов) и т. Д.).
Что касается того, что является самым чистым / лучшим ... это зависит от вас, некоторые люди предпочтут имена служб, а другие номера портов.