리눅스 네트워크 보안을 위한 커널 옵션 설정
사용전에 sysctl -a 명령을 사용하여 적용가능한 목록을 확인
설정명이 OS마다 조금 다를수 있음
미리 기본 설정값을 확인
적용완료후 # sysctl -p 명령 실행
리부팅해주면 가능할경우 리부팅
1. 핑 차단하기
핑 차단은 iptables를 통해 차단할수 있지만 커널옵션 설정을 통한 설정도 가능
/etc/sysctl.conf 파일 설정
net.ipv4.icmp_echo_ignore_all=1
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/icmp_echo_ignore_all=1
또는 sysctl -w net.ipv4.icmp_echo_ignore_all=1
2. 브로드캐스트 핑 차단
브로드캐스트로 들어오는 ICMP들오어오는 패킷으로 인하여 발생하는 트래픽을 방지하기 위해
/etc/sysctl.conf 파일 설정
net.ipv4.icmp_echo_broadcasts=1
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/icmp_echo_broadcasts=1
또는 sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
3. TCP SYN Flooding 공격 차단
과도한 SYN 패킷으로 인하여 서버의 엄청난 트래픽을 유발 시켜 서버너 네트워크를 다운시키는
서비스 거부 공격을 커널 차원에서 차단하는데 효과적
/etc/sysctl.conf 파일 설정
net.ipv4.tcp_syncookies=1
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/tcp_syncookies=1
또는 sysctl -w net.ipv4.tcp_syncookies=1
4. 아이피 스푸핑(IP Spoofing) 악용 차단
자신의 네트워크가 아이피 스푸핑 공격에 악용되지 않도록 하기 위해
/etc/sysctl.conf 파일 설정
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.lo.rp_filter=1
net.ipv4.conf.eth0.rp_filter=1
net.ipv4.conf.default.rp_filter=1
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/conf/all/rp_filter=1
# sysctl -w /proc/sys/net/ipv4/conf/lo/rp_filter=1
# sysctl -w /proc/sys/net/ipv4/conf/eth0/rp_filter=1
# sysctl -w /proc/sys/net/ipv4/conf/default/rp_filter=1
또는
# sysctl -w net.ipv4.conf.all.rp_filter=1
# sysctl -w net.ipv4.conf.lo.rp_filter=1
# sysctl -w net.ipv4.conf.eth0.rp_filter=1
# sysctl -w net.ipv4.conf.default.rp_filter=1
5. 세션 종료 시간 설정
TCP 세션 유지할 시간 조절
FTP나 ssh 접속시 오랫동안 세션을 유지할 수 없도록 시간을 조절해 줄수 있다.
기본값은 60초 이다
/etc/sysctl.conf 파일 설정
net.ipv4.tcp_fin_timeout=30
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/tcp_fin_timeout=30
또는 # sysctl -w net.ipv4.tcp_fin_timeout=30
6. TCP 연결유지(Keep Alive) 시간 조절
기본값은 7200초(2시간)이며, 네트워크 부하를 줄이기 위해서는 시간을 줄여주는것이 좋다.
/etc/sysctl.conf 파일 설정
net.ipv4.tcp_keepalive_time=1800
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/tcp_keepalive_time=1800
또는 # sysctl -w net.ipv4.tcp_keepalive_time=1800
7. 서버 날짜 정보 유출 방지
외부 네트워크에서 서버의 날짜 정보를 유출할수 업도록 함
/etc/sysctl.conf 파일 설정
net.ipv4.tcp_timestamps=0
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/tcp_timestamps=0
또는 # sysctl -w net.ipv4.tcp_timestamps=0
8. IP 소스 라우팅(source routing) 차단하기
공격자가 소스 라우팅된 패킷을 이용하여 마치 신뢰받은 호스트처럼 위장할수 있는 위험성
으로부터 보호하기 위해
/etc/sysctl.conf 파일 설정
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.lo.accept_source_route=0
net.ipv4.conf.eth0.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/conf/all/accept_source_route=0
# sysctl -w /proc/sys/net/ipv4/conf/lo/accept_source_route=0
# sysctl -w /proc/sys/net/ipv4/conf/eth0/accept_source_route=0
# sysctl -w /proc/sys/net/ipv4/conf/default/accept_source_route=0
또는
# sysctl -w net.ipv4.conf.all.accept_source_route=0
# sysctl -w net.ipv4.conf.lo.accept_source_route=0
# sysctl -w net.ipv4.conf.eth0.accept_source_route=0
# sysctl -w net.ipv4.conf.default.accept_source_route=0
9. ICMP Redirect 차단하기(허용패킷 차단)
공격자가 ICMP redirect 패킷을 변조하여 되면 호스트의 라우팅 테이블을 변경하여 특정 경로로
리다이렉트시켜 트래픽을 유발시킬 수 있으므로, 이러한 공격을 차단하도록 ICMP 리다이렉트
허용기능을 차단시킴
/etc/sysctl.conf 파일 설정
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.lo.accept_redirects=0
net.ipv4.conf.eth0.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/conf/all/accept_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/lo/accept_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/eth0/accept_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/default/accept_redirects=0
또는
# sysctl -w net.ipv4.conf.all.accept_redirects=0
# sysctl -w net.ipv4.conf.lo.accept_redirects=0
# sysctl -w net.ipv4.conf.eth0.accept_redirects=0
# sysctl -w net.ipv4.conf.default.accept_redirects=0
10. ICMP Redirect 차단하기(발송 패킷 차단)
ICMP redirect 발송 패킷을 차단
/etc/sysctl.conf 파일 설정
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.lo.send_redirects=0
net.ipv4.conf.eth0.send_redirects=0
net.ipv4.conf.default.send_redirects=0
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/conf/all/send_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/lo/send_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/eth0/send_redirects=0
# sysctl -w /proc/sys/net/ipv4/conf/default/send_redirects=0
또는
# sysctl -w net.ipv4.conf.all.send_redirects=0
# sysctl -w net.ipv4.conf.lo.send_redirects=0
# sysctl -w net.ipv4.conf.eth0.send_redirects=0
# sysctl -w net.ipv4.conf.default.send_redirects=0
11. IP 스푸핑, 소스 라우팅, 리다이렉트된 패킷 로그 파일에 저장하기
IP 스푸핑, 소스 라우팅, 리다이렉트된 패킷등의 공격여부를 분석할수있도록 로그파일에 저장되도록
/etc/sysctl.conf 파일 설정
net.ipv4.conf.all.log_martians=0
net.ipv4.conf.lo.log_martians=0
net.ipv4.conf.eth0.log_martians=0
net.ipv4.conf.default.log_martians=0
sysctl 명령
# sysctl -w /proc/sys/net/ipv4/conf/all/log_martians=0
# sysctl -w /proc/sys/net/ipv4/conf/lo/log_martians=0
# sysctl -w /proc/sys/net/ipv4/conf/eth0/log_martians=0
# sysctl -w /proc/sys/net/ipv4/conf/default/log_martians=0
또는
# sysctl -w net.ipv4.conf.all.log_martians=0
# sysctl -w net.ipv4.conf.lo.log_martians=0
# sysctl -w net.ipv4.conf.eth0.log_martians=0
# sysctl -w net.ipv4.conf.default.log_martians=0