すぐに最初のWebアプリをデプロイしてみるので、経験が足りません。ボットによるポートスキャンがインターネットに公開されてから数分以内に行われる場所を読んだことを覚えています(おそらく、Windows 95システムが危険にさらされるまでにかかる時間です。この記事を読んでからしばらく経っています)。この特定のサーバーは、AMD64でUbuntu 9.10サーバーエディションを実行しています。
この質問のように、Webアプリ自体は完全にhttps上にある必要があります 私はここで質問しました 。さらに、Webサイトにはファイルアップロードセクションがあり、現在はhttpポストを介して行われ、そのファイルは最終的に別のコンピューターへの別の(ワイヤレス、残念ながら)インターフェースを介してファームされ、実際の処理を処理します。
したがって、世界に公開されている実際のネットワークインターフェイスでは、ポート80と443のみを公開する必要があると思います。前に言ったように、80は443にリダイレクトする必要があります。それは正気ですか?他に何かわからないことはありますか、アクティブにしておくべき他のポートがありますか?ファイルは、ポート9000および9001を介してRuby DRbを使用して処理システムに移動されるため、これらも開く必要がありますが、2番目のインターフェース上でのみ必要です。
また、このような2つのネットワークインターフェイスを処理するには、どのファイアウォールプログラムを使用すればよいですか? ここにいくつかリストされています がありますが、どちらがWebページの提供に適しているか、あるいはこれがまったく特殊なケースであるかどうかさえわかりません。
httpsのみを提供している場合、それはあなたが開いたままにする必要があるものです。ただし、ルートアカウントで開始されたアプリケーションのみが1024未満のポートをリッスンできるため、ここには2つのオプションがあります。
以下は、ポート転送の方法です(たとえば、80〜8080でも同じことができます)。
iptables -t nat -A PREROUTING -i $EXT_IF -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
それ以外は、インターネットへの他のポートを開く必要はありません。サーバーにアクセスして管理できるように、他のインターフェースでsshを開いたままにしてください。
ファイアウォールアプリケーションについては、iptablesにはubuntuが付属しており、それを使用するだけです。他の素晴らしいツールは必要ありません。
公開する必要があるのはポート80/443のみであるという点で正しいです。それ以外はすべて閉じる必要があります。いくつかのことを行うにはファイアウォールが必要です。
それらはいくつかの考えです。ただし、特定のソフトウェアに関する推奨事項はありません。たぶん [〜#〜] lartc [〜#〜] を読むと役立つかもしれません。