- 追加された行はこの色です。
- 削除された行はこの色です。
-CentOS6までのファイヤーウォールの設定。
-CentOS6までのファイヤーウォールの設定。CentOS7からはfirewalldに変更だが、iptablesがベースになっている。なおfirewalldのルールをクリアすると自分で入力したルールが有効になるなど基本firewalld優先なので、iptalesだけを使う場合はfirewalldをとめるべし。
#contents
Linuxインストール時Firewall設定は/etc/sysconfig/iptablesに書き込まれている。
コマンドで実行した場合、反映は即時なので注意
*概要 [#yd030d39]
Linuxインストール時Firewall設定は/etc/sysconfig/iptablesに書き込まれている。ファイルで変更した場合は再起動が必要。コマンドで実行した場合、反映は即時なので注意
# iptables -A INPUT -p icmp -j DROP
こんなのをtcpに対して行った場合は即時通信不能となる。
上記例はicmpを拒否するものだが、こんなのをtcpに対して行った場合は即時通信不能となる。
なんかまずいときは
# iptables -F
でクリアしておく
*4つのテーブル [#aa714bd4]
テーブルとは処理の種類。通常はfilterを良く使うがnatも見ることが多い。その他2つは見たことがない!
ほとんどはfilterテーブルに対して行うため、指定しないとfilterに対する設定となる。
+filter
+nat(sysctl -w net.ipv4.ip_forward=1)
+mangle
+raw
*チェイン [#cd240d7c]
入出力のタイミング。テーブルによって使えるものが決まっている。
+INPUT
+PREROUTING
+POSTROUTING
+FORWARD
+OUTPUT
*ターゲット [#i956052a]
DROP,ACCEPTなどは一回マッチしたらそのパケットの扱いは終了。
LOGなどは処理を続ける。
-80番を許可して他はドロップ
iptables -A INPUT -p tcp -m --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -j DROP
*CUI設定変更ツール [#g585c9b8]
-CentOSでの設定内容は/etc/sysconfig/iptablesに書き込まれている。
system-config-securitylevel
-centosではsetupコマンドからFirewallの設定を行うが、慣れたら上記ファイル直接の方が早いかも
*コマンド一覧 [#o9c11c46]
|現在の設定を確認|iptables -L|
|現在の設定をクリア|iptables -F|
*CHAINの種類 [#y03331fb]
主にINPUTを制御することになるだろう。内部から外部通信を制限する場合は、OUTPUTを変更する必要がある。
**INPUTチェーンの設定。コマンド版 [#l17445fa]
# サーバーへの攻撃対応(From さくらVPSの情報)
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
#ローカルからの通信は許可(一番先頭に持ってくる)
iptables -A INPUT -i lo -j ACCEPT
#すでに接続されているものは許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ローカル以外のICMPは拒否(適用順に注意)
iptables -A INPUT -p icmp -j DROP
# 各種ポートの許可(ssh,http,https)
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#INPUTは基本落とす
iptables -P INPUT DROP
-問題なければセーブする[x:x]は合致したパケット:バイトらしいのであるが、0:0でもよい
service iptables save
-別ファイルに書き出すなら
iptables-save -c
# Generated by iptables-save v1.4.18 on Tue Oct 6 08:26:41 2015
*filter
:INPUT DROP [1:60]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [151:20456]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
COMMIT
# Completed on Tue Oct 6 08:26:41 2015
*ipsetとは [#q2db4949]
カーネルレベルで用意されているipのグルーピングのツール。
単体で使うというよりはfirewalldやiptablesと組み合わせて使うことが多いので取り上げた。
*攻撃者除去コマンドライン [#b0467423]
ログを汚すので
iptables -I INPUT -s 攻撃者IP -j DROP
*SSH ブルートフォースアタック対策 [#xc157285]
成功、失敗にかかわらず60秒間で4回目のSSH接続を拒否する。
# allow
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 2 --rttl --name SSH -j DROP