Linux(CentOS) 방화벽 관리

박종현·2022년 5월 16일
0

리눅스(CentOS)

목록 보기
9/13

방화벽(Firewall) 관리

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

공격의 유형

  1. 서비스 거부공격
    • Dos : Denial of Service
    • DDos : Distributed Dos → Zombie System(Botnet)
    • DRDos : Distributed Reflection Dos
  2. 스캐닝
    • 취약한 부분 탐색
  3. 네트워크 취약점 사용한 공격

보안솔루션

  • 방화벽 (L2,L3,4 방화벽, L7 방화벽 - 웹방화벽)
  • IDS(Intrution Detection System)
  • IPS(Intrusion Prevention System)

리눅스 방화벽

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

firewalld

  • systemd와 함께 도입
  • 사전에 정의된 영역(Zone)
  • 사전에 정의된 서비스(Service)
  • 주요 파일들
    • /usr/lib/firewalld : 기본파일
    • /etc/firewalld : 현재 사용중인 설정 파일들
  • firewalld - config
    • 설정 분류
      • Runtime : 실행중 설정(현재 상태의 방화벽 구성)
      • Permanet : 재시작 시 적용되는 영구 설정
    • 사전에 정의된 영역 (Pre-defined Zone)
      • 네트워크 인터페이스, 송신자(Source) 등의 조건으로 영역에 바인딩
      • 특정 영역에 바인딩 되지 않은 패킷 : 기본영역(default - public)

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
  • ping - 대상 호스트의 생존여부 체크(Echo Request)
  • tracert, traceroute, tracepath : TTL 값을 조정하여 전송하며 중간단계에 있는 라우터의 IP 확인

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

  • IP Protocol Header

https://static.thegeekstuff.com/wp-content/uploads/2012/03/ip-header-2.png

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

DMZ(Demilitarized Zone)

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

firewall-cmd 명령어

  • firewall-cmd [설정옵션][파라미터] : 런타임 설정
  • firewall-cmd [설정옵션][파라미터] --permanent : 영구설정
  • 방화벽 설정 상태 조회
    • -get-default-zone : 현재 기본 영역 표시
    • -set default zone : 기본 영역 변경
    • -get-active-zone : 현재 활성화 되어 있는 영역 정보
    • -list-all : 현재 사용중인 영역 설정 확인
      • -zone=[영역] : 특정 영역 지정하여 조회
    • -list-all-zones : 모든 영역 설정 확인
  • firewall-cmd --reload : 방화벽의 런타임설정 삭제 및 영구설정 로드, 다른옵션과 함께 사용 불가
  • 설정 옵션
    • 영역 설정 생성
      • 인터페이스 : --add-interface=[인터페이스 이름] --zone=[변경할 영역]
      • 송신자 : --add-source=[송신자 네트워크 정보]
    • 영역 설정 변경
      • 인터페이스 : --change-interfac=[변경할 인터페이스 이름] --zone=[변경할 영역]
      • 송신자 : --change-source=[송신자 네트워크 정보] --zone=[변경할 영역]
    • 영역 설정 삭제 : --remove-interface=[변경할 인터페이스 이름]
      • 인터페이스 : --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)
  • 외부에서 내부 네트워크 접속시

사이트 차단방식

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

0개의 댓글