iptables の設定


iptables は Linux サーバーのファイアウォール機能です。
iptables の設定で、使用しないポートは閉じ、必要最小限のポートだけ開けることで、セキュリティを高めることができます。OpenVZ ではセキュリティ対策のため、インスタンス作成時から iptables を設定しています。

このマニュアルでは、HTTP 接続や FTP 接続で使用するポートを空ける場合を例に iptables の設定方法をご案内します。

  • このマニュアルでは Cent OS を使用している場合を例にご案内します。
  • Linux コマンドに関してはサポート対象外となります。
    ご不明な点や詳細についてはインターネットや書籍にてご確認ください。

?

  1. rootアカウントでログインします。

    [root@v0000 ~]#

    プロンプト表示に続けて次のコマンドを入力します。

    [root@v0000 ~]# iptables -nvL
    • 「iptables」と「-nvL」の間はスペースが入ります。

    入力したらキーボードの Enterキーを押します。

  2. iptables の設定内容が表示されます。

    [root@v0000 ~]# iptables -nvL
    Chain?INPUT?(policy?DROP?0?packets,?0?bytes)
    ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination
    ???46??6499?ACCEPT?????all??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????state RELATED,ESTABLISHED
    ????0?????0?ACCEPT?????icmp?--??*??????*???????0.0.0.0/0????????????0.0.0.0/0
    ????0?????0?ACCEPT?????all??--??lo?????*???????0.0.0.0/0????????????0.0.0.0/0
    ????1????52?ACCEPT?????tcp??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????state?NEW?tcp?dpt:22

    Chain?FORWARD?(policy?DROP?0?packets,?0?bytes)
    ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination

    Chain?OUTPUT?(policy?ACCEPT?38?packets,?5599?bytes)
    ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination
    • 右にスクロールするとすべての内容を確認いただけます。

    上記例の場合、以下の設定となっています。

    ACCEPT all ・・・ state RELATED,ESTABLISHED セッション確立後のパケット疎通は許可する
    ACCEPT icmp ・・・ pingを許可する
    ACCEPT all -- lo ・・・ ローカルループバックインターフェース(自ホスト)からの接続は許可する
    ACCEPT tcp ・・・ state NEW tcp dpt:22 22番ポート(SSH接続)を許可する
    • インスタンス作成時に選択したアプリケーションパックにより、初期設定内容は異なります。

    この設定の場合、外部からは ping と SSH 接続しか許可されていません。
    このままでは、WEBサーバーやFTPサーバーを構築しても、WEBサイトの表示やFTP接続はできません。
    iptables の設定で、必要なポートを空ける必要があります。

  3. HTTP (80番ポート)でアクセスできるように iptables の設定を変更する場合は、プロンプト表示に続けて次のコマンドを入力します。

    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 80 -j ACCEPT
    • 「iptables」と「-A」と「INPUT」と「-p」と「tcp」と「--dport(--sport)」と「80」と「-j」と「ACCEPT」の間はスペースが入ります。

    ■ HTTPS (443番ポート)を許可する場合
    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 443 -j ACCEPT
    ■ FTP (20番、21番ポート)を許可する場合
    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 20 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 21 -j ACCEPT
    ■ SMTP (25番ポート)を許可する場合
    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 25 -j ACCEPT
    ■ POP3 (110番ポート)を許可する場合
    [root@v0000 ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    [root@v0000 ~]# iptables -A INPUT -p tcp --sport 110 -j ACCEPT

    入力したらキーボードの Enterキーを押します。

  4. インスタンスを再起動した場合に 現在の iptables の設定を反映させるため、プロンプト表示に続けて次のコマンドを入力します。

    [root@v0000 ~]# iptables-save > /etc/sysconfig/iptables
    • 「iptables-save」と「>」と「/etc/sysconfig/iptables」の間はスペースが入ります。
    • 設定内容が、/etc/sysconfig/iptables に保存されます。

    入力したらキーボードの Enterキーを押します。

評価点数: 3 (6 件の投票)