Blog

  • dnscrypt-proxy with masking host

    • 회사 내부에 DNS 서버를 두는 것은 문제가 없다.
    • 로그에 host의 IP가 있는 것은 개인정보 침해 가능성이 있다.
    • dnscrypt-proxy 옵션으로는 이것을 해결할 수 없다.
    • 다른 대안을 찾자.

    Gemini 도움으로 다음과 같이 했다. 파이프를 이용하는 것이다. 다음과 같이 서비스를 등록한다. 내용에서 알 수 있는 것으로 dnscrypt-proxy 실행 이전에 로그를 받을 준비를 해야 한다.

    /etc/systemd/system/dnscrypt-log-anonymizer.service
    
    [Unit]
    Description=dnscrypt-proxy Log Anonymizer (FIFO Pipe Processor)
    # dnscrypt-proxy가 실행되기 전에 먼저 준비되어야 함
    Before=dnscrypt-proxy.service
    Wants=network.target
    
    [Service]
    Type=simple
    User=root
    # 서비스 시작 전 파이프 파일 존재 확인 및 자동 생성
    ExecStartPre=/bin/sh -c '[ -p /var/log/dnscrypt-proxy/query_pipe.log ] || mkfifo /var/log/dnscrypt-proxy/query_pipe.log'
    # 파이프 데이터를 실시간 마스킹하여 파일로 저장
    ExecStart=/bin/sh -c 'exec sed -u -E "s/host:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|\[[0-9a-fA-F:]+\])/host:0.0.0.0/" /var/log/dnscrypt-proxy/query_pipe.log >> /var/log/dnscrypt-proxy/queries_anonymized.log'
    Restart=always
    RestartSec=2s
    
    [Install]
    WantedBy=multi-user.target

    dnscrypt-proxy는 다음과 같이 수정해 둔다.

    /etc/systemd/system/dnscrypt-proxy.service
    
    [Unit]
    Description=DNSCrypt client proxy
    Documentation=https://github.com/DNSCrypt/dnscrypt-proxy/wiki
    After=network.target dnscrypt-log-anonymizer.service
    Wants=network-online.target
    Requires=dnscrypt-log-anonymizer.service
    
    [Service]
    Type=simple
    NonBlocking=true
    ExecStart=/usr/local/bin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
    Restart=on-failure
    RestartSec=5
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    CapabilityBoundingSet=CAP_NET_BIND_SERVICE
    StandardOutput=journal
    StandardError=journal
    
    [Install]
    WantedBy=multi-user.target
  • 리처드 휴어 주니어 “CIA 심리학”

    ‘불완전한 정보’와 ‘다수의 경합하는 가치와 목표’에 직면해 의사결정을 내리는 데 부적절한 전략들을 제시했다. (중략) 이런 전략들이 ‘의사결정자들의 대안적 정책 중에서 선택하는 방법’에 적용될 수 있다고 상정했지만, 대부분의 전략들은 ‘정보분석가들이 대안적 분석가설 중에서 선정하는 방법’에도 적용될 수 있다.

    • 만족하기 satisficing: 모든 대안들을 검토해 최고의 것을 결정하지 않고, 최초로 발견된 ‘충분히 괜찮아 보이는 대안’을 선택한다.
    • 증분주의 incrementalism: 기존의 명제를 극적으로 바꿀 필요성을 고려하지 않고, 미미한 변화가 수반되는 극소수 대안들에 집중한다.
    • 의견일치 consensus: 가장 많은 동의와 지지를 받을 만한 대안을 선택한다. 보스가 듣고 싶어 하는 것을 보고하는 것도 이 전략의 한 가지 버전이다.
    • 유추에 의한 추론: 종전의 오류를 회피하거나 종전의 성공을 반복할 가능성이 높은 대안을 선택한다.
    • ‘나쁜 대안’과 ‘좋은 대안’을 분별하는 일련의 원칙이나 격언에 의존하기.

    ‘반증 찾기’라는 기본적인 개념적 전략이 채택되지 말아야 하는 이유는 없다. 최상의 분석전략이 분석가들에게 요구하는 것은 “증거와 부합하는 것처럼 보이는 최초의 가설을 선택하도록 유도하는 만족하기 전략을 선택하지 말고, 자신이 선호하는 이론을 부인하는 정보를 찾으라”는 것이다.

    앤드루스는 “창의력이 높은 과학자들은 다음과 같은 호의적인 조건 아래에서만 더욱 창조적인 연구를 할 수 있다”는 사실을 발견했다.

    • 자신이 새로운 활동을 선도하는 책임을 맡고 있음을 인식할 때
    • 자신의 프로그램과 관련된 의사결정에 상ㄷ아한 통제권을 보유하고 있을 때
    • 자신의 전문가적 역할에 대해 안전함과 편안함을 느낄 때
    • 고위 관리자가 방해하지 않을 때
    • 인력, 예산, 연구 기간에 비해 프로젝트의 규모가 작을 때
    • 연구 프로젝트 외에 다른 활동에 종사할 때
  • NTP Mk. II

    w32tm /config /manualpeerlist:"10.10.10.1,0x8" /syncfromflags:manual /reliable:YES /update
    reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v MaxPosPhaseCorrection /t REG_DWORD /d 0xFFFFFFFF /f
    sc.exe config w32time start= auto
    sc.exe triggerinfo w32time start/networkon stop/networkoff
    net stop w32time
    net start w32time
    w32tm /resync /nowait

    기존 것에서 다른 스크립트들을 반영하여 수정함.