はじめに
このチュートリアルでは、サーバーのセキュリティ保護に大いに役立ついくつかの基本的なIPTablesの変更を実行する方法について説明します。これは、クラウドへのUbuntu14.0464ビットの新規インストールで実行されます。これは、DebianだけでなくUbuntu12.04OSのどのバージョンでも実行できます。すべてのコマンドはrootとして実行され、ファイルの編集はviを介して行われます。これを行うために別のユーザーを使用している場合は、sudoアクセスが必要になります。任意のファイルエディタを使用できます。
IPTablesを使用したクラウドサーバーの保護
残念ながら、Ubuntu 14.04または12.04には、IPTablesがまだインストールされていません。 Debianでは、IPTablesはすでにインストールされているため、これをスキップできます。したがって、Ubuntuでの最初のステップは、IPTablesをインストールすることです。これを行うには、次のコマンドを実行するだけです:
apt-get install iptables
IPTablesをインストールした後、次を実行してチェックアウトできます:
iptables –L
これにより、実行しているルールが一覧表示され、iptablesをインストールして機能していることが確認されます。現時点では空ですが、利用可能な3種類のチェーンを確認できます。
次に、iptables-persistentパッケージをインストールします。これにより、現在のIPTablesルールが新しいファイル(/etc/iptables/rules.v4)に書き出され、再起動時にルールが自動的に適用されます。とても役に立ちました!
/etc/iptables/rules.v4
ファイルを入力すると、上の図のようになります。最初のカスタムルールの前に追加したいことがいくつかあります。これは、ループバックインターフェイスのルールであり、すでに確立されているトラフィックのルールです。あなたはこれらを以下で見ることができます。追加する最初のカスタムルールは、サーバーへのSSHアクセスを許可します。 COMMITはINPUT、FORWARD、およびOUTPUTルールセットの終わりを区切るため、COMMIT行の上にルールを追加する必要があります。すべてのIPTablesセグメントの意味とそれらの詳細については、IPTablesセクションを参照してください。
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED、RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
注:UbuntuチュートリアルでSSHポートを変更するで設定したようなカスタムSSHポートがある場合は、22を構成したSSHポートに変更する必要があります。私たちの場合3389
/etc/iptables/rules.v4
ルールは上の図のようになります。ここで終了する前に、変更しなければならないことが2つあります。ルールの内容:
:INPUT ACCEPTおよび:FORWARD ACCEPT
私たちは彼らに持ってもらいたいでしょう:
:INPUT DROPおよび:FORWARD DROP
これは、IPTablesに、通過を許可するように指定したポートに送信されないすべてのトラフィックをブロックしてドロップするように指示します。これにより、あなたがそれらのポートを一般に公開していない限り、あなたが実行しているサービスの使用に侵入しようとする人々を防ぐことができます。
終了すると、上記のようになります。そこに到達したら、ファイルを保存して閉じます。最後にやらなければならないことは、これらの新しいルールを現在のIPTablesにロードすることです。これを行うには、次を実行するだけです:
iptables-restoreルールが適用されていることを確認するには、以前と同じコマンドを実行するだけです。
iptables –L以下のページのようなものが表示されるはずです。
/etc/iptables/rules.v4
この後、それだけです!新しいルールはすぐに有効になり、再起動してもそのまま残ります。 IPtables、特にSSHへのアクセスをより制限したい場合は、通過を許可する必要があるIPアドレスごとに次の手順を実行できます。これには、SSHルールの編集と追加が含まれます。以前に特定したSSHルールが記載されている場合は、次のように変更します。
-A INPUT -s IPADDR –m tcp –p tcp --dport 3389 –j ACCEPTここで、IPADDRは、サーバーへのSSHアクセスを許可するIPアドレスです。カスタムSSHポートを設定しなかった場合は、3389ではなく22のままにしておく必要があります。
たとえば、WebサイトへのWebアクセスのために特定のポートを許可するには、サービスが実行されている(または構成した)ポートとそのプロトコル(TCPまたはUDP)を認識して見つけ、通過を許可するだけです。たとえば、ウェブサイトへのアクセス:
-A INPUT -m tcp -p tcp --dport 80 -j ACCEPTそして今、インターネットはあなたがしているウェブホスティングにアクセスできます。
INPUTセクションまたはFORWARDセクションに新しいルールを追加するときは、新しいルールを同じようなルールと一緒にまとめておくのが良い方法であることに注意してください。 INPUTを使用したINPUTとFORWARDを使用したFORWARD。また、新しいポートの通過を許可する追加のルールが、そのルールセットの拒否ステートメントの上にリストされていることを確認する必要があります。拒否行の後にリストされている場合、ルールは有効になりません。
IPTablesが実行していることや、そのルールでブロックしていることの出力を確認するには、以下を実行できます。接続を切断したり、接続を許可したりするためのルールやパケットに関するすべてのルールが印刷されます。
iptables -L -vnすべてのIPTablesセグメントの意味とそれらの詳細については、IPTablesセクション(リンク)を参照してください。
注:Atlantic.Netクラウドサービスを使用している場合、ロックアウトすると、クラウドポータルのVNCビューアを介していつでもサーバーにアクセスできます。