대상 OS: Ubuntu Server 24.04 LTS
서버 보안에서 방화벽/SSH만 만지고 끝내면, 커널 네트워크 스택의 기본 동작은 그대로 남습니다.
특히 스푸핑(출발지 IP 위조), 라우팅 혼선, ICMP 리다이렉트 악용, SYN flood 같은 “네트워크 레벨” 공격은 서비스 설정만으로는 막기 어렵습니다.
Ubuntu Server 24.04에서는 sysctl로 커널 파라미터를 운영 표준으로 고정해 이런 공격면을 줄일 수 있습니다.
다만 sysctl은 잘못 건드리면 연결이 끊기거나, 특정 라우팅/터널/VPN 환경에서 장애를 만들 수 있으니 ‘점진 적용 + 검증’이 핵심입니다.
오늘은 운영 환경에서 자주 쓰는 네트워크 하드닝 항목을 묶어, 적용 파일/검증 커맨드/롤백까지 한 번에 정리합니다.
---
# Part 1) 적용 방식 선택: 한 번에 크게 말고, 파일로 관리하기
1) 왜 /etc/sysctl.conf에 바로 쓰지 않나
- 운영에서 변경 이력을 관리하기 어렵고, 다른 패키지/에이전트가 덮어쓰는 사고가 생깁니다.
- `/etc/sysctl.d/*.conf`로 목적별 파일을 만들면 충돌이 줄고 롤백이 쉽습니다.
2) 현재 적용 중인 sysctl 빠르게 확인
sudo sysctl -a 2>/dev/null | head -n 30
3) “내가 지금 무엇을 바꾸려는지” 기준선 저장(권장)
sudo sysctl -a 2>/dev/null > /root/sysctl.baseline.$(date +%F_%H%M%S).txt
---
# Part 2) 기본 하드닝 세트: 99-net-hardening.conf 만들기
1) 설정 파일 생성
- 아래 값들은 흔히 쓰는 보수적 하드닝입니다.
- 라우터/방화벽/프록시/NAT 게이트웨이 역할을 하는 서버라면 일부 값이 다를 수 있습니다(특히 rp_filter, redirect 관련).
sudo bash -lc 'cat >/etc/sysctl.d/99-net-hardening.conf /dev/null | head -n 3 || true
---
# Part 6) 롤백(되돌리기): 가장 빠른 복구 절차
1) 파일을 치우고 기본값으로 되돌리기
sudo mv /etc/sysctl.d/99-net-hardening.conf /etc/sysctl.d/99-net-hardening.conf.disabled.$(date +%F_%H%M%S)
sudo sysctl --system | tail -n 80
2) 특정 값만 즉시 되돌리기(긴급)
sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.default.rp_filter=0
- 긴급 복구용으로만 쓰고, 원인은 로그/라우팅을 확인해 재설계하는 게 좋습니다.
---
# Part 7) 운영 체크리스트(보안과 안정성의 균형)
1) 서버 역할을 먼저 구분
- 단순 애플리케이션 서버(대부분): 위 하드닝 세트가 잘 맞음
- 라우터/NAT/VPN 게이트웨이: rp_filter/redirect 관련은 재검토 필요
2) 변경은 작은 단위로
- 먼저 redirect/source_route/log_martians 같은 “안전한 범주”부터 적용
- rp_filter는 마지막에 적용하고, 트래픽 패턴이 복잡하면 loose(2)부터 시작
3) 로그를 남길 것
- 적용 파일은 `/etc/sysctl.d/`로 남기고
- 적용 시각/티켓 번호/적용 범위(서버군)를 함께 기록하면 사고 대응이 쉬워집니다.