SEC 보안 게이트웨이(10.147.20.30)

관문 도구 역할 사용 이유
1관문 UFW ip와 포트를 기준으로 트래픽 허용/차단 서버 접근 제한 위해
2관문 Rate Limiting 일정 시간에 많은 요청 → 차단
(초당 10번 이상 요청 → 429 에러로 차단) Dos 공격 방어 위해
서버 과부하 방지
fail2ban 로그인 일정 횟수 이상 실패 → 차단
(3번 실패 → 60초 차단) Brute Force 공격 방지
3관문 WAF 요청 내용 분석하여 공격 패턴 → 차단 웹 공격(SQL Injection, XSS 등) 차단
4관문 Auditd 서버에서 일어나는 행동 기록 보안 감사 및 사후 추적을 위해

UFW vs WAF

1관문: UFW

# 기본 정책
sudo ufw default deny incoming
sudo ufw default allow outgoing

# ZeroTier 통신 포트
sudo ufw allow 9993/udp

#22번 포트 허용 삭제
sudo ufw delete allow 22/tcp 

# 2222포트 전체 허용
sudo ufw allow 2222/tcp 

# 팀원별 ZeroTier IP
sudo ufw allow from 10.147.20.10  # ctrl (박성웅)
sudo ufw allow from 10.147.20.20  # haproxy (박수근)
sudo ufw allow from 10.147.20.30  # sec (이주희)
sudo ufw allow from 10.147.21.10  # core (조근희)
sudo ufw allow from 10.147.21.12  # node01 (조근희)
sudo ufw allow from 10.147.21.13  # node02 (조근희)
sudo ufw allow from 10.147.21.31  # cloud01 (김경훈)
sudo ufw allow from 10.147.21.32  # cloud02 (김경훈)
sudo ufw allow from 10.147.21.40  # vault (박수근)

허용되지 않은 22포트로 연결

허용되지 않은 22포트로 연결

2관문: Rate Limiting + fail2ban

# IP당 초당 10번 요청까지 허용
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;

# 연결 수 제한 (IP당 최대 20개 동시 연결)
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

# 초과 요청 응답 코드 (429 = Too Many Requests)
limit_req_status 429;
limit_conn_status 429;

------------------------------------------------------------------------

sudo vi /etc/fail2ban/jail.local #파일 수정
	 [sshd]
   enabled = true
   port    = 2222
   maxretry = 3
   bantime = 60s

for i in {1..50}; do curl -s -o /dev/null -w "%{http_code}\n" http://localhost/ & done; wait

for i in {1..50}; do curl -s -o /dev/null -w "%{http_code}\n" http://localhost/ & done; wait

3관문: WAF

ModSecurity: 여러 단서를 모아서 점수를 매기고 차단