인트라넷 IPv6 보안

인트라넷 IPv6 보안

이제 막 IPv6에 입문하기 시작했습니다.

먼저 내 참고 정보는 다음과 같습니다.

  • 컴캐스트 ISP 케이블 모뎀
  • Linux 방화벽/라우터/게이트웨이 머신
    • eth1은 Comcast에서 제공하는 IPv6 /128 주소를 사용하여 인터넷을 가리킵니다.
    • eth0은 Comcast에서 제공하는 IPv6/64 네트워크를 사용하여 내부 네트워크를 가리킵니다.
  • 내부 Linux 머신

지금까지 내부 컴퓨터의 보안은 주로 RFC1918 주소와 iptablesNAT를 사용하는 데 기반을 두었습니다. IPv6은 (분명히) NAT를 지원하지 않습니다.

ip6tables따라서 누군가가 내 linux-firewall-router에서 이를 구성하여 내가 나가는 액세스 권한을 충분히 확보할 수 있도록 하는 간단한 튜토리얼을 제공해주기를 바랍니다.

  • 설정된 연결만 입력됩니다.
  • 필요한 ICMPv6 연결만 허용하고, 불필요한 연결은 허용하지 않습니다.
  • knockd아마도 나만 허용하고 다른 누구도 인터넷에서 내부 시스템에 액세스할 수 없도록 하는 비슷한 방법이 있을 수 있습니다.
    • 이 질문에 대한 대답은 "SSH 인증서 및 모든 비밀번호 로그인 비활성화"라고 생각합니다.

안타깝게도 제가 아는 한 Amazon EC2는 IPv6를 지원하지 않습니다. 그렇지 않으면 이것이 내 구성을 테스트하는 좋은 방법이 될 것입니다.

답변1

IPv6은 (분명히) NAT를 지원하지 않습니다.

표준 제정자들은 IPv6 NAT에 강력히 반대하지만 이것이 사람들이 IPv6 NAT를 구현하는 것을 막지는 못합니다. IPv6 NAT를 IPv4 NAT보다 더 쉽게 또는 더 어렵게 만드는 근본적인 차이점은 없습니다. Linux에서 IPv6 NAT에 대한 주제는 논란의 여지가 있었지만 Linux 3.7에서 마침내 구현되었습니다.

ip6tables는 iptables의 ipv6 버전입니다. 기본 방화벽은 설정이 매우 간단합니다. 모든 것을 허용하고 특정 콘텐츠만 허용하며 방화벽 자체에 대한 액세스를 제한하지 않습니다.

  1. 순방향 체인 정책을 폐기하도록 설정합니다. (규칙을 새로 고치고 재설정할 때 자신을 활짝 열어 두지 않도록 항상 체인 정책을 폐기하도록 설정하는 것이 좋습니다.)
  2. 내부에서 외부로의 패킷을 허용하도록 전달 테이블에 규칙을 추가합니다.
  3. "설정됨" 및 "연결됨" 연결 추적 상태의 패킷을 허용하는 규칙을 전달 테이블에 추가합니다. 이를 통해 일반 인터넷에 연결하지 않고도 나가는 연결과 관련된 응답을 할 수 있습니다.
  4. 허용하려는 항목에 대한 규칙을 추가하세요.

SLACC와 같은 것이 허용되는지 확인해야 하므로 방화벽 상자 자체에 대한 액세스를 제한하려는 경우 상황이 조금 더 까다로워집니다. 에는 몇 가지 예가 있습니다.https://www.sixxs.net/wiki/IPv6_Firewalling

전달되는 트래픽을 제한하는 것이 아니라 라우터 자체에서 들어오고 나가는 트래픽을 제한하려는 경우 이웃 검색 및 이웃 광고를 허용해야 합니다.

나는 당신에게 필요한 것이 다음과 같다고 믿습니다(출처:https://www.cert.org/downloads/IPv6/ip6tables_rules.txt)

ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type redirect -m hl --hl-eq 255 -j ACCEPT

관련 정보