sysctl 명령어

linux 커널 파라미터 환경설정
/proc/sys와 관련
/etc/sysctl.conf


#sysctl a
#sysctl net.ipv4.ip_forward
#sysctl -w net.ipv4.ip_forward=1
 == #echo "1" > /proc/sys/net/ipv4/ip_forward
#sysctl -p /etc/sysctl.conf

 

- ping 응답 차단
 #sysctl -w net.ipv4.icmp_echo_ignore_all=1

- Broadcast로 ping request 차단
 #sysctl -w net.ipv4.icmp_echo_broadcasts=1

- Source Routing 차단
 #sysctl -w net.ipv4.conf.all.accept_source_route=0

- Blacklog 와 syscookie 설정
 #sysctl -w net.ipv4.tcp_max_sys_backlog=1024
 #sysctl -w net.ipv4.tcp_syscookies=1

- ICMP redirect 차단
 #sysctl -w net.ipv4.conf.all.send_redirect=0
 #sysctl -w net.ipv4.conf.all.accept_redirects=0

-ICMP spoofing 차단
 #sysctl -w net.ipv4.conf.all.rp_filter=1
 #sysctl -w net.ipv4.conf.all.log_martians=1
 #vi /etc/hosts.conf
 nospoof on

-TCP 연결 종료 시간 줄이기 (FIN-WAIT-2)
 #sysctl -w net.ipv4.tcp_fin_timeout=30

-Keep alive 시간 줄이기
 #sysctl -w net.ipv4.tcp_keepalive-time=1800 (30분)

-임시포트 늘리기 (128B이하는 1024~4999)
 #vi /etc/sysctl.conf
net.ipv4.ip_local_port_range=32768 61000
 #sysctrl -p /etc/sysctl.conf

최대 open file 수 늘이기
 #vi /usr/src/linux/include/liux/fs.h
 #define INR_OPEN 8192


sysctl -w net.ipv4.icmp_destunereach_rate=1 
# 1/100초 동안 받아들일 수 있는 "dest unreach (type 3) icmp"의 개수 

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 
# Broadcast로부터 오는 핑을 차단함(Smurt 공격을 차단함). 

sysctl -w net.ipv4.icmp_echoreply_rate=1 
# 1/100초에 반응하는 핑의 최대 숫자 

sysctl -w net.ipv4.icmp_echo_ignore_all=1 
# 모든 핑을 차단함 

sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1 
# IP 나 TCP 헤더가 깨진 bad icmp packet을 무시한다. 

sysctl -w net.ipv4.icmp_paramprob_rate=1 
# 1/100 초에 받아들이는 param probe packet의 수 

sysctl -w net.ipv4.icmp_timeexceed_rate=1 
# 1/100 초에 받아들이는 timeexceed 패킷의 수(traceroute와 관련) 

sysctl -w net.ipv4.igmp_max_memberships=1 
# 1/100초에 받아들이는 igmp "memberships"의 수 

sysctl -w net.ipv4.ip_default_ttl=64 
# 매우 복잡한 사이트에서는 이 값을 늘리는 것도 가능하지만 64로 두는 것이 
적당하며 더 늘렸을 경우에는 큰 문제가 발생할 수도 있다. 

sysctl -w net.ipv4.ip_forward=0 
# 게이트웨이 서버가 아닌 이상 패킷을 포워딩 할 필요는 없다. 

sysctl -w net.ipv4.ipfrag_time=15 
# fragmented packet이 메모리에 존재하는 시간을 15초로 설정한다. 

sysctl -w net.ipv4.tcp_syn_retries=3 
# 일정한 시간과 IP별로 보내고 받는 SYN 재시도 횟수를 3회로 제한한다. 이 
옵션은 스푸핑된(위조된) 주소로 오는 SYN 연결의 양을 줄여준다. 기본 값은 5
이며 255를 넘지 않아야 한다. 

sysctl -w net.ipv4.tcp_retries1=3 
# 무언가 문제가 있을 때 연결을 위해 재시도 할 횟수, 최소 값과 기본 값은 3이다. 

sysctl -w net.ipv4.tpc_retries2=7 
# TCP 연결을 끊기 전에 재시도할 횟수. 

sysctl -w net.ipv4.conf.eth0.rp_filter=2 
sysctl -w net.ipv4.conf.lo.rp_filter=2 
sysctl -w net.ipv4.conf.default.rp_filter=2 
sysctl -w net.ipv4.conf.all.rp_filter=2 
# 이 설정은 자신의 네트워크가 스푸핑된 공격지의 소스로 쓰이는 것을 차단한
다. 모든 인터페이스에서 들어오는 패킷에 대해 reply를 하여 들어오는 인터페
이스로 나가지 못하는 패킷을 거부한다. 

sysctl -w net.ipv4.conf.eth0.accept_redirect=0 
sysctl -w net.ipv4.conf.lo.accept_redirect=0 
sysctl -w net.ipv4.conf.default.accept_redirect=0 
sysctl -w net.ipv4.conf.all.accept_redirect=0 
# icmp redirects를 허용하지 않는다. 만약 ICMP Redirect를 허용할 경우에는 
공격자가 임의의 라우팅 테이블을 변경할 수 있게 되어 자신이 의도하지 않는 
경로, 즉 공격자가 의도한 경로로 트래픽이 전달될 수 있는 위험이 있다. 

