ファイアーウォールを設定
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
ファイアーウォールを設定して、外部からのアクセスを制限します。
ファイアーウォールを設定するにあたって、下記のサイト様を参考にされると良いです。
ここでは、読み進めていくにあたっていくつかポイントを書くに留めます。
※ SSHのポートを変更している場合は、22番ポートでないことを忘れないようにします。
iptablesのインストールを確認
インストールされていれば、下記のようにistalledが返ります。
# yum list installed | grep iptables iptables.x86_64 1.3.5-5.3.el5_4.1 installed iptables-ipv6.x86_64 1.3.5-5.3.el5_4.1 installed
bash
iptablesをインストール
インストールされていない場合はインストールします。
# yum install iptables
bash
iptablesの設定状況を確認
初期状態では、下記のように何も設定されていないかと思います。
# /sbin/iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
bash
iptablesの設定
/etc/sysconfig/iptables を編集(存在しなければ新規作成)して、ファイアーウォールの状態を細かく設定します。
詳細な設定につきましては、上記でご紹介したサイト様に委ねることにします。
iptablesの自動起動設定
$ su # /sbin/chkconfig --list iptables # /sbin/chkconfig iptables on # /sbin/chkconfig --list iptables
bash
iptablesを起動する
$ su # /etc/init.d/iptables start
bash
以下、自分メモ
ここからは、私が普段行う手順の覚書になります。
最初の最初の準備
iptables でファイアーウォール構築 「自宅サーバー Fedora」で、配布されている「firewall.sh」と「abroad_filter.cron」をダウンロード。
両ファイルを、あらかじめ編集します。
私の場合、目的別にいくつか用意し、サーバに設置するwebサービスに応じてファイルを選ぶようにしています。
設定別ファイルの置き場所(※自分用メモ)
F:wwwfirewall 以下に次のように保管
- F:wwwfirewallfullabroad_filter.cron
- F:wwwfirewallfullfirewall.sh
- F:wwwfirewallfullreadme.txt
上記3ファイルを1セットとして、目的別にフォルダ分けしています。readme.txtには、覚書として設定内容のメモを残します。
サーバごとのiptableの設置手順
サーバにて運用するwebサービスの目的に応じて、保管している設定ファイルをデスクトップなどにコピーし、編集をします。
firewall.shの SSHのポート番号に気をつけ、その他は運営するwebサービスの目的次第で調節します。
firewall.shの末尾に下記を加えると、設定を保存し、再起動まで行えます。
/etc/init.d/iptables save /etc/init.d/iptables restart
bash
サーバ側のファイルの置き場所
設定ファイルの準備ができたら、サーバにアップします。
- /root/firewall/firewall.sh
- /root/firewall/abroad_filter.cron
ファイルの所有者と、パーミッションを変更
$ su # chown -R root:root /root/firewall/ # chmod -R 700 ./firewall
bash
abroad_filter.cron を実行し、 iptablesの設定を更新します。(時間が掛かります)
※ abroad_filter.cron の中で、firewall.sh が呼ばれます。
※ abroad_filter.cron の中で、iptables の再起動コマンドが実行されます。
$ su # /root/firewall/abroad_filter.cron Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ]
bash
※ save やrestart を行うかによって返るメッセージが変わりますが、[ OK ] ならば OKです。
CRONを設定して、定期的に更新するようにします。
次の例では、 毎週日曜午前3時0分に実行します。
$ su # crontab -e 0 3 * * 0 /root/firewall/abroad_filter.cron
bash
Linux起動時に自動実行するようにする。
$ su # /sbin/chkconfig --list iptables # /sbin/chkconfig iptables on # /sbin/chkconfig --list iptables
bash
SSH接続を終了し、再度アクセス
ファイアーウォールの設定ができたところで、一旦SSHの接続をログアウトし、接続しなおします。
いつものようにログインできることを確認します。