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.5 (14 件の投票)