sysctl -w net.ipv4.conf.eth0.accept_source_route=0 
sysctl -w net.ipv4.conf.lo.accept_source_route=0 
sysctl -w net.ipv4.conf.default.accept_source_route=0 
sysctl -w net.ipv4.conf.all.accept_source_route=0 
# 스푸핑을 막기 위해 source route 패킷을 허용하지 않는다. 소스 라우팅을 
허용할 경우 악의적인 공격자가 IP 소스 라우팅을 사용해서 목적지의 경로를 
지정할 수도 있고, 원래 위치로 돌아오는 경로도 지정할 수 있다. 이러한 소
스 라우팅이 가능한 것을 이용해 공격자가 마치 신뢰받는 호스트나 클라이언트
인 것처럼 위장할 수 있는 것이다. 

sysctl -w net.ipv4.conf.eth0.bootp_relay=0 
sysctl -w net.ipv4.conf.lo.bootp_relay=0 
sysctl -w net.ipv4.conf.default.bootp_relay=0 
sysctl -w net.ipv4.conf.all.bootp_relay=0 
# bootp 패킷을 허용하지 않는다. 

sysctl -w net.ipv4.conf.eth0.log_martians=0 
sysctl -w net.ipv4.conf.lo.log_martians=0 
sysctl -w net.ipv4.conf.default.log_martians=0 
sysctl -w net.ipv4.conf.all.log_martians=0 
# 스푸핑된 패킷이나 소스라우팅, Redirect 패킷에 대해 로그파일에 정보를 남
긴다. 

sysctl -w net.ipv4.conf.eth0.secure_redirects=0 
sysctl -w net.ipv4.conf.lo.secure_redirects=0 
sysctl -w net.ipv4.conf.default.secure_redirects=0 
sysctl -w net.ipv4.conf.all.secure_redirects=0 
# 게이트웨이로부터의 redirect를 허용하지 않음으로써 스푸핑을 막기 위해 설
정한다. 

sysctl -w net.ipv4.conf.eth0.send_redirects=0 
sysctl -w net.ipv4.conf.lo.send_redirects=0 
sysctl -w net.ipv4.conf.default.send_redirects=0 
sysctl -w net.ipv4.conf.all.send_redirects=0 
# icmp redirects를 보내지 않는다. 
sysctl -w net.ipv4.conf.eth0.proxy_arp=0 
sysctl -w net.ipv4.conf.lo.proxy_arp=0 
sysctl -w net.ipv4.conf.default.proxy_arp=0 
sysctl -w net.ipv4.conf.all.proxy_arp=0 
# proxy arp를 설정하지 않는다. 이 값이 1로 설정되었을 경우 proxy_arp가 설
정된 인터페이스에 대해 arp 질의가 들어왔을 때 모든 인터페이스가 반응하게 
된다. 

sysctl -w net.ipv4.tcp_keealive_time=30 
# 이미 프로세스가 종료되어 불필요하게 남아 있는 연결을 끊는 시간을 줄이도
록 한다. 

sysctl -w net.ipv4.tcp_fin_timeout=30 
# 연결을 종료시 소요되는 시간을 줄여준다(기본 설정값: 60). 

sysctl -w net.ipv4.tcp_tw_buckets=720000 
# 동시에 유지 가능한 timewait 소켓의 수이다. 만약 지정된 숫자를 초과하였
을 경우에는 timewait 소켓이 없어지며 경고 메시지가 출력된다. 이 제한은 단
순한 DoS 공격을 차단하기 위해 존재하는데, 임의로 이 값을 줄여서는 안되며 
메모리가 충분하다면 적절하게 늘려주는 것이 좋은데, 64M 마다 180000으로 설
정하면 된다. 따라서 256M일 경우에는 256/4=4 4*180000=720000 

sysctl -w net.ipv4.tcp_keepalive_probes=2 
sysctl -w net.ipv4.tcp_max_ka_probes=100 
# 간단한 DoS 공격을 막아준다. 
위의 모든 설정은 재부팅 후에 원래의 값으로 다시 초기화되므
로 /etc/rc.d/rc.local 에 두어 부팅시마다 실행하도록 하여야 한다. 그리고 
리눅스의 버전이 낮아 sysctl 명령어가 없는 경우에는 echo 0 or 1 
> /proc/sys/net/*와 같이 직접 /proc 이하의 값을 직접 설정해 주어도 된다. 
echo 명령어 역시 재부팅되면 초기화되므로 /etc/rc.d/rc.local 에 설정해 두
어야 재부팅후에도 적용이 된다. 아울러 레드헷 6.2 이상일 경우에
는 /etc/sysctl.conf 파일에 net.ipv4.tcp_syncookies=1과 같이 설정한 후 네
트워크를 재시작하는 방법도 있다.
 

'보안 > Network' 카테고리의 다른 글

스위치 보안정리 2  (0) 2011.07.13
스위치 보안정리 1  (0) 2011.07.13
라우터 디폴트 셋팅  (0) 2011.07.06
[Router] 라우터의 보안 관련 요소들  (0) 2011.07.06
[Router} Syn Flooding Defence- Router intercept mode  (0) 2011.07.06
AND