サーバー専門のフリーランスエンジニアです。クラウドサーバー環境を利用してWebサイト、ITシステムのサーバー全体構成やサーバー内部構成をデザインします。7)はじめにひとつ前の記事で、国別のIPアドレスリストを利用して、ipsetとiptablesでSSHを日本国内からの接続に限定する設定方法をまとめました。7のipsetは(2015年2月時点では)systemdに対応しておらず、OS起動時にipsetセットがロードされません。7で適用してみると問題なく動作しているので、ここでまとめておきます。※自己責任でお試しください。RPMパッケージをダウンロードします。ipsetのsystemd向けのサービス管理パッケージです。22のipsetもsystemdに対応しているので、そのRPMパッケージでもよいと思います。http://ftp.riken.jp/Linux/fedora/releases/21/Everything/x86_64/os/Packages/i/ipset-service-6.21.1-4.fc21.noarch.rpmインストールします。接続を許可したいネットワークのアドレスを保持するセット「WHITELIST」を作成し、国別コードリストからWHITELISTのエントリーを登録します。定期的に最新の国別コードリストの情報を反映できるよう、スクリプトを用意しました。$ADDRESSdoneスクリプトを実行します。./mk_ipwhitelist.shWHITELISTを確認します。保存し、次回ipsetが起動するときに自動的にWHITELISTセットをロードするようにします。定義されていることに注意してください。/usr/libexec/ipset/ipset.start-stopIPSET=ipsetIPSET_BIN=/usr/sbin/${IPSET}IPSET_DATA=/etc/${IPSET}/${IPSET}...ipsetセットを保存し、内容を確認します。59.190.0.0/16...・ipsetの起動ステータスを確認します。(dead)起動します。full.・自動起動設定OS起動時にipsetセットをロードするよう自動起動設定を行います。指定して、ホワイトリストのIPアドレスからのみSSH接続を許可します。(デフォルトポリシーがDROP、SSHポートはTCP/22を想定。1行のエントリーで、大量のIPアドレスからのアクセス許可ルールを表現できました。出力されますが、ホワイトリストにマッチしないIPアドレスからはSSHポートにアクセスできません。srcルールを追加したので、iptablesルールを保存するのをお忘れなく。自分のPCやサーバーからSSHログインできる。海外のサーバー環境からSSHログインできない。可能であれば、OSを再起動してipsetルールやiptablesルールが正しくロードされることも確認するとよいでしょう。EC2のサーバーを使うとよいと思います。EC2サーバーのIPアドレスは、東京リージョンのサーバーでも国名コードとしては’US’です。この国名コードは、必ずしも該当のIPアドレスを使用するサーバーの地理的な位置を表すとは限らないことに注意しましょう。7で、国別のIPアドレスリストを利用して、ipsetとiptablesでSSHを日本国内からの接続に限定する設定方法をまとめました。この方法で、FTP等ほかのポートのアクセス制限を行うこともできますし、ipsetでブラックリストのセットを作成しDROPルールを登録することで、特定の国からのアクセスを防ぐこともできます。DROPiptablesで取り扱うIPアドレスが多い場合は、ipsetを使いましょう。(必須)↑お問い合わせ内容をご確認のうえ、チェックを入れてから「送信」してください。