Neměli byste zavírat port 80. Místo toho byste měli nakonfigurovat server tak, aby přesměroval port HTTP 80 na port HTTPS 443, abyste mohli používat TLS. Volitelně můžete použít HSTS (HTTP Strict Transport Security) a sdělit prohlížečům, aby pamatovaly na to, že při připojování k vašemu webu v budoucnu mají používat pouze TLS.
Na otevření portu 80 není nic nejisté. Problémy se zabezpečením nastávají pouze tehdy, když webový server obsluhuje požadavky přes nešifrované připojení, zejména pokud tyto požadavky obsahují citlivá data. Když je port 80 otevřený a neodesílá nic jiného než přesměrování HTTP, je naprosto bezpečné.
Google, hlavní internetový vyhledávač (převyšující Bing i Yahoo), a prohlížeč používaný většinou uživatelů internetu, prosazuje svět pouze s protokolem HTTPS tím, že snižuje hodnocení stránek u stránek, které nemají HTTPS, a přidává upozornění prohlížeče, když web není zajistit. Poměr webů HTTPS k ne je však stále příliš nízký na to, aby bylo možné všem doporučit zásadu HTTPS-first, protože uživatelé by neustále dostávali děsivé zprávy „chyba certifikátu“ nebo chyby „odmítnutí připojení“.
Takže dokud Google nedoporučí zásadu HTTPS-first pro připojení prohlížeče, není pravděpodobné, že Firefox, Apple nebo Microsoft doporučí takové zásady, a to nebude pravděpodobné, dokud nebude slušná většina (možná 70 % nebo více) nejlepších webů jsou povoleny HTTPS, což by byl obrovský nárůst oproti ~50 % nejlepších webů, které dnes mají HTTPS.
Většina uživatelů, kteří úmyslně nebo náhodně navštíví váš web HTTP, pokud se zobrazí chyba „připojení odmítnuto“, pravděpodobně přejde na jiný web. Nemám dobrý způsob, jak zde získat konkrétní čísla, ale je pravděpodobné, že 70–90 % uživatelů internetu by pravděpodobně nepřišlo na to, že stránka nemá žádný HTTP port bez automatického přesměrování; zbytek je pravděpodobně buď dostatečně technicky zdatný, aby si uvědomil, že potřebuje HTTPS, nebo používá HTTPS Everywhere a stejně by si toho nevšiml.
Rozhodně používejte HSTS, rozhodně přesměrování 301 na zdroje HTTPS (číslo 301 znamená trvalý přesun do prohlížečů, takže si tuto preferenci „zapamatují“), rozhodně svým uživatelům doporučte, aby viděli visací zámek a ověřili certifikát atd. v tuto chvíli zablokujte port 80, protože internet na to ještě není připraven.
Pokud vím, neexistují žádné velké weby, které by zakázaly HTTP a zablokovaný port 80. Pokud to uděláte, porušíte očekávání uživatelů (že vás web přesměruje na zabezpečený web), a protože většina uživatelů nebude vědět, co mají dělat, protože se jim nedostane přátelského chybová zpráva, bude jednoduše předpokládat, že váš web je nefunkční, a bude pokračovat.
Stručně řečeno:OBVYKLE jej nechte otevřený a použijte jej k přesměrování všeho na HTTPS.
Nyní ke složitým věcem :odebrání portu 80 může zastavit zloděje cookies, kteří pasivně hledají straggle http://corp.com/some/forgotten/thing
žádosti. Připojení TCP se nezdařilo, prohlížeč neodesílá GET a soubory cookie a padouch je nemůže přečíst.
Někdy je to rozumná věc, před kterou je třeba se chránit, zejména s ohledem na podniková prostředí:starší aplikace, HSTS implementované pouze částečně, soubory cookie, které mohou postrádat zabezpečený příznak nebo cestu nebo omezení hostitele, hostované nebo proxy servery třetích stran, ...
Nyní byste měli vy zablokovat to? Pravděpodobně ne.
Stejně jako ostatní zmínění by to zkomplikovalo nastavení Let's Encrypt a zabránilo přesměrování (včetně uživatelů, kteří zadají your.com
v adresním řádku). Pokud jste nastavili HSTS pro celou doménu, odstranění přesměrování může být dokonce považováno za kontraproduktivní (možná budete chtít riskovat jedno prosté připojení HTTP, takže bude chránit všechny budoucí).
Také si uvědomte, že aktivní útočníci nebudou zastaveni (mohou připojení uměle dokončit, nástroje MITM proxy to mohou dokonce dělat ve výchozím nastavení), existují rohové případy (prosté HTTP proxy, delegované domény mimo váš firewall) a můžete považujte pasivní útok za příliš komplikovaný pro váš model.
Nakonec, měli byste přidat port 80 na nový server? No, pokud již nemáte důvod k otevření (viz výše), ne.