SSHポートへのアクセスをブロックして自分の国だけを許可することは明らかなステップだと思いますが、これを行うための実用的な方法がわかりません。
それが重要な場合、私は英国にいます。 Ubuntuサーバーにフルアクセスできます。サーバーは、リモートのクラウドベースのサーバーです。
これは簡単すぎるようで、どのように機能するのかわかりません: http://eminasif.wordpress.com/2014/01/14/how-to-restrict-server-ssh-access-or-any -port-only-for-specific-country-in-csf /
これはIPの負荷を示していますが、それを使用可能/実用的なものに転送する方法がわかりません: http://www.nirsoft.net/countryip/gb.html
実際、アクセスが必要なのは1つのオフィスだけです(リモートにいる人は誰もいません)。 6か月ごとに変わるようですが、接続時に使用する現在のIPアドレスを設定するのは気が進まないです。
ルートログイン、高ビット暗号化キーなどを無効にするなど、他の優れたセキュリティ慣行がありますが、これは明らかな追加の手順のようです。
これは面倒な価値がありますか?それを行うための信頼できる方法はありますか?
それは、隠すことによるセキュリティの微妙な例のように聞こえます。そのようなシステムへのハッキングに実際に興味がある人は誰でも、オープンプロキシまたはサーバーを借りる英国内で、そこから攻撃します。
同時に、操作をより困難にします。
これは完全に必要なわけではないようです。ファイアウォールによっては、独自のGeoIPブロッキングを実行できる場合があります。それ以外の場合は、iptables
を使用して、オフィス内で取得するIPのブロックを「許可」できます。
ただし、これまでに行ったことは、ほとんどサーバーには十分です。キーのみの認証は、ブルートフォースを実行不可能にします。デフォルトのSSHポートを変更することで、攻撃をさらに減らすことができます。これによってセキュリティが向上するわけではありませんが、異なるポートでSSHを検索しない自動スキャナーからの偽のトラフィックの90%が削減されることに注意してください。
正直なところ、接続を真に識別するための100%の方法を私は知らないので、英国の人々だけがSSH経由で接続できることを実際に保証できるとは思いません。
http://www.geoip.co.uk/ これを行う1つの方法である可能性がありますが、毎回クエリを実行して結果を検査すると、タイムアウトが多すぎる可能性があります。
iptables
を使用していると仮定して、IPに基づいて特定の場所のみを許可する場合は、デフォルトのINPUT
ポリシーをDROP
に設定してから、各アドレスを個別に許可する必要があります。それをブロックします。
私見では、パスワード認証を無効にし、サーバーへのキーベースのログインのみを許可する方が、オーバーヘッドがはるかに少なく、それでも比較的安全です。
ほとんどのIPロケーションリストは信頼できないことがわかりました。一部のアドレスは完全に間違っています。
SSHを必要とする人ごとにVPNを作成する方が簡単なので、どこからでも接続でき、公衆からのSSHアクセスをブロックできます。
RIPE割り当てのリスト をダウンロードして、それに基づいてiptablesルールを作成できます。リストが完全ではない可能性があることに注意してください。わずかに異なるチャネルを介して割り当てられた少量のIPアドレスがあり、そのリストには表示されないと思います。
あなたが何をしているかを知っている攻撃者は、許可されたIPアドレスのリストにあるプロキシ(または同様のもの)を見つけることができれば、フィルタリングをバイパスすることができます。
私は過去に同じような状況にありました。すでに述べたことはすべて非常に有効であり、適切なファイアウォールアプリケーションを使用しないと、国ごとに効果的にブロックすることはできず、それでも間違いがあります。
いつか、最悪の瞬間にリモートアクセスが必要になるという点は、ここにある本当のクリンチャーです。ことわざにあるように、「そこに行って、それをやった」。それはきれいではありません。
これが私の問題を解決した方法です。
Iboundsshがプロバイダーサブネットと他の1つの外部IPアドレスのみを許可するようにオフィスファイアウォールを設定しました。その外部サーバーは、非標準のポート、portsentry、およびその他のいくつかのもので構成されており、[〜#〜] i [〜#〜]のみがアクセスでき、sshを実行できるようになっています。それから、内部ネットワークへ。
サーバーにダイナミックDNSを設定します。承認されたクライアントにキーを発行して、各クライアントが自分のダイナミックDNSIPアドレスのみを更新できるようにします。これにより、サーバーは、承認されたクライアントの送信元のIPアドレスを知ることができます。
SSHサーバーをTCP Wrapperで保護し、許可されたクライアントのみがダイナミックDNS情報を使用して接続できるようにします。関連ファイルは/ etc/hosts。{allow、deny} for TCPラッパー。
上記の複雑さを考えると、私はいくつかのLinuxクライアントでのみこれを行いました。モバイルクライアントは、より多くの課題を提示します(主に、nsupdateの欠如、またはIPアドレスの変更に関する通知の欠如が原因です)。 OpenVPNサーバーをインストールし、Linux以外のローミングクライアントにキーを発行しました。モバイルクライアントが紛失/盗難にあった場合、OpenVPNサーバーで対応するキーを取り消す/削除することができます。
私はIPSecから始めましたが、安価なワイヤレスNATルーターはIPSecパケットを許可しませんでした。おそらく、より新しい/高価なルーターは許可します。