iptables の設定例
提供: セキュリティ
スポンサーリンク
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のフロントエンド
- ファイアーウォール
ツイート
スポンサーリンク