玄箱HGメモ / Debian / iptables導入


Last update: 2009-05-14 (木) 15:40:24
実施: 2009/03/09

玄箱HGメモ/Debian/iptables導入

緑文字が入力コマンド。


Debian iptables導入

firewallとしてiptablesを導入します。
大韓民国中華人民共和国等の危険なテロリスト国家(朝鮮民主主義人民共和国は国家として認めてないけど)からサーバーを守るためkrfilterも導入しましょう。

iptables導入

iptableの導入はカーネルコンパイルが必要です。
玄箱HGメモ/Debian/カーネルコンパイルを参考にiptablesを有効にしてカーネルコンパイルをします。

iptables設定前

KAGUYA:~# iptables -nL[ENTER]

iptables未設定時設定表示画面(例)

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設定

iptables設定概要

以下の内容で設定してみます。

対象公開項目
LANtelnet/SSH, Samba, SWAT, WebMin?
WANFTP(client), WWW, HTTPS

少なくともメンテナンス用にtelnet/SSHは必須です。
FTPはaptitudeで使用しているみたいなので追加しました。

2009/03/31追記

と考えていましたが、基本的にルータが全て遮っているのでkrfilterだけ適用します。


iptables設定スクリプト作成

管理者権限(管理者アカウント参照)で作業する必要があります。

iptablesを設定するためのシェルスクリプトを作成します。
スクリプトの名前は何でも問題ありません。
ここではsetiptables.shという名前で作成します。

KAGUYA:~# vi setiptables.sh[ENTER]

iptablesスクリプト例

IPTABLES='/sbin/iptables'

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -F
$IPTABLES -X

wget http://www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/ALL2.sh.txt

$IPTABLES -N KRFILTER
$IPTABLES -N KRFILTERED

sh ALL2.sh.txt

$IPTABLES -A KRFILTER -j RETURN
$IPTABLES -A KRFILTERED -j LOG --log-prefix "DROP[KRFILTER]:"
$IPTABLES -A KRFILTERED -j DROP
$IPTABLES -A INPUT -p tcp -m state --state NEW -j KRFILTER

$IPTABLES -P INPUT   ACCEPT
$IPTABLES -P OUTPUT  ACCEPT
$IPTABLES -P FORWARD ACCEPT

iptables設定スクリプト実行

KAGUYA:~# sh setiptables.sh[ENTER]

iptables設定スクリプトに問題があれば、ここでtelnet/SSHが切断されます。
起動時に有効にする手順がまだなので、電源ボタンを押して再起動することで復旧します。
設定を見直しましょう。

iptables設定確認

KAGUYA:~# iptables -nL[ENTER]

iptables設定表示画面(例)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
KRFILTER   tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain KRFILTER (1 references)
target     prot opt source               destination
KRFILTERED  all  --  58.2.0.0/16          0.0.0.0/0
KRFILTERED  all  --  58.8.0.0/14          0.0.0.0/0
KRFILTERED  all  --  58.14.0.0/15         0.0.0.0/0

  :  (省略)

KRFILTERED  all  --  222.240.0.0/13       0.0.0.0/0
KRFILTERED  all  --  222.248.0.0/14       0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

Chain KRFILTERED (2725 references)
target     prot opt source               destination
LOG        all  --  0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4 prefix `DROP[KRFILTER]:'
DROP       all  --  0.0.0.0/0            0.0.0.0/0

後は少なくともtelnet/SSHが接続できることだけは確認しておきましょう。

iptables設定保存

設定の保存前に、少なくともtelnet/SSHが接続できることだけは確認しておきましょう。
本来は起動時に自動的に設定するべきですが、万が一、何も繋がらなくなると困るので、当面、手動で設定するようにします。

一応、未確認ですが、設定方法のメモだけ書いておきます。
KAGUYA:~# ln -s ./setiptables.sh /etc/rcS.d/S99iptables.sh[ENTER]

ログ出力先

-j LOGで指定したログは/var/log/kern.logに出力されます。



コメント

コメントはありません。 コメント/玄箱HGメモ/Debian/iptables導入?

Online: 1


FrontPage

Soft

Tips


最新の20件

2021-12-21 2020-04-06 2020-03-10 2013-06-28 2013-11-13 2014-06-24

今日の20件

  • counter: 2922
  • today: 1
  • yesterday: 0
  • online: 1

edit