#author("2020-05-10T23:23:58+09:00","","") #author("2020-05-10T23:57:06+09:00","","") #navi2(Raspberry Pi/Ubuntu Server,toc,prev,next) ---- #contents ---- *Firewall 設定 [#i6409ce5] ** 必要なソフトウェアのインストール [#gadb83f7] +複数のIPをまとめて管理するために ipset をインストールします。 # apt install ipset +起動時に自動的に、ipset, iptables を反映するために netefilter-persistent をインストールします。 # apt install netfilter-persistent # apt install iptables-persistent # apt install ipset-persistent ** 設定 [#l51edd53] + &ref(firewall.tar.gz); をダウンロードし、任意のディレクトリに解凍する。 + 解凍後の conf 配下のファイルを適宜修正する。(各ファイルの説明は下記参照) + ipset 情報を生成するため、ipset-update を実行する。 # bin/ipset-update + iptables の設定を反映するため、iptables-update を実行する。 # bin/iptables-update + 自動起動できるようにするため all-save を実行する。 # bin/all-save *** zone.conf [#ob7f8fa2] 変更が必要な場所 # ホワイトリストの国(2文字形式)を設定する。(空白区切りのリスト) WHILTE_LIST_COUNTRIES=( "jp" ) # ブラックリストの国(2文字形式)を設定する。(空白区切りのリスト) BLACK_LIST_COUNTRIES=( "cn" "kr" "ru" "kp" ) # 信頼できるリモートアドレス # SSH アクセスを許可するアドレスを追加してください。 TRASTED_LIST=${ZONE_DIR}/trasted-list.zone IPSET_ZONE_FILES=("${IPSET_ZONE_FILES[@]}" "${TRASTED_LIST}") cat <<EOF > ${TRASTED_LIST} ~この部分に信頼できるIPアドレスを記載する。~ 49.212.93.121 EOF ***conf/rule.d/ 配下 [#x02bb1ac] 各スクリプトに必要な firewall 設定を記述する。 基本は、50_public.sh に、外部公開するポートの設定を追記していけば良い。 *ログ出力設定 [#x1c1f33f] **ログ出力先変更 [#ndb986de] /etc/rsyslog.conf # rule の初めの方に以下を記載する。 :msg,contains,"blacklist" -/var/log/iptables/blacklist.log :msg,contains,"stealth_scan_attack" -/var/log/iptables/stealthscan.log :msg,contains,"ping_of_death_attack" -/var/log/iptables/pingofdeath.log :msg,contains,"syn_flood_attack" -/var/log/iptables/synflood.log /etc/rsyslog.d/40-iptables.conf # 以下を記載する。 # iptables 用ログ :msg, contains, "blacklist" -/var/log/iptables/blacklist.log & stop :msg, contains, "stealth_scan_attack" -/var/log/iptables/stealthscan.log & stop :msg, contains, "ping_of_death_attack" -/var/log/iptables/pingofdeath.log & stop :msg, contains, "syn_flood_attack" -/var/log/iptables/synflood.log & stop ※/etc/rsyslog.conf に RULE がある場合は、RULE の下に記載すること。 **ログのローテーション [#z847fe1a] /etc/logrotate.d/rsyslog ~(省略)~ /var/log/messages /var/log/iptables/blacklist.log /var/log/iptables/stealthscan.log /var/log/iptables/pingofdeath.log /var/log/iptables/synflood.log { rotate 4 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } ** 設定反映 [#j9f2bc1d] mkdir /var/log/iptables chown root:adm /var/log/iptables service rsyslog restart ---- #navi2(Raspberry Pi/Ubuntu Server,toc,prev,next)