Skip to content

[Firewall] IPv4, IPv6 에 따른 차이 발생 상황 정리 #46

@ish-hcc

Description

@ish-hcc

전체 Source 혹은 전체 Destination에 대한 포트 Inbound/Outbound 설정을 할 경우
IPv4 (0.0.0.0/0)와 IPv6 (::0) 간의 차이가 존재하여 이슈를 남깁니다.

Linux

  • IPv4, IPv6 테이블을 따로 관리

    • IPv4: iptables
    • IPv6: ip6tables
  • iptables로 추가한 Rule은 ip6tables에서 보이지 않음.

  • iptables의 경우 전체 Source 혹은 전체 Destination

    • 설정 가능 주소 ==> 0.0.0.0/0, ::0
    • 표시 주소 ==> 0.0.0.0/0
  • ip6tables의 경우 전체 Source 혹은 전체 Destination

    • 설정 가능 주소 ==> 0.0.0.0/0, ::/0
    • 표시 주소 ==> ::/0
  • 실행 가능 명령어들

 sudo ip6tables -A INPUT -p tcp --dport 4343 -s ::/0
 sudo ip6tables -A INPUT -p tcp --dport 4343 -s 0.0.0.0/0
 sudo iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 4343  -j ACCEPT
 sudo iptables -A INPUT -s ::/0 -p tcp --dport 4343  -j ACCEPT
  • iptables / ip6tables 테스트 결과 비교 화면
    Image

iptables, ufw, firewalld 를 기준으로 테스트 중이며,

ufw 의 경우에는 전체 Source 혹은 전체 Destination에 대한 포트 Inbound/Outbound 설정을 할 경우
IPV4 테이블, IPv6 테이블 양측에 해당 포트에 대한 설정을 추가 합니다.

Image

firewalld는 최신 배포판들의 경우 nftables를 사용하여 iptables에서는 Rule이 표시되지 않는 것이 확인되어
해당 부분은 작업하여 표시될 수 있도록 추가하였습니다.

72349b6

Windows

윈도우에서의 방화벽은 기본 방화벽 및 프로그램 별로 종류가 다양하기 때문에 윈도우 방화벽만 확인하여 수집하고 있습니다.

윈도우 방화벽의 경우 (wf.msc)

  • IPv4, IPv6 구분 없이 통합으로 정책을 사용
  • Source 혹은 Destination이 전체가 아닌 특정 주소가 명시되어 있는 경우 해당 주소가 IPv4 주소인지, IPv6 주소인지만 구분

CSP 현황

우선 Azure 만 먼저 테스트 해보았습니다

Azure 기준으로 cb-spider 에서 Security Group 생성시 0.0.0.0/0 , ::0 주소가 모두 등록 가능합니다

Image

Azure Portal 에서 확인하였을때도 둘의 주소가 나눠서 관리가 가능합니다.

0.0.0.0/0 으로 부터 들어오는 8080-8090 TCP 허용

Image

::/0 으로 부터 들어오는 8080-8090 TCP 허용

Image

결론

cm-honeybee 에서는 우선 방화벽 Raw 데이터는 전체 주소에 대해서
IPv4 의 경우 0.0.0.0/0, IPv6의 ::0 로 표기하여 전체 방화벽 내용을 제공하고

정제된 데이터에서는 IPv4 데이터만 제공하는 것으로 하려고 합니다.

추후 IPv6에 대한 지원이 안정적으로 될 경우 정제된 데이터에도 IPv6 내용을 같이 제공하는 방향으로 하면 좋을 것 같습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions