방화벽(Firewall)
- 네트워크의 외부로부터의 침입을 차단
- 운영체제에 내장되어 있는 방화벽 기능
- Packet Filtering: 전송된 패킷에 대한 허용/차단
- 송신자/수신자 IP주소
- 송신자/수신자 Port (TCP/UDP)
공격의 유형
- 서비스 거부 공격
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) 정보는 평문으로 노출되어, 이 정보를 통해 차단 수행
*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.
댓글