22P by xguru 9달전 | favorite | 댓글 4개
  • OpenGFW는 사용자가 직접 만들 수 있는 중국의 대형 방화벽(Great Firewall of China) 리눅스용 오픈 소스
  • "이제 권력을 가진 사람들만 재미를 누릴 필요는 없으며, 검열을 누구나 가능하게 해서 사람들에게 권력을 부여할 때임"
  • 집안의 라우터에 전문가처럼 필터링을 시작하고, 빅 브라더 역할을 해볼 수 있음
  • 주의 : 이 프로젝트는 아직 개발 초기 단계에 있으며, 사용자의 책임 하에 사용해야 함

기능

  • 전체 IP/TCP 재조립, 다양한 프로토콜 분석기(HTTP, TLS, QUIC, DNS, SSH, SOCKS4/5, WireGuard 등)
  • Shadowsocks와 같은 "완전히 암호화된 트래픽" 감지 기능
  • Trojan-killer를 기반으로 한 Trojan(프록시 프로토콜) 감지 기능
  • [작업 중] 기계 학습 기반 트래픽 분류
  • 전체 IPv4 및 IPv6 지원
  • 흐름 기반 멀티코어 부하 분산
  • 연결 오프로딩
  • expr 기반의 강력한 규칙 엔진
  • 핫-리로드 가능한 규칙(SIGHUP 신호로 리로드)
  • 유연한 분석기 및 수정기 프레임워크
  • 확장 가능한 IO 구현(NFQueue만 지원)
  • [작업 중] 웹 UI

사용 사례

  • 광고 차단
  • 부모의 자녀 통제
  • 악성 소프트웨어 보호
  • VPN/프록시 서비스의 남용 방지
  • 트래픽 분석(로그 전용 모드)
  • 독재자의 야망을 충족시키는 걸 도와줌(Help you fulfill your dictatorial ambitions)

사용법

빌드

  go build  

실행

  export OPENGFW_LOG_LEVEL=debug  
  ./OpenGFW -c config.yaml rules.yaml  

OpenWrt

  • OpenGFW는 OpenWrt 23.05에서 작동하는 것으로 테스트되었으며, 다른 버전에서도 작동할 것으로 예상되지만 검증되지 않음
  • 의존성 설치:
    opkg install kmod-nft-queue kmod-nf-conntrack-netlink

예제 설정

지원되는 동작

  • allow: 연결 허용, 추가 처리 없음
  • block: 연결 차단, 추가 처리 없음
  • drop: UDP의 경우, 규칙을 트리거한 패킷을 드롭하고, 같은 흐름의 미래 패킷 처리 계속. TCP의 경우 block과 동일
  • modify: UDP의 경우, 규칙을 트리거한 패킷을 주어진 수정자를 사용하여 수정하고, 같은 흐름의 미래 패킷 처리 계속. TCP의 경우 allow와 동일

ㅋㅋㅋㅋㅋ재밌네요

Hacker News 의견

  • 트위터에서 이 프로젝트를 조롱하는 사람들을 보았지만, 실제로 필요한 사람들도 있음. 제품이 홈 서버로 의심스러운 데이터를 전송하는 것을 차단하려고 시도했지만, Wireshark 앞에 앉아 모든 DoH 서버를 찾아내는 데 실패했기 때문. 이 프로젝트 덕분에 DoH를 사용하더라도 TLS 화이트리스트에 도메인을 추가하지 않고도 차단할 수 있는 날이 올 것으로 기대됨.
  • "완전히 암호화된 트래픽"이라는 용어는 맥락이 정확해야만 올바르게 이해될 수 있는 혼란스러운 용어임. "High Entropy" (HighE)와 같은 용어가 "완전히 암호화된" 것보다 더 구체적이라고 생각하는 개인적인 제안.
  • 이 프로젝트가 War Thunder처럼 되는 것이 재미있을 것임. 중국 공무원이 실제 GFW가 작동하는 방식과 다르다는 이유로 앙심을 품고 풀 리퀘스트를 하는 상황이 발생할 수도 있음.
  • 기능 목록의 "당신의 독재자 야망을 충족시켜줍니다"라는 항목이 하루를 즐겁게 만들어 줌
  • 이런 제품에 대한 진정한 사용 사례가 있음. 예를 들어, 학교에서는 최소한의 방해를 위해 이런 제품이 필요함. 그러나 맬웨어에 대한 걱정이 있음. 이 프로젝트 뒤에 있는 팀을 누가 검증할 수 있을까?
  • 어떤 것이 어떻게 작동하는지에 대한 모델을 가지는 것은 완화 방법을 탐색하는 데 매우 도움이 됨.
  • 이 프로젝트는 이란과 북한과 같은 정권에 대한 오픈소스 미사일과 같음. 이를 존경하지만, 일부 정부는 이를 남용하여 자유를 억압할 수 있음.
  • 중국 본토 외부의 사람들이 중국인들이 온라인에서 경험하는 것을 체험할 수 있도록 매우 적합함.
  • 이제 이란 정부는 이 기술을 사용하여 이란인들이 개방된 인터넷에 접근하는 것을 차단하기 위해 중국에 지불하는 비용을 중단할 수 있음. 오픈소스가 개방을 목표로 하면서도 완전히 반대의 결과를 가져올 수 있다는 것이 재미있음.
  • 이 프로젝트가 다른 독재 정부들이 구현 장벽을 낮추는 데 도움이 될 수 있다는 점에 대해 아무도 걱정하지 않는 것에 충격을 받음.

대한민국 정부(이)가 이 기술을 좋아합니다.
대한민국 정부(이)즐겨찾기에 추가했습니다.
대한민국 정부(이)가 새로운 SI 프로젝트가 생성되었습니다.
대한민국 정부(이)가 go 개발자를 해당 프로젝트(으)로 개발을 제시하였습니다.
대한민국 정부(이)가 새 업체(을)를 모집하였습니다.
컨소시엄이 모집되었습니다.
보도방(이)가 새 구인을 게시하였습니다.
go 개발자의 월 급여는 300만원 이며, 고용 기간은 3개월 입니다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