Kernel Parameter 조회하기
# cat /proc/sys/시스템정보명/세부정보명/설정파라미터명
Kernel Parameter 사용하기
* 커널 파라미터 설정파일 : /etc/sysctl.conf
* 커널 파라미터 설정 명령어
# sysctl [옵션] '변수 = 값'
(옵션)
a : 설정 확인
p : 파라미터 설정파일(/etc/sysctl.conf) 재적용
n : 변수 질의
w : 값 설정
명령어로 설정하는 예제)
# vi /etc/sysctl.conf 파일내 "net.ipv4.tcp_syscookies=1" 설정 후 # sysctl -p
또는
# sysctl -w net.ipv4.tcp_syscookies=1
※ echo 명령이나 vi 명령을 이용하여 '/etc/sysctl.conf' 파일에 적용하는 것을 권장한다.
-> 추후 변경이 용이하며 내용증적이 남기때문에...
[ 권장 Parameter 설정 ] - 'echo" 를 이용한 방법을 권장
* ping 신호 차단
- 모든 ping(icmp) 신호에 대한 응답 거부, [기본값 : 0]
# echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf |
* broadcast로 보내는 ping 신호 차단
- Broadcast 주소를 대상으로 한 ping 신호를 거부 (스머프 공격 방지)
# echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" >> /etc/sysctl.conf |
* TCP SYN Flooding 공격 차단
- dos공격 방지를 위한 커널 값에서 차단
# echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf |
* IP Spoofing 악용 차단
- dos 공격의 소스 IP로 사용될 가능성을 차단
# echo "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.conf [기본값 : 0] # echo "net.ipv4.conf.conf.rp_filter = 1" >> /etc/sysctl.conf # echo "net.ipv4.conf.lo.rp_filter = 1" >> /etc/sysctl.conf # echo "net.ipv4.conf.eth0.rp_filter = 1" >> /etc/sysctl.conf # sysctl -w net.ipv4.conf.conf.rp_filter=1 # sysctl -w net.ipv4.conf.lo.rp_filter=1 # sysctl -w net.ipv4.conf.eth0.rp_filter=1 |
* 세션 종료시간 지정
- 접속종료 후 세션 정보를 유지하는 시간(단위:초), [기본값 : 60]
# echo "net.ipv4.tcp_fin_timeout = 10" >> /etc/sysctl.conf |
* TCP Keep Alive 시간조절
- 접속 후 유후 대기 시간에 따른 세션 유지 가능 시간(단위:초), [기본값 : 7200]
# echo "net.ipv4.tcp_keepalive_time = 1800" >> /etc/sysctl.conf |
* 서버 날짜/시간 정보 유출방지
- 서버내 TimeServer 정보에 대한 유출 방지, [기본값 : 1]
# echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf |
* IP source routing 차단
- 라우팅 패킷을 허가 불가. 신뢰 호스트로 위장되는 것을 방지 (spoofing 공격 대비)
# echo "net.ipv4.conf.all.accept_source_route = 0" >> /etc/sysctl.conf # echo "net.ipv4.default.accept_source_route = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.eth0.accept_source_route = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.lo.accept_source_route = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.default.accept_source_route = 0" >> /etc/sysctl.conf # sysctl -w net.ipv4.conf.all.accept_source_route=0 # sysctl -w net.ipv4.default.accept_source_route=0 # 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 |
* ICMP Redirect 차단(수신 패킷 차단)
- 서버의 라우팅 경로를 확인하는 icmp redirect를 허용하지 않음
(임의로 라우팅 테이블을 테이블을 변경할 수 없도록한다.)
# echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf [기본값 : 1] # echo "net.ipv4.conf.eth0.accept_redirects = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.lo.accept_redirects = 0" >> /etc/sysctl.conf 또는 # sysctl -w net.ipv4.conf.eth0.accept_redirects=0 # sysctl -w net.ipv4.conf.lo.accept_redirects=0 |
* ICMP Redirect 차단(발송 패킷 차단)
- 서버에서 내보내는 icmp redirect 패킷을 허용하지 않음
# echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf [기본값 : 1] # echo "net.ipv4.conf.eth0.send_redirects = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.lo.send_redirects = 0" >> /etc/sysctl.conf # echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf # sysctl -w net.ipv4.conf.eth0.send_redirects=0 # sysctl -w net.ipv4.conf.lo.send_redirects=0 # sysctl -w net.ipv4.conf.all.send_redirects=0 |
* IP 패킷 로그 파일로 저장
- 스푸핑, 소스 라우팅, 리다이렉트된 패킷에 대한 로그 기록
# echo "net.ipv4.conf.all.log_martians = 1" >> /etc/sysctl.conf [기본값 : 0] # echo "net.ipv4.conf.eth0.log_martians = 1" >> /etc/sysctl.conf # echo "net.ipv4.conf.lo.log_martians = 1" >> /etc/sysctl.conf # echo "net.ipv4.conf.all.log_martians = 1" >> /etc/sysctl.conf # sysctl -w net.ipv4.conf.eth0.log_martians=1 # sysctl -w net.ipv4.conf.lo.log_martians=1 # sysctl -w net.ipv4.conf.all.log_martians=1 |
[ 기타 Parameter 설정 ]
* SYN flooding 공격 대응
- 정상적인 ACK 패킷이 아닌 경우 backlog queue 에 저장하지 않거나 Queue 사이즈를 늘임
# echo "net.ipv4.tvp_max_syn_backlog = 1024" >> /etc/sysctl.conf |
* Port 범위 설정
- Well-know port 를 제외하고 local port로 사용가능한 범위를 지정
# echo "net.ipv4.ip_local_port_range = 32768 61000" >> /etc/sysctl.conf |
* IP forwarding 방지
- 현재 서버를 통한 포워딩을 허용불가
# echo "net.ipv4.ip_forward = 0" >> /etc/sysctl.conf 또는 |
'Linux > Tip & Tech' 카테고리의 다른 글
가상화환경(xen, VMware 같은) 에서 DHCP 이용시 resolv.conf 초기화 방지 (0) | 2016.04.26 |
---|---|
Default Cron Jobs 확인내용 (0) | 2016.02.16 |
Linux NIC 정보 초기화 및 강제설정 (0) | 2014.06.13 |
CentOS YUM repository 서버로 만들기 (0) | 2014.04.11 |
DNS 구성시 Resource Record 를 알아보자. (0) | 2014.04.04 |