
左が、前提となるネットワークの構成です。
Webの80、POPの110、smtpの25、FTPの20と21、それぞれのポートは、IPマスカレードテーブルによって、下のアドレス変換は済んでいるものとします。
g1.g2.g3.g4 ←---→ 192.168.0.23
また、同ネットワーク内にあるクライアントより Webmin のアクセスを許可します。
■iptables の設定
|
私は root でログインして設定を行いました。
VineLinux2.6r4 では、iptables は標準でインストールされていますが、一応、コマンドラインから iptables -L と打ち込んで、下のようになることを確認します。
(iptables本体 は /sbin/ にあります。もし、パスが通っていなければ /sbin/iptables と入力してください)
# 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 の設定の順序は、次のようになります。
1.ポリシーを決める。
2.ルールをクリアする。
3.ルールをキー入力する。
4.設定をセーブする。
5.iptables を再起動する。
1.ポリシーを決める
まず INPUT については、一旦すべて ACCEPT(許可) します。FORWARD は使わないので DROP(破棄) します。OUTPUT は、すべて ACCEPT(許可) します。
# iptables -P INPUT ACCEPT
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
|
※FORWARD はルータとして動作させるときに設定します。
2.ルールをクリアする
3.ルールをキー入力する
それではルールを入力していきましょう。
icmp(ping)と自端末からの入力を許可
# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
|
Web、FTP、POP、smtp による接続を許可
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
|
DNSサーバの運用があるなら次の2行を追加
# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
# iptables -A INPUT -p udp --dport 53 -j ACCEPT
|
ssh による接続を許可
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
ローカルの他端末からWebminでの接続を許可(Webminのポート:10000)
# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 10000 -j ACCEPT
|
TCPの接続開始と応答、FTPデータなどを許可
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
他の接続はすべて破棄(ポリシーの再設定)
# iptables -P INPUT DROP
|
4.設定をセーブする
ここまでキー入力したルールは、サーバを再起動すると消えてしまいます。よって、ルールをセーブし、次回の起動時にも適用されるようにします。
ルールをセーブする
# /etc/init.d/iptables save
|
5.iptables を再起動する。
それでは、念のため iptables を再起動してルールをしっかり適用させましょう。
iptables の再起動
# service iptables restart
現在のすべてのルールとユーザ定義チェインを初期化中: [ OK ]
現在のすべてのルールとユーザ定義チェインを破棄: [ OK ]
iptablesファイアウォールルールを適用中: [ OK ]
[ OK ]
|
| |