ファイアーウォールを設定

ファイアーウォールを設定して、外部からのアクセスを制限します。

ファイアーウォールを設定するにあたって、下記のサイト様を参考にされると良いです。

ここでは、読み進めていくにあたっていくつかポイントを書くに留めます。

※ 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

iptablesをインストール

インストールされていない場合はインストールします。

# yum install iptables

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

iptablesの設定

/etc/sysconfig/iptables を編集(存在しなければ新規作成)して、ファイアーウォールの状態を細かく設定します。

詳細な設定につきましては、上記でご紹介したサイト様に委ねることにします。

iptablesの自動起動設定

$ su

# /sbin/chkconfig --list iptables
# /sbin/chkconfig iptables on
# /sbin/chkconfig --list iptables

iptablesを起動する

$ su

# /etc/init.d/iptables start

以下、自分メモ

ここからは、私が普段行う手順の覚書になります。

最初の最初の準備

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

サーバ側のファイルの置き場所

設定ファイルの準備ができたら、サーバにアップします。

  • /root/firewall/firewall.sh
  • /root/firewall/abroad_filter.cron

ファイルの所有者と、パーミッションを変更

$ su

# chown -R root:root /root/firewall/
# chmod -R 700 ./firewall

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 ]

※ save やrestart を行うかによって返るメッセージが変わりますが、[ OK ] ならば OKです。

CRONを設定して、定期的に更新するようにします。
次の例では、 毎週日曜午前3時0分に実行します。

$ su

# crontab -e

0 3 * * 0 /root/firewall/abroad_filter.cron

Linux起動時に自動実行するようにする。

$ su

# /sbin/chkconfig --list iptables
# /sbin/chkconfig iptables on
# /sbin/chkconfig --list iptables

SSH接続を終了し、再度アクセス

ファイアーウォールの設定ができたところで、一旦SSHの接続をログアウトし、接続しなおします。

いつものようにログインできることを確認します。