「iptables の設定例」の版間の差分
提供: セキュリティ
(ページの作成:「iptables とは、設定例です。 __TOC__ == 概要 == == Webサーバーにおける設定 == === HTTPサーバへのアクセスは無制限 === <syntaxhigh...」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行7: | 行7: | ||
== Webサーバーにおける設定 == | == Webサーバーにおける設定 == | ||
=== HTTPサーバへのアクセスは無制限 === | === HTTPサーバへのアクセスは無制限 === | ||
+ | * [[HTTP]]/[[HTTPS]]へのアクセスを許可 | ||
+ | * [[DNS]]問い合わせを許可 | ||
+ | * [[syslog]]転送を許可 | ||
+ | * [[sshd]]へのアクセスを許可(接続回数制限あり) | ||
+ | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# vim: filetype=iptables | # vim: filetype=iptables | ||
行23: | 行28: | ||
# Internal Only | # Internal Only | ||
− | # -A | + | # -A OUTPUT -p tcp -m multiport -m state --state NEW --dports mysql -j ACCEPT |
# source address を指定する場合 | # source address を指定する場合 | ||
行45: | 行50: | ||
COMMIT | COMMIT | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
=== HTTPサーバへのアクセスも制限あり === | === HTTPサーバへのアクセスも制限あり === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行129: | 行135: | ||
COMMIT | COMMIT | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | == プロキシサーバの例 == | ||
+ | * http/https のアクセスを許可します | ||
+ | == MySQLサーバの例 == | ||
+ | === MySQLサーバのみを提供する場合 === | ||
+ | === MySQLサーバとレプリケーションあり === | ||
== 関連項目 == | == 関連項目 == |
2014年6月17日 (火) 00:58時点における最新版
iptables とは、設定例です。
目次
概要
Webサーバーにおける設定
HTTPサーバへのアクセスは無制限
# vim: filetype=iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] #:OUTPUT ACCEPT [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT # Incomming from Internet -A INPUT -p tcp -m multiport -m state --state NEW --dports http,https -j ACCEPT # Internal Only # -A OUTPUT -p tcp -m multiport -m state --state NEW --dports mysql -j ACCEPT # source address を指定する場合 #-A INPUT -p tcp -m state -s 192.168.0.0./24 --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 4 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 4 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW ! --syn -j LOG --log-prefix "FW not syn ssh: " # 514 is syslog -A OUTPUT -p udp -m multiport --dports syslog,domain -j ACCEPT -A INPUT -p udp -m multiport --sports domain -j ACCEPT -A OUTPUT -p tcp -m multiport --dports 514,domain -j ACCEPT -A INPUT -p tcp -m multiport --sports domain -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A INPUT -m state --state INVALID -j LOG --log-level 4 --log-prefix "FW drop invalid packet: " --log-ip-options --log-tcp-options -A INPUT -m state --state INVALID -j DROP COMMIT
HTTPサーバへのアクセスも制限あり
# vim: filetype=iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] #:OUTPUT ACCEPT [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT # Incomming from Internet #-A INPUT -p tcp -m multiport -m state --state NEW --dports http,https -j ACCEPT -A INPUT -p tcp -m multiport -m state --state NEW --dports http,https -m hashlimit --hashlimit-name t_http --hashlimit-mode srcip --hashlimit 120/m --hashlimit-burst 700 --hashlimit-htable-expire 120000 -j ACCEPT # Internal Only # -A INPUT -p tcp -m multiport -m state --state NEW --dports mysql -j ACCEPT # source address を指定する場合 #-A INPUT -p tcp -m state -s 192.168.0.0./24 --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 4 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 10 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW ! --syn -j LOG --log-prefix "FW not syn ssh: " #-A INPUT -p tcp -m state --state NEW ! --syn -j DROP # 514 is syslog -A OUTPUT -p udp -m multiport --dports syslog,domain -j ACCEPT -A INPUT -p udp -m multiport --sports domain -j ACCEPT -A OUTPUT -p tcp -m multiport --dports 514,domain -j ACCEPT -A INPUT -p tcp -m multiport --sports domain -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A INPUT -m state --state INVALID -j LOG --log-level 4 --log-prefix "FW drop invalid packet: " --log-ip-options --log-tcp-options -A INPUT -m state --state INVALID -j DROP COMMIT
HTTPサーバへのアクセス mysqlを利用する
# vim: filetype=iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] #:OUTPUT ACCEPT [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT # Incomming from Internet #-A INPUT -p tcp -m multiport -m state --state NEW --dports http,https -j ACCEPT -A INPUT -p tcp -m multiport -m state --state NEW --dports http,https -m hashlimit --hashlimit-name t_http --hashlimit-mode srcip --hashlimit 120/m --hashlimit-burst 700 --hashlimit-htable-expire 120000 -j ACCEPT # Internal Only -A OUTPUT -p tcp -m multiport -m state --state NEW --dports mysql -j ACCEPT # source address を指定する場合 #-A INPUT -p tcp -m state -s 192.168.0.0./24 --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 4 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW --syn --dport ssh -m hashlimit --hashlimit 5/m --hashlimit-name t_sshd --hashlimit-mode srcip --hashlimit-burst 10 --hashlimit-htable-expire 600000 -j ACCEPT -A INPUT -p tcp -m state --state NEW ! --syn -j LOG --log-prefix "FW not syn ssh: " #-A INPUT -p tcp -m state --state NEW ! --syn -j DROP # 514 is syslog -A OUTPUT -p udp -m multiport --dports syslog,domain -j ACCEPT -A INPUT -p udp -m multiport --sports domain -j ACCEPT -A OUTPUT -p tcp -m multiport --dports 514,domain -j ACCEPT -A INPUT -p tcp -m multiport --sports domain -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A INPUT -m state --state INVALID -j LOG --log-level 4 --log-prefix "FW drop invalid packet: " --log-ip-options --log-tcp-options -A INPUT -m state --state INVALID -j DROP COMMIT
プロキシサーバの例
- http/https のアクセスを許可します
MySQLサーバの例
MySQLサーバのみを提供する場合
MySQLサーバとレプリケーションあり
関連項目
- iptables
- iptables のインストール
- iptables のテーブル
- iptables のサービスのコントロール
- iptables のコマンドラインオプション
- iptables のルールを確認する
- iptables の設定ファイル
- iptables の設定の変更
- iptables のターゲット
- iptables ログを出力する
- iptables アクセス回数を制限する
- iptables 接続状態
- iptables ステートフルパケットインスペクション
- iptables が動かない場合
- iptables ICMPのタイプ
- iptables icmp echo requestを許可する
- iptables DNSを許可する
- iptables HTTPとHTTPSを許可する
- iptables sshを許可する
- iptables の設定例
- ufw (Uncomplicated FireWall)、iptablesのフロントエンド
- ファイアーウォール