누군가 VPN 제공자의 출구 주소를 차단 목록에 올리고, 남용은 하루 동안 멈춘다. 그러다 우연히 같은 제공자를 쓰는 고객이 문의를 열고, 규칙은 누구도 설명했던 것보다 넓다는 것이 드러난다. 차단은 언제나 주소에 대한 결정이었다. 문제는 그것이 신원에 대한 결정으로 팔렸다는 점이다. 다음 규칙을 쓰기 전에 둘을 분리하십시오.

집행할 수 있는 규칙은 출발지 주소에 관한 것이다

방화벽 규칙은 패킷의 한 필드와 일치하고, 당신이 일치시키는 필드는 출발지 주소다. 그 규칙은 해당 주소에서 오는 트래픽을 안정적으로 거부할 수 있고, 이는 실제적이고 유용한 효과다. 그러나 누가 패킷을 보냈는지, 어떤 계정을 썼는지, 어제 문제를 일으킨 사람과 같은 사람인지는 알려 주지 못한다. 규칙을 쓰는 것은 쉽고, 그것이 무엇을 증명하는지 설명하는 단계에서 팀은 틀린다.

목표가 특정 행동을 멈추는 것이라면 주소 규칙은 마침 손에 있는 둔한 도구다. 목표가 사용자를 식별하는 것이라면 주소는 잘못된 근거이고 애플리케이션의 인증이 올바른 근거다. 규칙이 운영 환경에 들어가기 전에 어느 목표인지 정하십시오.

등록 정보 조회가 실제로 알려 주는 것

레지스트리 조회는 네트워크에 할당된 블록과 등록된 연락처를 돌려준다. 각 주소에서 실행되는 서비스를 나열하지 않고, 어느 테넌트가 요청을 보냈는지도 말하지 않는다. 작은 등록 블록에도 서로 다른 고객의 무관한 워크로드가 들어 있을 수 있다.

dig +short exit.example.net
whois 203.0.113.0 | head -40

출구 호스트 이름을 해석하면 그 순간 반환된 주소를 얻는다. 이는 목록이 아니라 한 시점의 사본이다. 한 응답을 호스팅 전체 접두사로 넓히는 것은 영향 범위가 더 넓은 별개의 결정이지, 같은 근거의 더 완전한 판본이 아니다. 관리되는 분류 피드를 쓴다면 그 레이블은 양방향 모두 알려진 오류가 있는 추측이다. 그것은 인증이 아니고 사람 목록도 아니다.

제안된 규칙이 조회 하나로 정당화된다면 멈추십시오. 사본은 범위 결정이 아니다.

공유 출구와 부수적 피해

공유 출구는 많은 사용자를 태우고, 공유 주소 공간는 하나의 공인 주소가 가입자 집단 전체를 대표할 수 있다는 뜻이다. 그것을 막으면 남용과 무관한 사람을 포함해 모두가 영향을 받는다. 주변 접두사로 넓히면 그 효과가 몇 배가 되고 무관한 서비스가 걸려들 가능성이 커진다. 부수적 피해는 나중에 적어 두는 부작용이 아니라 규칙 정의의 일부다.

패킷 근거에는 그 자체의 한계가 있다. 단독 SYN의 출발지 주소는 위조될 수 있으므로 패킷은 누가 무엇을 시작했는지 확립하지 못한다. 반쯤 열린 연결 상태는 핸드셰이크가 시작되었음을 보여 줄 뿐, 상대가 반사 공격의 범인이라는 뜻은 아니다. 끝난 연결은 애플리케이션 로그와 다른 것을 말하고, 인증된 세션은 둘 다 이름 붙이지 않는 계정을 이름 붙인다.

정책이 허용하는 가장 좁은 범위를 고르고, 실수로 누가 걸려들 것으로 예상되는지 적어 두십시오.

기록해야 할 근거와 사용자를 위한 되돌아올 길

모든 주소 규칙에는 그것을 정당화한 관찰, 날짜, 범위, 검토 시점이 따라야 한다. 그 기록이 있어야 다음 사람이 규칙이 왜 존재하는지 추측하는 대신 규칙을 좁힐 수 있다. 그것이 없으면 임시 차단이 영구 설비가 된다.

nft list ruleset | grep -n 203.0.113
ss -tn state syn-recv '( dport = :443 )'

차단을 배포하기 전에 정당한 사용자가 어떻게 접근을 되찾는지 정하십시오. 지원 대기열은 복구 계획이 아니다. 이의 제기 경로, 문서화된 예외, 다른 접근 방식은 모두 통하지만, VPN 사용을 그만두라고 말하는 것은 통하지 않는다. 네트워크 규칙은 행동에 맞는 통제와 짝을 이뤄야 한다. 속도 제한, 더 엄격한 계정 권한, 서비스 내부에서의 집행 같은 것들이다. VPN 출구 차단은 사용자 명부인 척하지 않고도 원치 않는 트래픽을 줄일 수 있다.

계속 눈여겨봐야 할 징후는 규칙이 실제로 하는 일과 사람들이 한다고 믿는 일 사이의 간격이다. 차단은 주소를 거부한다. 계정은 사용자를 식별한다. 그 두 문장을 티켓에서 분리해 두면 다음 규칙은 변호하기 쉬워진다.

관련 글