리눅스에서 방화벽은 iptables가 있다.

iptables 설정을 해보겠다.

리눅스 터미널에서 iptables -L 명령어로 현재
iptables 정책들을 확인할 수 있다.



(현재 설정)



아무 설정이 안되있는 것을 확인 할 수 있다.
Chain이란 규칙들 모음이라고 생각하면 된다.
기본적으로 3개의 Chain이 만들어져있다.
INPUT (들어오는 것에 대한)
FORWARD ( 포워딩하는 것에 대한)
OUTPUT (나가는것에 대한)

간단하게 INPUT , OUTPUT의 규칙을 하나씩 추가해보겠다.
80번 tcp로 들어오는 것과 80번 포트에서 나가는 것을 허용하는 것이다.



(설정 입력)



iptalbes 옵션
-A  : 새로운 규칙 추가
-D  : 기존 규칙 삭제
-C  : 패킷 테스트
-I  : 새로운 규칙 삽입
-R  : 기존의 규칙을 교체
-L  : 적용된 규칙 리스트 출력
-F  : 규칙 초기화
-Z  : 모든 체인의 패킷과 바이트 카운터 값을 0으로 변경
-N  : 새로운 체인을 만든다.
-X  : 체인 삭제
-P  : 기본 정책 변경

(소문자 옵션)
-p  : 정책을 적용할 패킷의 프로토콜
-m  : 정책에 사용할 모듈
-s  : 패킷의 발신지 IP주소
-d  : 패킷의 수신지 IP주소
-i  : 규칙에 적용할 인터페이스
-j  : 룰을 적용할 타겟
-y  : syn 패킷 거부
-f  : 두 번째 이후 조각에 대해 규칙 명시

규칙을 입력하고 확인해본다.




(적용된 리스트)



이렇게 적용된 규칙들은 껐다 켜지면 다 사라진다..

리붓하고
다시 확인해본 모습



(다 사라진 모습)



이제 정책을 저장해보겠다.
다시 규칙을 입력한다.
아래 규칙은 내부로 들어오는 트래픽 중 목적지 포트번호가 21, 25, 80, 110, 143, 443, 587번인 tcp프로토콜인 트래픽을 허용하고 내부로 들어오는 트래픽 중 목적지 포트가 53번인 udp 프로토콜 트래픽을 허용한다는 뜻이다.



(규칙 적용)





이번에는 OUTPUT 체인을 설정하겠다.
외부로 나가는 트래픽 중 출발지 포트가 21, 25, 80, 110, 143, 443, 587번인 tcp 트래픽을 허용하고 외부로 나가는 트래픽 중 출발지 포트가 53번인 udp 프로토콜 트래픽을 허용한다.


(OUTPUT 설정)





체인을 만들어보겠다.
ICMP 체인을 만든다.



(체인 생성)




그 체인 안에 ping 메세지를 차단하는 규칙을 적용해보겠다.



(ICMP 설정)





iptables -L 로
규칙들을 확인한다.



(적용된 모습)




이제 이 체인들을 저장한다.


(저장)



그리고 부팅될때 바로 적용이 될 수 있도록
vi 편집기로
/etc/network/interfaces 에 한줄 추가해준다.



(추가한 모습)




리붓 하고 다시
iptables -L을 한 모습이다.



(저장된 모습)



껏다 켜도 체인이 적용되있는 것을 확인 할 수 있다.

이 규칙들이 적용됬는지
ping 메세지를 보내보겠다.
(아까 ping 요청 메세지를 차단했으므로 ping 응답이 오지 않을 것이다.)



(ping 전송)




ping 메세지 응답이 오지 않는 것을 확인 할 수 있다.
고로
방화벽 설정이 잘 되었다는 것이다.
:)



'Linux' 카테고리의 다른 글

모의해킹(Kali) - DNS 서버 구축  (0) 2017.01.13

+ Recent posts