2008. 4. 2.

Linux /proc filesystem tuning

★/proc Filesystem tuning★

1. TCP SYN_Flooding 공격을 차단하기 위해 설정하는 tcp-syncookies값
기본값 "0"

[root@localhost proc]# sysctl -a | grep syncookies
net.ipv4.tcp_syncookies = 1
[root@localhost proc]# sysctl -w net.ipv4.tcp_syncookies=1
net.ipv4.tcp_syncookies = 1
[root@localhost proc]#


2. /proc/sys/kernel/에서 획득할 수 있는 몇가지 커널 정보들[root@localhost proc]# cat /proc/sys/kernel/hostname
localhost.localdomain 호스트네임 확인
[root@localhost proc]# cat /proc/sys/kernel/osrelease
2.6.11-1.1369_FC4 커널버젼 확인 uname -r 과 동일한 결과값을 나타냄
[root@localhost proc]# cat /proc/sys/kernel/ostype
Linux 운영체제명 확인
[root@localhost proc]# cat /proc/sys/kernel/sysrq
0 커널메직키 확인

3. /proc/sys/net/ipv4 에서 설정 가능한 서버보안
외부의ping 테스트 막기
[root@localhost proc]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
기본값은 "0"

4. Smurf 공격방지를 위한 broadcast 패킷 방지하기[root@localhost proc]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
기본값은 "0"

5. 세션 종료시간 조정TCP 세션이 종료된 후 얼마나 오랫동안 세션연결을 유지할 것인가를 정하는 값입니다.
예를 들어 FTP나 텔넷등을 사용하다가 다운이 되었을 경우TCP 세션연결을 계속 유지한다는 것은
무의미하기 때문에 가능한 이값을 낮추어 주는 것이 좋습니다.
[root@localhost proc]#echo 20 > /proc/sys/net/ipv4/tcp_fin_timeout
기본값은 "60"초

6. Tcp keepalive time 설정[root@localhost proc]# echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time
TCP 연결 상태를 계속 유지하기 위한 시간설정 가능한 20분이나 30분정도로 셋팅하는 것이 바람직.

7. 서버에서 IP포워딩 기능[root@localhost proc]# echo 1 > /proc/sys/net/ipv4/ip_forward
기본값은 "0"이며 서버가 라우팅 기능이 필요하다면 1로 바꾼다.

8. 서버의 날짜 정보 유출막기tcp_timestamps 값이 1로 설정되어 있을 경우에는 외부에서 서버의 날짜 정보를 확인 가능하게 됩니다. 즉 누군가가 서버의 해킹을 위해 날짜정보를 확인하는 것이 가능하다는 의미 입니다.
[root@localhost proc]# echo 0 > /proc/sys/net/ipv4/tcp_timestamps
0으로 설정해놓는 것이 바람직 합니다.

9. SYN_Flooding 공격 막기TCP 세션을 맻기 위해서는 패킷을 보낼 서버와 받을 서버간에 몇 단계 확인 작업을 거치게 되는데 SYN과 ACK 패킷을 이용하여 송수신 준비확인을 하게 됩니다.
[root@localhost proc]# cat /proc/sys/net/ipv4/tcp_syncookies
1
[root@localhost proc]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
1024

10. SYN 패킷을 받는 목적지 서버는 SYN과 ACK 패킷을 보낸 후에 소스서버에서 ACK 패킷을 보내기를 기다리게 됩니다. 이때 그냥 기다리는게 아니라 백로그큐(backlogqueue)가 허용하는 공간에 연결정보를 보관하게 됩니다. 이런상태가 수도없이 쌓이게 되면 목적지 서버의 특정 서비스가 정상적으로 이루어 지지않는 서비스 다운 상태가 됩니다.
해결방법은 백로그큐사이즈를 늘려주는 방법과 tcp_syscookies 값을 "1"로 설정하는 것이 그것입니다.

11. ICMP redirect의 변조된 패킷 차단(accept 패킷 차단설정)
[root@localhost proc]# echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirect
기본값은 "1"이며 이를 "0"으로 설정하시면 됩니다.

12. ICMP redirect의 변조된 패킷 차단(send 패킷 차단설정)
서버에서 나가는 ICMP redirect 패킷을 차단 위와 동일
[root@localhost proc]# echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects "0"으로 설정 하시면 됩니다.


13. DoS공격 source로 사용차단(IP스푸핑 방지하기)echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
"0"이 기본값이며 "1"로 설정 하도록 한다.
DOS공격시 서버의 IP를 확인해보면 대부분 해킹당한 서버의IP가 사용되고 있음을 알수 있습니다.
IP 스푸핑될 수 있는 가능성을 차단하여 Dos 공격의 Source IP로 사용될 수 있는 가능성을 차단 해야 합니다. 그러나 계층적 라우터가 있는곳이라던지 하는 연결이 계속 유지되어야 하는 곳은 이설정 하지 않는것이 좋다. 단독 서버가 있는곳이라면 추천할 만하다.

14. 스푸핑 패킷에 대한 로그남기기[root@localhost proc]# echo 1 > /proc/sys/net/ipv4/conf/default/log_martians
기본값은 "0"이며 "1"로 설정하면 됩니다.

15. Source Route 패킷 허용막기
소스라우팅을 허용하게 되면 IP Source Routing을 이용하여 해커는 마치 신뢰받는 호스트인것처럼 위장할 수 있습니다. 이를 막기 위하여 값을 0 으로 설정하면 됩니다.
[root@localhost proc]# echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route

이와 같은 설정들을 스크립트로 만들어서 for문으로 돌릴 수 있다.

#!/bin/sh
for ii in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo "0" > $ii
done;


- Source Route 패킷 허용막기
/proc/sys/net/ipv4/conf/all/accept_source_route
/proc/sys/net/ipv4/conf/bond0/accept_source_route
/proc/sys/net/ipv4/conf/default/accept_source_route
/proc/sys/net/ipv4/conf/eth0/accept_source_route
/proc/sys/net/ipv4/conf/eth1/accept_source_route
/proc/sys/net/ipv4/conf/eth2/accept_source_route
/proc/sys/net/ipv4/conf/eth3/accept_source_route
/proc/sys/net/ipv4/conf/lo/accept_source_route


# ii = 변수이다.








★보안을 위한 리눅스 커널값 설정하기★

댓글 없음: