スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

今回は「iptables」コマンドを使ってサーバマシンのファイアウォールを構築します。
iptablesを使うことで、さまざまなパケットフィルタリングの設定を行うことができます。

例えば、
・サーバ自身から外部への接続を許可する
・外部からのPINGを受け付ける
・外部からのSSH接続を受け付ける
・外部からのDNS問い合わせを受け付ける
・外部からのHTTP接続を受け付ける
・外部からのSVN接続を受け付ける
・外部からのSAMBA接続を受け付ける
・上記以外の通信を一切許可しない

といった細かい設定が可能です。

iptables自身はコマンドなので、実行しなければ有効となりませんが、サーバを起動する度にこのような細かい設定をするのはめんどくさいので、シェルスクリプトを用意して、起動時に実行するようにしておくとよいでしょう。
例えば、起動時に設定が有効になるように、今回は「/etc/network/if-pre-up.d/set_iptables」にコマンドを記述します。
上の箇条書きの設定をする場合、具体的なファイルの中身は以下のようになります。

#!/bin/sh
# iptablesの設定を初期化
iptables -F
# とりあえず自身からの通信以外はシャットアウト
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# PINGを許可
iptables -A INPUT -p icmp -j ACCEPT
# SSHを許可
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# DNSを許可
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
# Apatchを許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Subversionを許可
iptables -A INPUT -p tcp -s $trusthost --dport 3690 -j ACCEPT
iptables -A INPUT -p udp -s $trusthost --dport 3690 -j ACCEPT
# Sambaを許可
iptables -A INPUT -p tcp --dport 137:139 -j ACCEPT
iptables -A INPUT -p tcp -dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 137:138 -j ACCEPT
iptables -A INPUT -p udp --dport 445 -j ACCEPT

このようにして、いったん全ての接続を不許可として、その後に許可するポートを空けていきます。

その他にも、接続数を制限する、IPで制限する、IPマスカレードを設定するなど、さらに細かい設定も可能です。

ウイルスバスター公式トレンドマイクロ・オンラインショップ

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search