vi 에서 읽기전용문서는 w! 하면 저장되 되고 저장후 문서를 닫을려면 wq! 하면된다.
그런데 /proc/sys/net/ipv4 안에 있는 문서들은 그런 방법으로 저장이 되지 않는다.
"/proc/sys/net/ipv4/icmp_echo_ignore_all"
WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?
와 같이 나오며 y를 누루면
"/proc/sys/net/ipv4/icmp_echo_ignore_all" E667: Fsync failed
Press ENTER or type command to continue
에러를 내면서 고쳐지지 않습니다.
아무리 수정을 할려고해도 안되죠? 올래 수정이 안됩니다. ㅎㅎ
vi /etc/sysctl.conf 를 열어서 맨 밑에 수정하고싶은 파일값을 추가해주면됩니다.
추할때 파일명앞에 꼭 net.ipv4. 을 앞에 넣어주고 파일명=값 하면됩니다. (/proc/sys/밑에 디렉토리정보)
net.ipv4.파일명=값
net.ipv4.icmp_echo_ignore_all = 1
그런다음에 sysctl -p 해서 바낀값을 고치기하면 됩니다.
다름방법으로 파일저장값을 고치는 방법은
sysctl -w net.ipv4.tcp_max_syn_backlog=값 이렇게만 해도 수정이 됩니다.
=================================================================================
이제 proc/sys/net/ipv4 안에 있는 파일들을 고쳐서 DDos 공격 방어에 도움이 되도록 고쳐봐요
위에서 말한 2가지 방법을 예문으로 고쳐볼게요.
또 echo "3" > /proc/sys/net/ipv4/tcp_retries1 이렇게 해도 되는데 이건 리부팅하면 지워져요
vi /etc/sysctl.conf 편집
net.ipv4.icmp_echo_ignore_all = 1
명령어로
sysctl -w net.ipv4.tcp_fin_timeout=15
sysctl -w net.ipcv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.tcp_keepalive_time=1800
sysctl -w net.ipv4.tcp_retries1=3
sysctl -w net.ipv4.tcp_retries2=7
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.ip_local_port_range='49152 65535'
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.ip_default_ttl=64
sysctl -w net.ipv4.ip_forward=0
sysctl -w net.ipv4.ipfrag_time=15
sysctl -w net.ipv4.tcp_syn_retries=3
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
적용 후에 리부팅 해주면 됩니다.