대상 OS: Ubuntu Server 24.04 LTS
sysctl은 커널 파라미터(특히 네트워크 스택)를 조정해 일부 공격/오동작을 완화하고, 호스트의 기본 동작을 보수적으로 만들 수 있습니다. 다만 sysctl은 만능 보안 도구가 아니라 “기본값 튜닝”이므로, 환경(라우터/멀티홈/VPN/컨테이너)에 따라 부작용이 생길 수 있습니다. 이 글은 Ubuntu 24.04에서 네트워크 관련 sysctl을 점검→정책화→안전 적용하는 실무 절차를 정리합니다.
0) 먼저 이해할 것: sysctl이 해결하는 것 / 못 하는 것
- 해결/완화: 일부 스푸핑/비정상 패킷 처리, SYN flood 완화, ICMP redirect 등 위험한 동작의 기본 억제
- 못 함: 애플리케이션 취약점 패치, 계정 탈취 방지(SSH 키 강제 등), L7 공격 방어(WAF/애플리케이션 레벨)
즉 sysctl은 “기본 체력”이고, 방화벽(UFW), SSH 하드닝, 업데이트 정책과 같이 가야 의미가 있습니다.
1) 현재 값 점검: 적용 전 ‘현 상태’를 기록
1) 핵심 네트워크 sysctl 값을 한 번에 확인
# rp_filter: 소스 검증(스푸핑/비대칭 라우팅과 관련)
sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.default.rp_filter
# SYN cookies: SYN flood 완화(기본적으로 켜는 편이 일반적)
sysctl net.ipv4.tcp_syncookies
# ICMP redirect 수신/송신 차단(라우터가 아닌 서버라면 차단 권장)
sysctl net.ipv4.conf.all.accept_redirects
sysctl net.ipv4.conf.all.send_redirects
sysctl net.ipv4.conf.default.accept_redirects
sysctl net.ipv4.conf.default.send_redirects
# source routing 차단(거의 항상 비활성 권장)
sysctl net.ipv4.conf.all.accept_source_route
sysctl net.ipv4.conf.default.accept_source_route
# martian log(이상 패킷 로그; 노이즈가 많을 수 있어 운영 정책 필요)
sysctl net.ipv4.conf.all.log_martians
2) ‘실제 라우팅/인터페이스’ 구조를 같이 확인
ip -br link
ip -br addr
ip route
왜 중요? 예를 들어 rp_filter는 비대칭 라우팅(멀티홈, 정책 라우팅, 일부 VPN)에서 정상 트래픽을 드롭할 수 있습니다. “서버가 라우터처럼 동작하는지”를 먼저 판단해야 합니다.
2) 권장(보수적) 값의 예시: 서버 단일 NIC/일반 서비스 기준
아래는 “대부분의 일반 서버”에서 보수적으로 가져가는 예시입니다. (특수 환경에서는 반드시 테스트 후 조정하세요.)
1) sysctl 정책 파일 생성(재부팅 후에도 유지)
sudo tee /etc/sysctl.d/99-netsec-hardening.conf >/dev/null