#!/usr/bin/env bash
#
# Firewall (firewalld) + fail2ban
#
# Phase 0 hafta 5 lab-notes'larından doğrulanacak

firewall_configure_firewalld() {
  log_info "→ firewalld zone + service'ler"
  # TODO Phase 0 hafta 5:
  # Public zone'a şu service'ler/portlar:
  # - http (80), https (443)
  # - ssh (22) — kaynak IP whitelist eklenebilir
  # - dns (53) — TCP + UDP (PowerDNS)
  # - ftp (21) + passive port range 40000-40100
  # - smtp/submission (25, 587) — Phase 2 mail
  #
  # firewall-cmd --permanent --add-service=http
  # firewall-cmd --permanent --add-service=https
  # ...
  # firewall-cmd --reload
  log_warn "  TODO: Phase 0 hafta 5 sonrası doldurulacak"
}

firewall_configure_fail2ban() {
  log_info "→ fail2ban jail'leri"
  # TODO Phase 0 hafta 5 + Epic 14:
  # /etc/fail2ban/jail.d/onoxsoft.conf:
  # - [sshd] enabled, bantime 30m, findtime 10m, maxretry 5
  # - [pure-ftpd] enabled, aynı parametreler
  # - [panel-login] custom filter — Laravel auth log'unu parse eder
  #     filter regex: /^.*\[(?P<TIMESTAMP>.*)\].*onoxsoft\.login_failed.*ip=<HOST>/
  log_warn "  TODO: Phase 0 hafta 5 + Epic 14 sonrası doldurulacak"
}
