私は、Ubuntu- [〜#〜] lamp [〜#〜] 環境を頻繁に確立し、いくつかの環境をホストしています 私自身が所有するDrupal Webアプリケーション(ホスティングサービスを提供しておらず、過去に提供したこともありません)。
このような環境を確立するときは常に、私が行う最も基本的なセキュリティ手順は次のとおりです。
ufw --force enable
ufw allow 22,25,80,443 # All allowed via both TCP/UPD as no restrictions were given;
apt update -y
apt upgrade unattended-upgrades sshguard
2017-2018以降 W3C / Google (?)ブラウザに関する改革HTTPでのサポート、 TLS暗号化 の使用を必須または少なくとも推奨 SSL証明書 保護されたHTTPデータ転送(HTTPS)の場合、保護されていないHTTP(通常はポート80を介する)が依然として私たちの誰にもまったく関係がないのでしょうか。
ポート80をufw allow 22,25,80,443
から削除して、システムの「脆弱性」を少しでも小さくしても大丈夫ですか?
回答では、ポート80をブロックするのではなく、ポート80からポート443にリダイレクトすることをお勧めします。Certbotがこれらのリダイレクトを自動的に作成するため、回答で推奨されているようにポート80を開いたままにしておくとカバーされます。
インターネットの主要な検索エンジンであるGoogle(BingとYahooの両方をドワーフ化)と、大多数のインターネットユーザーが使用するブラウザーは、HTTPSを実行しないサイトのページランクを下げ、サイトが安全でない場合のブラウザ警告。ただし、ユーザーが絶えず恐ろしい「証明書エラー」メッセージまたは「接続拒否」エラーを受け取るため、HTTPSサイトとそうでない比率は依然として非常に低く、誰もがHTTPSを優先するポリシーを推奨できません。
したがって、Googleがブラウザ接続にHTTPS優先ポリシーを推奨するまで、Firefox、Apple、またはMicrosoftがそのようなポリシーを推奨することはまずありません。また、トップサイトの適切な過半数(おそらく70%以上)になるまではそうではありません。 現在HTTPSを使用しているトップサイトの約50% から大幅に増加するHTTPSが有効になっている。
意図的または誤ってHTTPサイトにアクセスしたほとんどのユーザーは、「接続拒否」エラーが表示された場合、別のサイトに移動する可能性があります。ここで具体的な数値を取得する良い方法はありませんが、インターネットユーザーの70〜90%が、自動リダイレクトなしではサイトにHTTPポートがないことを理解していない可能性があります。残りはおそらく技術的に十分な能力があり、HTTPSが必要であることを認識するか、HTTPS Everywhereを使用していて、いずれにしても気付かないでしょう。
HSTSを確実に使用し、確実に301をHTTPSリソースにリダイレクトします(301はブラウザーへの永続的な移動を示すため、この設定を「記憶」します)、南京錠が表示されていることを確認し、証明書を確認するようにユーザーにアドバイスします。この時点でポート80をブロックします。これは、インターネットがまだ準備ができていないためです。
私の知る限り、HTTPおよびを無効にしたポート80をブロックしている主要なサイトはありません。これを行うと、ユーザーの期待に反することになります。 (サイトは安全なサイトに転送します)、そしてほとんどのユーザーはここで何をすべきかわからないため、フレンドリーなエラーメッセージが表示されないため、単にサイトが壊れていると想定して続行します。
ポート80を閉じないでください。代わりに、TLSを使用するには、HTTPサーバー80をHTTPSポート443にリダイレクトする サーバーの構成 を行う必要があります。オプションで [〜#〜] hsts [〜#〜] (HTTP Strict Transport Security)を使用して、将来サイトに接続するときにTLSのみを使用するようにブラウザーに指示することができます。
ポート80が開いていることは安全です。セキュリティの問題は、Webサーバーが暗号化されていない接続を介して要求を処理している場合にのみ発生します(特に、それらの要求に機密データが含まれている場合)。ポート80を開いて、HTTPリダイレクトのみを送信することは、完全に安全です。
簡単に言うと、通常は開いたままにして リダイレクトすべてのものをHTTPSに 。
今度は複雑なもの:ポート80を削除すると、ストラグルhttp://corp.com/some/forgotten/thing
リクエストを受動的に探すCookie泥棒を停止できます。 TCP接続は成功せず、ブラウザはGETとCookieを送信せず、悪意のあるユーザーはそれらを読み取ることができません。
時々これは、特に企業環境について考えることから保護するのに合理的なものです:レガシーアプリ、 [〜#〜] hsts [〜#〜] 部分的にのみ実装され、Cookieに 安全なフラグまたはパスまたはホストの制限 、サードパーティがホストまたはプロキシする...
さて、あなたはそれをブロックするべきですか?おそらくそうではない。
他の人が述べたように、それは Let's Encryptの設定が複雑 であり、リダイレクトを防止します(アドレスバーにyour.com
と入力するだけのユーザーを含みます)。ドメイン全体のHSTSを設定している場合、リダイレクトを削除することは逆効果と見なされることもあります(危険なoneプレーンHTTP接続であるため、保護される将来のもの。
また、アクティブな攻撃者は停止されず(接続を人為的に完全にすることができます。MITMプロキシツールはデフォルトでこれを実行することもあります)、コーナーケース(プレーンHTTPプロキシ、ファイアウォールの外側の委任されたドメイン)があることに注意してください。モデルに対してパッシブ攻撃が複雑すぎると考えてください。
最後に、ポート80を新しいサーバーに追加しますか?さて、すでに理由がない限りそれを開くため(上記を参照)、いいえ。
他のフォレストとphyrfoxの回答に加えて、ACME http-01検証はポート80を使用してサーバーに到達します。ポートを閉じると、証明書を更新または作成できなくなります。
私はそれが状況的なものだと言います。サイトがAPIのみを提供している場合、またはバックエンドコンテンツサーバーまたは静的ファイルサーバーの場合、通常のユーザーがサーバーのアドレスを入力してサイトにアクセスしたり、ページにブックマークを付けたりすることはほとんどありません(このサーバーのアドレスは決してアドレスバーに表示されます)、そのサーバーのポート80を閉じることによって引き起こされる可能性のある害はおそらくありません。
サイトが新しいサイトであり、HTTPでサイトを使用したユーザーの履歴がなく、既存のブックマークがない場合、またはサイトにリンクを使用して共有する可能性のあるコンテンツがサイトに含まれていない場合は、ポート80を閉じることを検討してください。
ホームページを提供するサーバーの場合、アドレスバーにURLを入力するユーザーがアクセスする可能性がはるかに高いため、今のところポート80を維持することをお勧めします。また、実際の世界(物理的な広告など)または人が簡単にクリックできない媒体でページアドレスを宣伝する場合は、ポート80を維持することをお勧めします。