Linux/Linux실습

Linux_p #17

broom7946 2023. 3. 29. 17:24

           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하고 파일에 직접 적어도 된다.

 

->맨 아래에는 항상 reject

 

->백업

 

 

 

iptables -D INPUT 3

->INPUT 3번째줄 삭제

iptables -F INPUT

->INPUT 전체삭제

iptables-restore < /home/centos/iptables.ori

->복원

 

->3줄 REJECT

 

->위의 REJECT순서가 먼저이므로 외부에서 접속 불가(SSH, port:22 불가)

 

->TCP프로토콜만 빼고 받아준다

 


           웹 서버가 공격받고 있다면

iptables -I INPUT 1 -p tcp -dport 80,443 -j DROP

           DDos 공격인 Syn FloodingSmurf공격을 받고 있다면

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 명령어를 사용할 수 있다.

 

 

 

->이쪽 네트워크로부터

 

->여기에서 나가는 애들 허용

 

->으로부터 나가는 것을 막는다

 

->1234포트로 100으로 향해서 나가는 애들은 허용

 

->1000포트를 지나서 udp를 사용하는 프로토콜이 누구한테 향하든간에 허용

 

ufw delete 2

->2번줄 삭제

ufw insert 2 allow 22/tcp

->222번줄에 추가

ufw insert 3 allow from 192.168.100.100 to any

->100호스트에서 어디로 가든간에 가는 룰을 3번에

ufw logging on

->로그를 기억하기

 

 

->이위치에 컨프파일이 있으면 로그파일로 부른다

 

 

 

 

 

 

 

 

->로그 확인

 

->우분투에서 들어오면 로그 띄우고 드롭해라/    리젝트랑 드롭은 둘다 연결 거절하지만 리젝트는 로그o 드롭은 로그x