it-swarm-ja.com

ホームサーバーの強化

古いハードウェアとUbuntu12.04またはDebian6を使用して、控えめなWebサーバーをセットアップすることを考えています。LAN上のマシンを外部に公開することで、セキュリティ違反や攻撃に対して脆弱になることを認識しています。それは、Linuxを使用してコンピューターを保護した経験がほとんどないため、特に自宅のLANに機密情報を含む他のコンピューターがあるため、このWebサーバーを保護するために何をすべきかについていくつかの推奨事項を尋ねたいと思います(ホームバンキング口座などについて)。どうもありがとうございました。

5
NetStudent

まず、おそらくご存知でしょうが、動的IPを使用している場合は、DynDNSや DNSexit などの動的DNSが必要になります。

保護の部分では、iptables(または必要に応じて firestarter のようなファイアウォールGUI)を使用して、ホームサーバーにインバウンド接続用にポート80のみを開くだけで十分だと思います。 sshポート(ポート22)またはftp(21)を開く必要があり、メールサーバーをインストールしません。

サイトにログインページがある場合、またはssh、ftp、smtpを開く必要がある場合は、少なくとも fail2ban のようなものをインストールして、接続を試行しても成功しないIPを禁止して試行しないことをお勧めします。永遠に。

注意すべき重要なことの1つは、ログを簡単に監視するために、ログを確認する必要があることです。 logwatch (DebianおよびUbuntuのデフォルトリポジトリにあるはずです)毎日または毎週メールで警告します。それらを頻繁に読むことで、何が悪いのかをすばやく見つけることができます。

サーバーを管理するために外部から接続する必要がある場合は、VPNを使用し、とにかく、OSを常に最新の状態に保ちます。

更新:SSHとsftpの場合、fail2ban + sshキーのみ(またはキー+パスワードでパスワードだけではない)が必要最小限であると思います(rootアクセスを許可しません)。

接続に使用するマシンのIPが固定されている場合は、これらの着信IPに対してのみファイアウォールを開きます。

暗号化されたVPN(私は openvpn を使用します)は、アクセスを保護するのにも大いに役立ちます。
ここで 「クイック」公式チュートリアル をご覧ください。15〜30分で、1つのクライアント(1つのサーバー)用のVPNサーバーが機能するようになります。より良いセットアップのために クライアント証明書認証とCAを使用 (あなた自身の無料のCA)あなたはさらに数分かかる必要があります:D

サイトでMySQLが必要な場合、またはその他の理由でインターネットからMySQL(または別のデータベース)を管理する必要がある場合、VPNを使用しない場合は、sshトンネルを使用して、マシンのローカルポートに接続し、トンネルを暗号化します。サーバーへの接続。データベースポートを開く必要がないので、-L-Dおよびman ssh引数を確認してください。
データベースを世界に公開するため、パブリックIPをリッスンするphpmyadminはインストールしません。必要に応じて、トンネルのサンプルスクリプトをここに置くことができます。

6
laurent