본문 바로가기
IT/Linux

방화벽관리(firewalld)

by 혁클 2021. 4. 3.

 

방화벽(Firewall)

  • 네트워크의 외부로부터의 침입을 차단
  • 운영체제에 내장되어 있는 방화벽 기능
    • Packet Filtering: 전송된 패킷에 대한 허용/차단
    • 송신자/수신자 IP주소
    • 송신자/수신자 Port (TCP/UDP)

 

공격의 유형

  1. 서비스 거부 공격

DoS : Denial of Service

DDoS : Distributed DoS => Zombie System(Botnet)

DRDoS : Distributed Reflection DoS

 

   2. 스캐닝. 스캐닝

 취약한 부분 탐색

 

   3. 네트워크 취약점 사용한 공격

 

 

보안 설루션

  • 방화벽 (L2,3,4방 화벽, L7방화벽-웹방화벽)
  • IDS(Intrusion Detection System)
  • IPS(Intrusion Prevention System)
  • UTM(Unified Threat Management)



리눅스 방화벽

  • 리눅의 기본 모듈 중 netfilter 모듈이 방화벽 기능을 담당
  • CentOS : ipchain → iptables → firewalld
  • Ubuntu : ipchain → iptables → ufw

 

firewalld

  • systemd와 함께 도입
  • 사전에 정의된 영역(Zone)
  • 사전에 정의된 서비스(Service)
  • 주요 파일들
    • /usr/lib/firewalld : 기본 파일들
    • /etc/firewalld : 현재 사용 중인 설정 파일들

 

firewalld 설정

  • 설정 분류
    • Runtime : 실행 중 설정(현재 상태의 방화벽 구성)
    • Permanent : 재시작 시 적용되는 영구 설정
  • 사전에 정의된 영역 (Pre-defined Zones)
    • 네트워크 인터페이스, 송신자(Source) 등의 조건으로 영역에 바인딩
    • 특정 영역에 바인딩되지 않은 패킷 : 기본 영역 (default = public)
    • # man firewalld.zones (firewalld의 각 영역 설명)

 

ICMP - Internet Control Message Protocol

  • IP 프로토콜의 부족한 기능을 보완
  • 대상 호스트의 연결 가능 여부 체크
    • ping echo request: type 8 code 0
    • ping echo reply : type 0 code 0
  • 접근 불가능 시 불가능 사유 통보
    • icmp destination unreachable : t 3 c 0~13

 

ping - 대상 호스트의 생존 여부 체크(Echo Request)

tracert, traceroute, tracepath : TTL 값을 조정하여 전송하며 중간 단계에 있는 라우터의 IP를 확인

 

IP 프로토콜 - TTL(Time To Live, 수명)

  • 패킷의 수명으로, 라우터를 통과할 때마다 1씩 감소
  • TTL 값이 0이 되면 패킷은 소멸
  • 패킷을 소멸시키면서 TTL 만료되었다는 ICMP 메시지를 송신자에게 전달
  • 주요 시스템 별 TTL 기본값
    • 리눅스/유닉스 : 64
    • 윈도 : 128
    • Cisco : 255

 

DMZ(DeMilitarized Zone)

  • 외부에서 접근이 가능한 영역
  • 외부 방화벽 - DMZ - 내부 방화벽 - 내부 사설 네트워크

 

==================================================

 

firewalld-cmd 명령어

  • firewall-cmd <설정 옵션> <파라미터> : 런타임 설정
  • firewall-cmd <설정 옵션> <파라미터> --permanent : 영구 설정
  • 방화벽 설정 상태 조회
    • --set-default-zone : 기본 영역 변경
    • --zone= : 특정 영역 지정하여 조회
    • --get-default-zone : 현재 기본 영역 표시
    • --get-active-zones : 현재 활성화되어 있는 영역 정보
    • --list-all : 현재 사용 중인 영역 설정 확인
    • --list-all-zones : 모든 영역 설정 확인
  • firewall-cmd --reload : 방화벽의 런타임 설정 삭제 및 영구 설정 로드. 다른 옵션과 함께 사용 불가
  • firewall-cmd --runtime-to-permanent: 현재 런타임 설정을 영구 설정으로 저장
  • 설정 옵션
    • 인터페이스 : --add-interface=[인터페이스 이름] --zone=[변경할 영역]
    • 송신자 : --add-source=[송신자 네트워크 정보] --zone=[변경할 영역]
    • 인터페이스 : --change-interface=[변경할 인터페이스 이름] --zone=[변경할 영역]
    • 송신자 : --change-source=[송신자 네트워크 정보] --zone=[변경할 영역]
    • 인터페이스 : --remove-interface=[변경할 인터페이스 이름] 
    • 소스 : --remove-source=[송신자 네트워크 정보]
    • 서비스 이름: --add-service=[서비스 이름]
      • --zone=[특정 영역] : 특정 영역 설정 추가
    • 기본적으로 명시되어 있지 않은 항목은 차단
    • 허용된 서비스 차단 : --remove-service=[삭제할 서비스]
    • 포트 번호/프로토콜 지정: --add-port=[포트번호]/[프로토콜]
    • 기본적으로 명시되지 않은 포트는 모두 차단
    • 허용된 포트 차단 : --remove-port=[포트번호]/[프로토콜]
    • firewall-cmd --add-forward-port=[RULE]
    • RULE : port=[외부 포트번호]:proto=[프로토콜]:toport=[보낼 포트번호]
    • 테스트: http://192.168.100.100:800/
    • 제거 : firewall-cmd --remove-forward-port=[RULE]
    • 영역 설정 생성
    • 영역 설정 변경
    • 영역 설정 삭제
    • 서비스 허용
    • 서비스 차단
    • 포트 허용
    • 포트 차단
    • 포트 포워딩
    • 리치 규칙(Rich Rule): 방화벽 동작을 더 구체적으로 설정할 수 있는 규칙



VPN(Virtual Private Network)

  • 우회(Proxy)
  • 외부에서 내부 네트워크 접속 시
  • Tor Network 관심 있는 사람은 검색~

 

사이트 차단 방식

  • DNS 차단 방식 : DNS 서버에서 차단 사이트 IP 정보 요청 시 warning의 주소를 전달 → 외부 DNS 사용 시 우회 가능 (8.8.8.8)
  • IP 차단 방식 : 사용하기 어려움. → 일부만 적용: 북한
  • HTTPS 차단방식 : HTTPS는 HTTP + SSL, SSL연결이 수립되고 나서 암호화된 통신으로 HTTP 연결, 단 SSL 연결과정에서 SNI(Server Name Indication) 정보는 평문으로 노출되어, 이 정보를 통해 차단 수행

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

'IT > Linux' 카테고리의 다른 글

부팅 문제 해결  (0) 2021.04.06
SELinux  (0) 2021.04.05
로그관리(rsyslog,journal)  (0) 2021.04.01
작업 스케줄러  (0) 2021.03.30
systemd  (0) 2021.03.29

댓글