「iptables」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> [[{{PAGENAME}}]] は、Linux に実装されたIPv4用のパケットフィルタリングやネットワーク変換機...」)
 
行11: 行11:
 
== 概要 ==
 
== 概要 ==
  
[[{{PAGENAME}}]]
+
[[{{PAGENAME}}]] は、[[Linux]] の [[ファイアーウォール]]として利用できます。
  
 
== テーブル ==
 
== テーブル ==
行61: 行61:
 
# Completed on Sat Apr 27 15:31:38 2013
 
# Completed on Sat Apr 27 15:31:38 2013
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== iptables が動かない ===
 +
 +
service iptables start で [[iptables]] が動かないことに遭遇するかもしれません。
 +
/etc/sysconfig/iptables  の設定ファイルが存在しないとき、[[iptables]] のサービスは起動できません。
  
 
=== iptables の設定と起動 ===
 
=== iptables の設定と起動 ===
行69: 行74:
 
iptables: Applying firewall rules:                        [  OK  ]
 
iptables: Applying firewall rules:                        [  OK  ]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== HTTPとHTTPSを許可する ===
 +
 +
[[HTTP]] (80)と [[HTTPS]]  (443) を許可する例です。
 +
 +
<syntaxhighlight lang="bash">
 +
-A SERVICES -p tcp --dport 80 -j ACCEPT
 +
-A SERVICES -p tcp --dport 443 -j ACCEPT
 +
</syntaxhighlight>
 +
 +
=== icmp echo requestを許可する ===
 +
 +
<syntaxhighlight lang="bash">
 +
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
 +
</syntaxhighlight>
 +
 +
=== 回数制限を行う ===
 +
 +
1秒間に4回までアクセスを許可する例です。
 +
<syntaxhighlight lang="bash">
 +
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4  -j ACCEPT
 +
</syntaxhighlight>
 +
 +
[[sshd]] に対して行うと、[[総当たり攻撃]] を受けている時に、自分自身もログインができなくなるので、やるべきではないでしょう。
  
 
== iptables の設定の保存と復元 ==
 
== iptables の設定の保存と復元 ==
行95: 行124:
  
 
== 関連項目 ==
 
== 関連項目 ==
 +
 +
* [[ファイアーウォール]]

2013年5月3日 (金) 13:50時点における版

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

読み方

iptables

概要

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

テーブル

フィルタリング用フィルターテーブル

FORWARD
フォワードするパケット
INPUT
受信するパケット
OUTPUT
送信するパケット

アドレス変換NATテーブル

PREROUTING
送信時に変換するチェイン 
POSTROUTING
受信時に変換するチェイン
OUTPUT
送信するパケット

インストール

CentOSにインストールする場合

CentOSyum コマンドでインストールする場合。

sudo yum -y  install iptables

設定ファイル

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

/etc/sysconfig/iptables-config

iptables の制御

Linuxservice コマンドで操作する場合。

iptables サービスの開始。

sudo service iptables start

iptables サービスの停止。

sudo service iptables stop

iptables サービスの再起動。

sudo service iptables restart

使い方

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

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 SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT

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-save > iptables.save

iptables-restore

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

関連項目