CentOS7.2にiptablesをセットアップした際のメモ。
CentOS6との相違点
- パッケージ名がiptablesからiptables-servicesに変わった
- firewalldがデフォルトで有効になっている模様 -> 両方はいらないのでiptablesを導入したら無効に
※ 本当はfirewalldの方が設定中も通信が途切れることが無いようなので、firewalldを使ったほうが良さそう。でも今回は勉強不足なところもあり、iptablesを利用する。
方針
- wirewalldではなくiptablesを利用する
- ipv6のネットワークを無効化する
- ip6tables.serviceを無効化する
- ipv4のフィルタリングだけしっかり設定する
インストール
$ sudo yum install iptables-services
設定
iptablesで使用する設定ファイルは以下の4つ。
- /etc/sysconfig/iptables-config
- /etc/sysconfig/iptables
- /etc/sysconfig/ip6tables-config
- /etc/sysconfig/ip6tables
xxx-configは利用モジュールの読み込みやサービス停止時の動作等を定義する。
xxtablesはフィルタリングのルールを主に定義する。
iptables-config
今回はFTPのパッシブモード等を利用しないため、デフォルトのまま使用する。
iptables
さくらのナレッジのサイトが参考にしつつ設定する。
/etc/sysconfig/iptables
# ポリシー
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
### デフォルトで許可
# ループバックを許可
-A INPUT -i lo -j ACCEPT
# セッション確率済みのパケットを許可
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNSの戻りパケットを許可
-A INPUT -p udp --sport 53 -j ACCEPT
# NTPの戻りパケットを許可
-A INPUT -p udp --sport 123 -j ACCEPT
# ICMP
-A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit-name t_icmp --hashlimit 1/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT
# SSH
-A INPUT -p tcp --tcp-flags SYN,RST,ACK SYN -m state --state NEW --dport 22 -m hashlimit --hashlimit-name t_sshd --hashlimit 1/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT
### 攻撃対策
# データを持たないパケットの接続を破棄する
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# SYNflood攻撃と思われる接続を破棄する
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# ステルススキャンと思われる接続を破棄する
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
### 各種サービス
# -A INPUT -p tcp --dport 80 -j ACCEPT
COMMIT
サービスの有効化・無効化
$ sudo systemctl start iptables.service
$ sudo systemctl enable iptables.service
$ sudo systemctl stop firefwalld.service
$ sudo systemctl disable firewalld.service
ipv6の停止はまた、別途。
参考サイト
CentOS7のiptablesとFirewalld
CentOS7, iptables設定でハマった
iptables インストールと設定
ファイアウォールiptablesを簡単解説~初心者でもよくわかる!VPSによるWebサーバー運用講座(4)
俺史上最強のiptablesをさらす
コピペから脱出!iptablesの仕組みを理解して環境に合わせた設定をしよう