Linux_p #17
iptables로 방화벽 설정하기
CentOS에서 방화벽 설정은
1) firewall-cmd --permanent --zone=public --add-port=80/tcp 식으로 해준 다음, firewall-cmd --reload 하거나, firewall-config 해서 설정한다.
2) iptables -A INPUT -p tcp --dport 22 -j REJECT 식으로 설정하거나
3) yum -y install iptables-services 하고 nano /etc/sysconfig/iptables하고 파일에 직접 적어도 된다.
iptables -D INPUT 3
->INPUT 3번째줄 삭제
iptables -F INPUT
->INPUT 전체삭제
iptables-restore < /home/centos/iptables.ori
->복원
웹 서버가 공격받고 있다면
iptables -I INPUT 1 -p tcp -dport 80,443 -j DROP
DDos 공격인 Syn Flooding과 Smurf공격을 받고 있다면
iptables -I INPUT 1 -p tcp --tcp-flags SYN,RST SYN -j DROP
iptables -I INPUT 2 -p tcp --tcp-flags ALL SYN,FIN -j DROP
(=iptables -I INPUT 2 -p tcp --tcp --syn -j DROP 해도됨)
->TCP 패킷의 헤더에는 RST, SYN, URG, … 등의 6개의 flags가 있다.
Dos 공격
1) 웹 서버에 1초에 100번 이상 HTTP 요청이 들어온다면 Dos 공격일 가능성이 크다. 이런 SYN 패킷을 다음처럼 막아주어야 한다.
iptables -I INPUT
2) 초당 50번 이상의 80번 포트로 연결요청을 해오는 패킷을 버린다면
iptables -I INPUT
3) 웹 서버에 분당 1,000개의 연결요청이 있고 이중 50개가 일시에 연결되고 있다면, 이 50여개 중 일부는 송수신 주소나 패킷 길이 이상 등으로 연결되지 못했을 수도 있지만 이런 패킷도 역시 Dos 공격일 가능성이 있다.
iptables -I INPUT 3 -p tcp --dport 80 -m limit -limit 1000/m --limit-burst 50 -j DROP 해주면 된다.
--ubuntu
Ubuntu에서의 ufw 기본설정은
ufw deny from 10.10.10.10 to any port 22 proto tcp 식이다.
allow, deny, reject, limit, delete, 그리고 insert 명령어를 사용할 수 있다.
ufw delete 2
->2번줄 삭제
ufw insert 2 allow 22/tcp
->22번 2번줄에 추가
ufw insert 3 allow from 192.168.100.100 to any
->100호스트에서 어디로 가든간에 가는 룰을 3번에
ufw logging on
->로그를 기억하기