iptables

提供: セキュリティ
2013年8月17日 (土) 22:37時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

iptables は、Linux に実装されたIPv4用のパケットフィルタリングやネットワーク変換機能、または、コマンドのことです。 IPv6 用には、 ip6tables があります。

読み方

iptables

概要

iptables は、Linuxファイアーウォールとして利用できます。

設定ファイル

iptables の設定ファイルは、下記の場所にあります。

/etc/sysconfig/iptables-config


使い方

iptables の設定

/etc/sysconfig/iptables の設定例。

  • プライベートアドレスからの ssh のアクセスを許可する
  • ローカルホストからのアクセスを許可する
  • それ以外は、許可しない
# Generated by iptables-save v1.4.7 on Sat Apr 27 15:31:38 2013
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Sat Apr 27 15:31:38 2013


  • どこからでも ssh のアクセスを許可する
  • ローカルホストからのアクセスを許可する
  • それ以外は、許可しない
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT


iptables が動かない

service iptables start で iptables が動かないことに遭遇するかもしれません。 /etc/sysconfig/iptables の設定ファイルが存在しないとき、iptables のサービスは起動できません。

iptables の設定と起動

% sudo cp ./iptables /etc/sysconfig/iptables
% sudo service iptables start
iptables: Applying firewall rules:                         [  OK  ]

HTTPとHTTPSを許可する

HTTP (80)と HTTPS (443) を許可する例です。

-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT


icmp echo requestを許可する

-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

回数制限を行う

1秒間に4回までアクセスを許可する例です。

-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4  -j ACCEPT

sshd に対して行うと、総当たり攻撃 を受けている時に、自分自身もログインができなくなるので、やるべきではないでしょう。

iptables の設定の保存と復元

iptables-save コマンドでは、iptablesの設定を標準出力に出します。

iptables-save > iptables.save

iptables-restore は、iptables の設定を読み込み、iptables に反映します。

iptables-restore < iptables.save

iptables-save の実行例。

% iptables-save
# Generated by iptables-save v1.4.7 on Sat Apr 27 15:26:09 2013
*filter
:INPUT ACCEPT [79:6000]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [66:7992]
COMMIT
# Completed on Sat Apr 27 15:26:09 2013

iptables の設定を保存する

iptables コマンドで設定した情報は、 save を実行しないと保存されません。

% sudo service iptables save

関連項目




スポンサーリンク