ipchainsに挑戦!

03/06/20

パケットフィルタリングによるセキュリティーアップを実現しようと思い、「ipchains」を導入してみました。

なお、Vineでは、デフォルトで「ipchains」と「iptables」がインストールされています。

VineLinex2.6では、カーネルを2.22.4か選べるのですが、カーネル2.2までは、「ipchains」。カーネル2.4からは「iptables」がデフォルトで使用されるらしいです。そのせいか、カーネル2.2では、「iptable」がインストールはされるものの起動しないようでした。

カーネル2.2でも「iptables」をアンインストールしないと作動しないようです。

さて、最初に起動させてみます。

# /etc/rc.d/init.d/ipchains start

次にダミーの設定を作成します。

# /etc/rc.d/init.d/ipchains -A input -i eth0 -s 1.1.1.1/24 -j DENY

-A input -i eth0 -s 1.1.1.1/24 -j DENY」の部分が引数で、この引数により「向き」「インターフェイス」「アドレス」「拒否・許可」を渡します。

-A Aは「add」の意
-i インターフェイスeth0とか
-s アドレス(送信元)
-d アドレス(宛先)
-j ターゲット(拒否・許可)
-p プロトコル
-l ログを記録
-b 双方向通信

これだけでは有効にならないので、

# /etc/rc.d/init.d/ipchains save

とすると

/etc/sysconfig」に「ipchains」というファイルができあがっていると思います。開いてみると

:input ACCEPT
:forward ACCEPT
:output ACCEPT

-A input -i eth0 -s 1.1.1.1/24 -j DENY

と書かれていると思います。
今後は、ターミナルではなく、こちらのファイルで設定を行います。

-A input -i eth0 -s 1.1.1.1/24 -j DENY

という行を削除してください。

「設定」

書式としては

-A input -p [プロトコル] -s [送信元IPアドレス]/[マスクするビット数][サービス名もしくはポート番号] -d [宛先IPアドレス]/[マスクするビット数] [サービス名もしくはポート番号] -j ACCEPT(or DENY)

という感じです。また、これらのルールは行頭より評価されます。つまり、行頭ですべてを拒否としてしまった場合は、その下の行に許可を示す設定を記述しても、思惑通りに作動しなくなります。

基本的には、ルータの方でフィルターをかけていると思うので「ipchains」の設定は無駄なような気がしますが、「ウェルノウンポート」以外のポートからはデータを送信しないような設定にすれば(もちろんこの場合、クライアントとしての機能、例えばブラウジングやメッセンジャー等を使った通信は出来なくなりますが)、セキュリティーは強固になるでしょう。特に踏み台としてLAN内の他のマシンやルータにアクセスできなくすればさらに強固になると思います。

#必ず記述すること(キーボードからの入力を受け付ける)
-A input -i lo -s 0/0 -j ACCEPT
#必ず記述すること!
-A input -s 192.168.1.3 -d 0/0 -j ACCEPT
#すべてを拒否
-A input -j REJECT

と記述すると「ping」で

Reply from 192.168.1.2: Destination port unreachable.

と、存在はするがポートが閉じているというメッセージが返ってきます。

-A input -j REJECT」の部分を

-A input -j DENY

とすると、「ping」でも何も返ってきません。

 

さて、実際に設定し終わったら「ipchains」を再起動させなくてはなりません。

# /etc/rc.d/init.d/ipchains start

現在の全てのルールとユーザ定義チェインを初期化中:[ OK ]
現在の全てのルールとユーザ定義チェインを破棄中:[ OK ]
ipchainsファイアウォールルールを適用中:[ OK ]

と表示されます。なお、SSHやターミナルでは日本語が文字化けする可能性があるので、「日本語ターミナル」でやった方がいいかもしれません。

<Pre Next>

■目次

■予定

VineでPHPを使うには

PHPAのインストール

SSLのチューニング


■最近観た映画3

 


■ここがサブタイトル