VineLinuxパフォーマンスアッププロジェクト:0084

■iptablesでIPマスカレード機能を設定しよう!■

 以前DHCPサーバを設定してみよう!を紹介しましたが、今回はDHCPサーバに接続しているパソコンそれぞれからインターネットへ接続できるような機能(IPマスカレード機能)の設定方法を紹介します。



 IPマスカレード機能を有効にするにはiptablesコマンドで実行します。このコマンドはVineLinuxがフルインストールされていればあらかじめインストールされています。もしなければapt-getコマンドなどでiptablesをインストールしてください。

 以降の操作はルータとなっているパソコン上でrootユーザ権限で行ってください。まずはiptablesを初期化します。

  iptables -t filter -F
  iptables -t nat -F


 ルータを作成する際にも触れましたが、次にターミナル上で以下の操作を実行してください。

  echo 1 > /proc/sys/net/ipv4/ip_forward

 そしてIPマスカレードの設定を行います。ターミナル上で以下の操作を実行してください。(下の記述のように、モデム等とつながっているほうのネットワークインタフェース名を指定します。)

  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE


 その後はご自分の環境に合わせて下のような操作を行ってください。例えばWebサーバを公開している場合はhttpの80番ポートを解放する必要があります。

●pingを許可
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT


●ネットワークインタフェースの設定
iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p udp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT


●WWWサーバ(HTTP:80 及び HTTPS:443)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -j ACCEPT


●DNSへの問い合わせを許可(DNS:53)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT


●FTPを許可
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --sport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --sport 21 -j ACCEPT


●POP(110) 及び SMTP (25) 及び IMAP4 (143)を許可
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --sport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --sport 143 -j ACCEPT


●Webminがインストール済みなら設定
iptables -A INPUT -s XXX.XXX.XXX.XXX/XX -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -s XXX.XXX.XXX.XXX/XX -p tcp --sport 10000 -j ACCEPT


●SSHを許可
iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s XXX.XXX.XXX.XXX -p tcp --sport 22 -j ACCEPT


   これまでの設定を確認するには

  iptables -L

 で確認できます。設定が完了したら反映させるために以下のコマンドを必ず実行してください。

  /etc/init.d/iptables save
  /etc/init.d/iptables restart


★2010/12/26 修正

 上記の設定を1コマンド実行するだけで適用できるシェルを作成しましたので、必要に応じてこちらからダウンロードしてください。

※テキストエディタ等でお使いの環境に合わせて編集することもできます。
※ダウンロードしたら実行権限をつけてください。

  chmod 755 iptables.sh

でOKです。実行するにはrootユーザでダウンロードしたディレクトリまで移動し、

  ./iptables.sh

でOKです。



 これですべての設定が終了しました。実際にDHCPサーバにつながっているパソコンからWebブラウザを立ち上げてインターネットに接続できるかテストしてみてください。無事つながれば成功です。もし接続できなければiptablesの設定をもう一度確認してみてください。

古いパソコンで有線ブロードバンドルータを作ってみよう!へ移動する

DHCPサーバを設定してみよう!へ移動する 




プロジェクト ホームへ戻る