1. iptables
▶ 리눅스의 대표적인 방화벽이며 IP와 PORT번호를 확인하여 접근을 허용하거나 차단한다.
1) port번호
[1] Well-Known Port
▶ 잘 알려진 포트를 말하며 0번~1023번 사이의 포트를 말한다
[2] Registered Port
▶ 업체나 어플리케이션 만든 회사의 소프트웨어에서 사용하는 포트를 말한다.
▶ 1024번~49151번 사이의 포트를 말한다.
[3] Dynamic Port
▶ 동적으로 할당되는 임의의 포트번호이다.
▶ 49152번~65535번 사이의 포트를 말한다.
※ 웹서비스가 80번을 사용하지만 꼭 80번 포트를 웹서비스포트로 사용할 이유는 없다.
즉, 통상적으로 그렇게 많이 쓴다는 말이다.
2) 옵션
▶ -A(append) : 새 규칙 추가
▶ -D(delete) : 규칙 제거
▶ -C(check) : 패킷 테스트
▶ -I(insert) : 새 규칙 삽입
▶ -R(replace) : 규칙 변경
▶ -L(list) : 규칙 출력
▶ -F(flush) : 규칙 초기화
▶ -Z(zero) : 모든 체인의 패킷과 바이트 카운터의 값을 0으로 변경
▶ -N(new) : 새로운 체인 생성
▶ -X(delete chain) : 체인 삭제
▶ -P(policy) : 정책 변경
▶ -p(protocol) : 정책을 적용할 프로토콜
▶ -m(module) : 정책에 사용할 모듈
▶ -s(source) : 송신자 IP주소
▶ -d(destination) : 수신자 IP주소
▶ -i(interface) : 적용할 인터페이스
▶ -j(jump) : 룰을 적용할 타겟
▶ -y(syn) : syn 차단
▶ -f(fragment) : 두 번째 이후 조각에 대해 규칙 지정
[1] 규칙확인
tip. 영상 내 소스는 복사가 가능하며, 일시정지 및 영상위치를 이동할 수도 있습니다.
▶ [iptables -L] 명령어로 방화벽 규칙을 확인할 수 있다.
[2] 규칙추가
▶ [iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT] 명령어로 수신자의 80번 포트로 들어오는 TCP패킷을 허용하는 규칙을 추가한다.
+ 추가지식 방화벽 룰 설정
- 방화벽 룰 설정시에는 정책 순서가 중요하다.
- 하나의 네트워크대역을 전부 차단하는 규칙을 추가한 후 그 중 일부만 허용하는 규칙을 추가할 경우
- 앞에서 이미 차단됬기 때문에 허용하려고 해도 무시된다.
- 그래서 보통 허용할 규칙을 정하고 나머지를 차단하는 방법을 사용하며 이러한 방식을 화이트리스트 방식이라 한다.
[3] 체인생성 및 규칙추가
▶ [iptables -N ICMP] 명령어로 ICMP체인을 생성한다.
▶ [iptables -A INPUT -p icmp -j ICMP] 명령어로 ICMP를 위한 정책을 추가한다.
▶ [iptables -A ICMP -p icmp --icmp-type 8 -j DROP] 명령어로 ICMP체인에 icmp echo-request패킷을 차단하는 규칙을 추가한다.
+ 추가지식 ICMP TYPE
- 에코 응답(Echo Reply) : Type 0
- 목적지도달불가(Destination Unreachable) : Type 1
- 너무 큰 패킷(Packet Too Big) : Type 2
- 시간 초과(Time Exceeded) : Type 3
- 매개변수 문제(Parameter Problem) : Type 4 등
- 재지정(Redirect) : Type 5
- 에코 요청(Echo Request) : Type 8
- 시간 초과(Time Exceeded) : Type 11
- 매개변수 문제(Parameter Problem) : Type 12
[4] 방화벽 정상동작 확인(공격자)
▶ 희생자에게 icmp패킷을 전송하지만 응답이 오지 않음을 확인할 수 있다.
[5] ICMP 패킷 확인(공격자)
▶ 확인해보면 전송은 되지만 응답이 없는 것을 확인할 수 있다.
[6] 도커컨테이너를 이용한 웹서버생성
▶ [sudo docker run -i -t -p 7777:80 --name webSite ubuntu:16.04] 명령어를 이용하여 호스트의 7777포트로 들어오면 webSite 컨테이너의 80번 포트로 연결시켜준다.
[7] 웹서버 접속확인
▶ 192.168.234.103:7777 주소로 정상접속이 되는 것을 확인할 수 있다.
[8] 웹서버컨테이너 접속차단 규칙추가
[9] 규칙삭제
▶ [iptables -D INPUT 4] 명령어를 입력하면 INPUT체인에 있는 4번째 규칙이 삭제된다.
[10] 재부팅 시 정책유지
▶ [iptables-save > /etc/iptables.rules] 명령어를 이용하여 현재 저장된 규칙을 백업해 놓는다.
▶ [vi /etc/network/interfaces] 명령어로 편집기를 연 후 [iptables-restore < /etc/iptables.rules] 명령어를 이용하여 저장된 규칙을 방화벽 룰에 입력한다.
▶ 즉, 네트워크 인터페이스가 켜지면서 방화벽 룰도 같이 켜지게 된다.
댓글