インターネットに直接接続されているDebianサーバーをインストールしています。もちろん、できる限り安全にしたいと思っています。私はあなたたちにあなたのアイデアを追加して、それを安全にするためにあなたがそれをどのように使用するかを追加して欲しいです。
この質問の一部で、ファイアウォールとして何を使用していますか?ただ iptables 手動で設定するか、何らかのソフトウェアを使用して支援しますか?最良の方法は何ですか?すべてをブロックし、必要なものだけを許可しますか?このトピックの初心者向けの良いチュートリアルはありますか?
SSHポートを変更しますか?ブルートフォース攻撃を防ぐために Fail2Ban のようなソフトウェアを使用していますか?
義務的:
さらに、妄想のレベルに応じて:
integrit
ファイルシステムウェアの一部が変更されていないかどうかをチェックします(チェックサムがマシンの外部に保持されている場合)。例 Tripwire/etc/passwd
の不変属性なので、新しいユーザーの追加は少し難しい-m state --satete ESTABLISHED
は単一のSSHセッションを使用している限りパケットフローを許可します]私が自分でやらないことには意味があります。
マシンのファイアウォールに関する注意事項...
amap
、およびnmap
's -A
オプション。そうは言っても、サービスを変更して、のぞき見から身を隠すことができます。たとえば、次のようにすると、実行しているOpenSSH
の正確なバージョンを攻撃者に知らせることができます。次に、その正確なバージョンのエクスプロイトを探すことができます。そのようなものを隠すと、あなたはそれらをより難しくするでしょう。[root @ ud-olis-1 uhtbin]#telnet localhost 22 Trying 127.0.0.1 ... connected to localhost.localdomain(127.0.0.1) エスケープ文字は '^]'です。 SSH-2.0-OpenSSH_3.9p1
結論としては、100%安全なものを作成することに成功することは決してありません-それは不可能です-したがって、目的はできるだけ安全にすることです-システムを破壊するのにあまりにも多くの努力が必要な場合、それは十分であり、ほとんどのスクリプトキディは次のシステムに移ります。
iptables
は、どのLinuxシステムでも使用できる方法ですが、自分で設定してください。オープンスタンダードに基づいていない「セキュリティソフトウェア」を決して使用しないでください。これらのソフトウェアは、正しく記述されていないことが運命づけられており、ハッキングされます(「if」ではなく「いつ」という問題ではありません)。オープンソースとオープンプロトコルは公の監視を受け、成熟した信頼できる製品になることに集中しています。クローズドソースソフトウェアは、作成者の製品の信頼性に大きく依存していますthey考えてみてください。つまり、少数の目と地球に満ちた目です。
それが役に立てば幸い:)
denyhosts(または類似の)を使用する
独自のiptblesスクリプトを記述します(許可するものを正確に制御し、他のすべてを削除できます)
sSL/TLSで保護された通信の使用を強制し、有効で、有効期限が切れておらず、署名された証明書があることを確認します
一般的な出発点として、私は Center for Internet Security のベンチマーク/ガイドに従います。これは、セキュリティのベストプラクティスを包括的にまとめたものです。 Debianベンチマークがしばらく更新されたようではありませんが、手順の一般的な概要は次のとおりです。
CISecurityベンチマークのシステムに実装する特定のコマンドや構成ファイルなど、これらのさまざまな設定に関する多くのリソースがあります。
マシンをインターネットに直接接続しないことをお勧めします。マシンとインターネットの間に何らかのファイアウォールを設置します。これにより、サーバーに負荷をかけずにセキュリティとネットワークの監視を行うことができます。個人的には、ネットワークと機能のセグメンテーションによりネットワークのトラブルシューティングが単純化されることが多いと思いますが、場合によっては複雑さが増すため、分析がさらに困難になります。
最も安全であるが管理が最も面倒なファイアウォールポリシーは、すべてを拒否し、許可する必要があるトラフィックのみを明示的に許可することです。ネットワークの変更が必要になると、ファイアウォールポリシーを頻繁に更新する必要があるため、これは厄介です。
また、サーバーで何らかの種類のインターフェースファイアウォールを使用することをお勧めします-多層防御が重要です。管理関連のサービスに非標準のポートを使用しても問題はありません。 fail2banは問題ありません。 Serverfaultのセキュリティアプリケーションに関するより具体的な質問を追求して、より多くのアイデアを見つけてください。
セキュリティは、2人のハイカーとクマについての冗談のようなものです。完璧なセキュリティを達成することは決してできませんが、他の人よりも難しいターゲットになることは役立ちます。
Securing Debian Manual を指摘する人もいます。これは、軍事的要件以外のすべてに完全に適しています。
多くの人々は、途方もなく妄想的であることがクールであるか、プロであるか何かであると思います。それはではなく、他の管理者にとっては迷惑であり、完全にはrepressiveですユーザー。本当のセキュリティ違反はシステムが十分に更新されていないか、内部ソースから発生したものである可能性が高いため、パラノイアな管理者にとって便利だと感じるのは、偽の忙しい仕事ですが、実際には役に立ちません。
そうは言っても、ローカルネットワーク上の何もインターネットからの何よりも信頼しないことが私の信条の1つだと私は考えています。したがって、ローカルネットワークでも認証を要求するようにすべてを構成します。 IPsecを使用して、コンピューターのすべての間のすべてのトラフィックを暗号化および認証します。
現在、すべてのサーバーでフルディスク暗号化に変換しています。
使用しているサービスのみをインストールします。ファイアウォールはありません。私は認証を要求する必要があるサービスを構成するか、それらを(プログラム自体の構成またはTCPラッパーによって)特定のIPに制限します。 iptablesを使用してブロックする必要があるのは、memcached
だけでした。これは、構成ファイルがなく、TCPラッパーを使用していなかったためです。
私は自分のアカウントに適切なランダムに生成されたパスワードを使用し、SSHサーバー(および他のすべてのサービス)を信頼して、パスワードを知らない人に知られないようにしています。 fail2ban
は、ログファイルIMOのスペースが限られている場合にのみ使用できます。 (それらを信頼できるようにするには、十分なパスワードが必要です。)
Www.debian.org/doc/manuals/securing-debian-howto/でこの素敵なハウツーを体験してください
私は個人的にsshポートを変更し、fail2ban + denyhostsを使用しています。そして、不要なものはすべてブロックします。ブロックするほど、心配する必要が少なくなります。