Блоклохыг тойрч гарахын тулд BGP-г тохируулах эсвэл "Би яаж айхаа болиод RKN-д дурласан бэ?"

За яахав, "хайртай" гэдэг бол хэтрүүлэг юм. Харин ч “хамтран оршиж чадсан”.

Роскомнадзор 16 оны 2018-р сарын 10-ны өдрөөс эхлэн "Домэйн нэрийн нэгдсэн бүртгэл, Интернет дэх сайтуудын хуудасны индексүүд, сайтуудыг тодорхойлох боломжийг олгодог сүлжээний хаягууд"-д Интернэт дэх эх сурвалжид хандах хандалтыг маш өргөн хүрээнд хааж байгааг та бүгд мэдэж байгаа. Интернетэд "ОХУ-д түгээхийг хориглосон мэдээллийг агуулсан" (текстэнд - зүгээр л бүртгэл) /XNUMX заримдаа. Үүний үр дүнд ОХУ-ын иргэд болон аж ахуйн нэгжүүд өөрсдөдөө шаардлагатай хууль ёсны эх үүсвэрээ бүрэн ашиглах боломжгүй болж зовж шаналж байна.

Би Хабрегийн тухай нийтлэлүүдийн нэгэнд бичсэн сэтгэгдэлдээ хохирогчдод тойрч гарах схемийг бий болгоход туслахад бэлэн гэдгээ хэлсний дараа хэд хэдэн хүн над дээр ирж, ийм тусламж хүссэн. Бүх зүйл тэдэнд тохирсон үед тэдний нэг нь нийтлэлд техникийг тайлбарлахыг зөвлөж байна. Хэсэг хугацааны дараа би сайт дээрх чимээгүй байдлаа эвдэж, төсөл болон Facebook-ийн нийтлэлийн хооронд завсрын зүйл бичихээр шийдсэн. habrapost. Үр дүн нь таны өмнө байна.

Disclaimer

ОХУ-ын нутаг дэвсгэрт хориглосон мэдээлэлд нэвтрэхийг хориглох арга замыг нийтлэх нь тийм ч хууль ёсны биш тул энэ нийтлэлийн зорилго нь ОХУ-ын нутаг дэвсгэр дээр зөвшөөрөгдсөн эх сурвалжид нэвтрэх боломжийг автоматжуулах аргын талаар ярих болно. ОХУ-ын нутаг дэвсгэр, гэхдээ хэн нэгний үйлдлийн улмаас таны үйлчилгээ үзүүлэгчээр дамжуулан шууд хандах боломжгүй. Мөн нийтлэлийн үйл ажиллагааны үр дүнд олж авсан бусад эх сурвалжид хандах нь харамсалтай гаж нөлөө бөгөөд нийтлэлийн зорилго биш юм.

Мөн би үндсэндээ сүлжээний архитектор учраас мэргэжил, мэргэжил, амьдралын замналаараа програмчлал болон Линукс миний давуу тал биш юм. Тиймээс, мэдээжийн хэрэг, скриптүүдийг илүү сайн бичиж, VPS дахь аюулгүй байдлын асуудлыг илүү гүнзгийрүүлэн боловсруулж болно. Таны санал хүсэлтийг хангалттай нарийвчилсан бол талархалтайгаар хүлээн авах болно - Би тэдгээрийг нийтлэлийн текстэнд нэмэхэд таатай байх болно.

TL, DR

Бид бүртгэлийн хуулбар болон BGP протоколыг ашиглан одоо байгаа хонгилоор дамжуулан нөөцөд хандах хандалтыг автоматжуулдаг. Зорилго нь хонгил руу хаагдсан нөөц рүү чиглэсэн бүх урсгалыг арилгах явдал юм. Хамгийн бага тайлбар, гол төлөв алхам алхмаар зааварчилгаа.

Үүнд танд юу хэрэгтэй вэ?

Харамсалтай нь энэ нийтлэл хүн бүрт зориулагдаагүй. Энэ техникийг ашиглахын тулд та хэд хэдэн элементүүдийг нэгтгэх хэрэгтэй:

  1. Та блоклох талбараас гадуур хаа нэгтээ линукс сервертэй байх ёстой. Эсвэл наад зах нь ийм сервертэй болох хүсэл эрмэлзэл - аз болоход энэ нь одоо жилд 9 доллар, магадгүй бага байх болно. Хэрэв танд тусдаа VPN туннель байгаа бол энэ арга тохиромжтой бөгөөд серверийг блоклох талбарт байрлуулж болно.
  2. Таны чиглүүлэгч хангалттай ухаалаг байх ёстой
    • таны дуртай ямар ч VPN клиент (би OpenVPN-ийг илүүд үздэг, гэхдээ энэ нь PPTP, L2TP, GRE+IPSec эсвэл туннелийн интерфейс үүсгэдэг бусад сонголт байж болно);
    • BGPv4 протокол. Энэ нь SOHO-ийн хувьд Microtik эсвэл Quagga эсвэл Bird суулгах боломжийг олгодог OpenWRT/LEDE/ижил төрлийн тусгай программтай ямар ч чиглүүлэгч байж болно гэсэн үг юм. Мөн компьютерийн чиглүүлэгч ашиглахыг хориглодоггүй. Аж ахуйн нэгжийн хувьд өөрийн хилийн чиглүүлэгчийн бичиг баримтаас BGP дэмжлэгийг хайж олоорой.
  3. Та Linux-ийн хэрэглээ, сүлжээний технологи, түүний дотор BGP протоколын талаар ойлголттой байх ёстой. Эсвэл ядаж ийм санаа авахыг хүсч байна. Би энэ удаад асар их зүйлийг хүлээн зөвшөөрөхөд бэлэн биш байгаа тул та өөрөө өөртөө үл ойлгогдох зарим талыг судлах хэрэгтэй болно. Гэсэн хэдий ч би мэдээжийн хэрэг, тайлбар дээр тодорхой асуултуудад хариулах болно, би цорын ганц хариулт өгөхгүй байх магадлалтай тул асуухаас бүү эргэлз.

Жишээн дээр юу ашиглаж байна

  • Бүртгэлийн хуулбар - -аас https://github.com/zapret-info/z-i 
  • VPS - Ubuntu 16.04
  • Чиглүүлэлтийн үйлчилгээ - шувуу 1.6.3   
  • Чиглүүлэгч - Микротик hAP ac
  • Ажлын хавтаснууд - бид root хэлбэрээр ажиллаж байгаа тул бүх зүйлийн ихэнх нь root-ийн үндсэн фолдерт байрлах болно. Тус тусад нь:
    • /root/blacklist - эмхэтгэлийн скрипт бүхий ажлын хавтас
    • /root/zi - github дээрх бүртгэлийн хуулбар
    • /etc/bird - шувууны үйлчилгээний тохиргооны стандарт хавтас
  • Чиглүүлэгч сервер болон туннелийн төгсгөлийн цэг бүхий VPS-ийн гадаад IP хаяг нь 194.165.22.146, ASN 64998; чиглүүлэгчийн гадаад IP хаяг - 81.177.103.94, ASN 64999
  • Хонгил доторх IP хаягууд нь 172.30.1.1 ба 172.30.1.2 байна.

Блоклохыг тойрч гарахын тулд BGP-г тохируулах эсвэл "Би яаж айхаа болиод RKN-д дурласан бэ?"

Мэдээжийн хэрэг та өөр ямар ч чиглүүлэгч, үйлдлийн систем, програм хангамжийн бүтээгдэхүүнийг ашиглаж, шийдлийг логиктой нь тааруулж болно.

Товчхондоо - шийдлийн логик

  1. Бэлтгэл ажил
    1. VPS авах
    2. Чиглүүлэгчээс VPS руу хонгил босгох
  2. Бид бүртгэлийн хуулбарыг хүлээн авч, тогтмол шинэчилдэг
  3. Чиглүүлэлтийн үйлчилгээг суулгаж, тохируулж байна
  4. Бид бүртгэл дээр үндэслэн чиглүүлэлтийн үйлчилгээний статик маршрутын жагсаалтыг гаргадаг
  5. Бид чиглүүлэгчийг үйлчилгээнд холбож, бүх урсгалыг хонгилоор илгээх тохиргоог хийдэг.

Бодит шийдэл

Бэлтгэл ажил

Интернетэд маш боломжийн үнээр VPS үйлчилгээ үзүүлдэг олон үйлчилгээ байдаг. Би одоог хүртэл жилийн 9 долларын үнэтэй сонголтыг олсон бөгөөд ашиглаж байна, гэхдээ та хэт их санаа зовдоггүй байсан ч өнцөг булан бүрт 1E/сарын олон сонголт бий. VPS сонгох асуудал нь энэ нийтлэлийн хамрах хүрээнээс хол байгаа тул хэрэв хэн нэгэн энэ талаар ямар нэг зүйл ойлгохгүй байвал сэтгэгдэл дээр асуугаарай.

Хэрэв та VPS-ийг зөвхөн чиглүүлэлтийн үйлчилгээнд төдийгүй түүн дээрх хонгилыг зогсооход ашигладаг бол энэ туннелийг дээшлүүлж, NAT-г тохируулах хэрэгтэй. Интернет дээр эдгээр үйлдлийн талаар олон тооны заавар байдаг тул би энд давтахгүй. Ийм хонгилд тавигдах гол шаардлага бол энэ нь таны чиглүүлэгч дээр VPS руу чиглэсэн хонгилыг дэмждэг тусдаа интерфейс үүсгэх ёстой. Ихэнх хэрэглэгддэг VPN технологиуд нь энэ шаардлагыг хангадаг - жишээлбэл, tun горимд байгаа OpenVPN төгс төгөлдөр юм.

Бүртгэлийн хуулбарыг авах

Жабраил "Бидэнд саад учруулсан хүн бидэнд тусална" гэж хэлсэн. Нэгэнт RKN хориотой нөөцийн бүртгэлийг үүсгэж байгаа тул энэ бүртгэлийг ашиглан бидний асуудлыг шийдэхгүй байх нь нүгэл болно. Бид github-аас бүртгэлийн хуулбарыг хүлээн авах болно.

Бид таны Линукс сервер рүү очиж, үндсэн контекст руу орно (судо су —) болон суулгаагүй бол git суулгана уу.

apt install git

Гэрийн лавлах руугаа очиж бүртгэлийн хуулбарыг гаргаж аваарай.

cd ~ && git clone --depth=1 https://github.com/zapret-info/z-i 

Бид cron шинэчлэлтийг тохируулсан (би үүнийг 20 минут тутамд нэг удаа хийдэг, гэхдээ та өөрийн сонирхсон интервалыг сонгож болно). Үүнийг хийхийн тулд бид эхлүүлнэ crontab -e мөн түүнд дараах мөрийг нэмнэ:

*/20 * * * * cd ~/z-i && git pull && git gc

Бид бүртгэлийг шинэчилсний дараа чиглүүлэлтийн үйлчилгээнд файл үүсгэх дэгээг холбодог. Үүнийг хийхийн тулд файл үүсгэнэ үү /root/zi/.git/hooks/post-merge дараах агуулгатай:

#!/usr/bin/env bash
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
    echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_run dump.csv "/root/blacklist/makebgp"

мөн үүнийг гүйцэтгэх боломжтой болгохоо бүү мартаарай

chmod +x /root/z-i/.git/hooks/post-merge

Бид дэгээнд хамаарах makebgp скриптийг хэсэг хугацааны дараа үүсгэх болно.

Чиглүүлэлтийн үйлчилгээг суулгах, тохируулах

Шувуу суулгах. Харамсалтай нь, Ubuntu-ийн агуулахад байршуулсан шувууны хувилбар нь шинэлэг байдлаараа Archaeopteryx-ийн ялгадастай харьцуулах боломжтой тул эхлээд програм хангамж хөгжүүлэгчдийн албан ёсны PPA-г системд нэмэх хэрэгтэй.

add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install bird

Үүний дараа бид шувууг IPv6-д нэн даруй идэвхгүй болгодог - энэ суулгацад бидэнд хэрэггүй болно.

systemctl stop bird6
systemctl disable bird6

Доорх нь шувууны үйлчилгээний минималист тохиргооны файл юм (/etc/bird/bird.conf), энэ нь бидний хувьд хангалттай (мөн санаагаа өөрийн хэрэгцээнд нийцүүлэн хөгжүүлэх, тохируулахыг хэн ч хориглодоггүй гэдгийг би дахин сануулж байна)

log syslog all;
router id 172.30.1.1;

protocol kernel {
        scan time 60;
        import none;
#       export all;   # Actually insert routes into the kernel routing table
}

protocol device {
        scan time 60;
}

protocol direct {
        interface "venet*", "tun*"; # Restrict network interfaces it works with
}

protocol static static_bgp {
        import all;
        include "pfxlist.txt";
        #include "iplist.txt";
}

protocol bgp OurRouter {
        description "Our Router";
        neighbor 81.177.103.94 as 64999;
        import none;
        export where proto = "static_bgp";
        local as 64998;
        passive off;
        multihop;
}

чиглүүлэгчийн ID - IPv4 хаяг шиг харагдах боловч нэг биш чиглүүлэгчийн танигч. Манай тохиолдолд энэ нь IPv32 хаягийн форматтай ямар ч 4 битийн тоо байж болох ч таны төхөөрөмжийн IPv4 хаягийг (энэ тохиолдолд VPS) яг зааж өгөх нь сайн хэлбэр юм.

Протокол шууд нь чиглүүлэлтийн процесстой ямар интерфейс ажиллахыг тодорхойлдог. Жишээ нь хэд хэдэн жишээ нэр өгсөн, та бусдыг нэмж болно. Та зүгээр л мөрийг устгаж болно; энэ тохиолдолд сервер IPv4 хаягтай бүх боломжтой интерфэйсийг сонсох болно.

Protocol static нь угтвар болон IP хаягуудын жагсаалтыг (энэ нь мэдээжийн хэрэг /32 угтвар) файлуудаас дараагийн зарлал руу ачаалдаг бидний ид шид юм. Эдгээр жагсаалт хаанаас ирснийг доор авч үзэх болно. IP хаягуудыг ачаалах нь анхдагчаар тайлбарлагддаг тул үүний шалтгаан нь их хэмжээний байршуулалттай байгааг анхаарна уу. Харьцуулбал, бичиж байх үед угтваруудын жагсаалтад 78 мөр, IP хаягийн жагсаалтад 85898 байна. Би зөвхөн угтваруудын жагсаалтаас эхэлж, дибаг хийхийг зөвлөж байна, мөн IP ачааллыг идэвхжүүлэх эсэхээс үл хамааран Чи чиглүүлэгчээ туршиж үзээд ирээдүйг та шийдэх болно. Тэд бүгд чиглүүлэлтийн хүснэгтэд 85 мянган оруулгыг амархан шингээж чаддаггүй.

protocol bgp нь үнэндээ таны чиглүүлэгчтэй bgp peering тохируулдаг. IP хаяг нь чиглүүлэгчийн гадаад интерфейсийн хаяг (эсвэл чиглүүлэгчийн талын хонгилын интерфейс), 64998 ба 64999 нь автономит системийн дугаарууд юм. Энэ тохиолдолд тэдгээрийг дурын 16 битийн дугаар хэлбэрээр өгч болно, гэхдээ RFC6996 - 64512-65534-д тодорхойлсон хувийн мужаас AS дугааруудыг ашиглах нь сайн туршлага юм (32 битийн ASN формат байдаг. гэхдээ бидний хувьд энэ нь мэдээжийн хэрэг хэтрүүлсэн). Тайлбарласан тохиргоонд чиглүүлэлтийн үйлчилгээ болон чиглүүлэгчийн бие даасан системүүдийн тоо өөр байх ёстой eBGP peering ашигладаг.

Таны харж байгаагаар үйлчилгээ нь чиглүүлэгчийн IP хаягийг мэддэг байх ёстой бөгөөд хэрэв танд динамик эсвэл чиглүүлэх боломжгүй хувийн (RFC1918) эсвэл хуваалцсан (RFC6598) хаяг байгаа бол танд гаднах холболтыг нэмэгдүүлэх сонголт байхгүй. интерфэйс, гэхдээ үйлчилгээ хонгил дотор ажилласаар байх болно.

Нэг үйлчилгээнээс та хэд хэдэн өөр чиглүүлэгч рүү чиглүүлэх боломжтой болох нь тодорхой байна - bgp протоколын хэсгийг хуулж, хөршийнхөө IP хаягийг өөрчлөх замаар тэдгээрийн тохиргоог хуулбарлахад хангалттай. Тийм ч учраас жишээ нь хонгилын гадна талд харагдах тохиргоог хамгийн түгээмэл гэж харуулж байна. Тохиргоон дахь IP хаягийг өөрчлөх замаар тэдгээрийг хонгилд оруулахад хялбар байдаг.

Чиглүүлэлтийн үйлчилгээний бүртгэлийг боловсруулж байна

Одоо бид өмнөх шатанд статик протоколд дурдсан угтвар, IP хаягуудын жагсаалтыг гаргах хэрэгтэй байна. Үүнийг хийхийн тулд бид бүртгэлийн файлыг аваад дараах скриптийг ашиглан өөрт хэрэгтэй файлуудаа хийнэ. /root/хар жагсаалт/makebgp

#!/bin/bash
cut -d";" -f1 /root/z-i/dump.csv| tr '|' 'n' |  tr -d ' ' > /root/blacklist/tmpaddr.txt
cat /root/blacklist/tmpaddr.txt | grep / | sed 's_.*_route & reject;_' > /etc/bird/pfxlist.txt
cat /root/blacklist/tmpaddr.txt | sort | uniq | grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" | sed 's_.*_route &/32 reject;_' > /etc/bird/iplist.txt
/etc/init.d/bird reload
logger 'bgp list compiled'

Үүнийг гүйцэтгэх боломжтой болгохоо бүү мартаарай

chmod +x /root/blacklist/makebgp

Одоо та үүнийг гараар ажиллуулж /etc/bird доторх файлуудын харагдах байдлыг ажиглаж болно.

Одоогийн байдлаар шувуу танд тохирохгүй байгаа байх, учир нь өмнөх шатанд та түүнээс хараахан байхгүй файлуудыг хайхыг хүссэн. Тиймээс бид үүнийг эхлүүлж, эхэлсэн эсэхийг шалгана:

systemctl start bird
birdc show route

Хоёрдахь тушаалын гаралт нь 80 орчим бичлэгийг харуулах ёстой (энэ нь одоохондоо, гэхдээ та үүнийг тохируулах үед бүх зүйл сүлжээг хаах RKN-ийн идэвх зүтгэлээс хамаарна) дараах байдалтай байна.

54.160.0.0/12      unreachable [static_bgp 2018-04-19] * (200)

баг

birdc show protocol

үйлчилгээ доторх протоколуудын статусыг харуулах болно. Чи чиглүүлэгчийг тохируулах хүртэл (дараагийн цэгийг харна уу) OurRouter протокол эхлэх төлөвт (Холбох эсвэл Идэвхтэй үе шат) байх бөгөөд амжилттай холболт хийсний дараа дээшлэх төлөвт (Тогтоосон үе шат) шилжих болно. Жишээлбэл, миний систем дээр энэ тушаалын гаралт дараах байдалтай байна.

BIRD 1.6.3 ready.
name     proto    table    state  since       info
kernel1  Kernel   master   up     2018-04-19
device1  Device   master   up     2018-04-19
static_bgp Static   master   up     2018-04-19
direct1  Direct   master   up     2018-04-19
RXXXXXx1 BGP      master   up     13:10:22    Established
RXXXXXx2 BGP      master   up     2018-04-24  Established
RXXXXXx3 BGP      master   start  2018-04-22  Connect       Socket: Connection timed out
RXXXXXx4 BGP      master   up     2018-04-24  Established
RXXXXXx5 BGP      master   start  2018-04-24  Passive

Чиглүүлэгчийг холбож байна

Хүн бүр энэ хөлийн даавууг уншихаас залхсан байх, гэхдээ зүрх сэтгэлээ аваарай - төгсгөл ойрхон байна. Түүнээс гадна, энэ хэсэгт би алхам алхмаар зааварчилгаа өгөх боломжгүй - энэ нь үйлдвэрлэгч бүрийн хувьд өөр байх болно.

Гэсэн хэдий ч би танд хэд хэдэн жишээ үзүүлж чадна. Гол логик нь BGP peering-ийг дээшлүүлж, манай хонгил руу (хэрэв бид p2p интерфэйсээр дамжуулан траффик илгээх шаардлагатай бол) эсвэл хэрэв урсгал ethernet рүү шилжих бол дараагийн хоп IP хаяг руу зааж, бүх хүлээн авсан угтваруудад nexthop-ийг оноох явдал юм.

Жишээлбэл, RouterOS дахь Mikrotik дээр үүнийг дараах байдлаар шийдсэн

/routing bgp instance set default as=64999 ignore-as-path-len=yes router-id=172.30.1.2
/routing bgp peer add in-filter=dynamic-in multihop=yes name=VPS remote-address=194.165.22.146 remote-as=64998 ttl=default
/routing filter add action=accept chain=dynamic-in protocol=bgp comment="Set nexthop" set-in-nexthop=172.30.1.1

мөн Cisco IOS дээр - үүнтэй адил

router bgp 64999
  neighbor 194.165.22.146 remote-as 64998
  neighbor 194.165.22.146 route-map BGP_NEXT_HOP in
  neighbor 194.165.22.146 ebgp-multihop 250
!
route-map BGP_NEXT_HOP permit 10
  set ip next-hop 172.30.1.1

Хэрэв ижил хонгилыг BGP peering болон ашигтай урсгалыг дамжуулахад хоёуланг нь ашиглаж байгаа бол дараагийн тохиргоог хийх шаардлагагүй бөгөөд протоколыг ашиглан зөв тохируулна. Гэхдээ хэрэв та үүнийг гараар тохируулсан бол энэ нь бас дордуулахгүй.

Бусад платформ дээр та тохиргоогоо өөрөө олох хэрэгтэй болно, гэхдээ танд ямар нэгэн бэрхшээл тулгарвал сэтгэгдэл дээр бичээрэй, би туслахыг хичээх болно.

Таны BGP сесс эхэлсний дараа, том сүлжээнүүдийн маршрутууд ирж, хүснэгтэд суулгаж, тэдгээрээс хаягууд руу урсгал урсаж, аз жаргал ойрхон болсны дараа та шувууны үйлчилгээ рүү буцаж очоод сүлжээг холбосон оруулгын тайлбарыг арилгахыг оролдож болно. IP хаягуудын жагсаалт, үүний дараа гүйцэтгэнэ

systemctl reload bird

Таны чиглүүлэгч эдгээр 85 мянган маршрутыг хэрхэн шилжүүлснийг хараарай. Залгуурыг нь салгаад юу хийхээ бодоход бэлэн байгаарай :)

Нийт

Цэвэр онолын хувьд, дээр дурдсан алхмуудыг хийсний дараа та шүүлтүүрийн системээс өмнө ОХУ-д хориглосон IP хаяг руу траффикийг автоматаар дахин чиглүүлэх үйлчилгээтэй боллоо.

Үүнийг мэдээж сайжруулж болно. Жишээлбэл, perl эсвэл python шийдлүүдийг ашиглан IP хаягуудын жагсаалтыг нэгтгэн дүгнэхэд маш хялбар байдаг. Үүнийг Net::CIDR::Lite ашиглан хийдэг энгийн Perl скрипт нь 85 мянган угтварыг 60 (мянган биш) болгон хувиргадаг боловч мэдээжийн хэрэг блоклогдсоноос хамаагүй илүү өргөн хүрээг хамардаг.

Энэ үйлчилгээ нь ISO/OSI загварын гурав дахь түвшинд ажилладаг тул бүртгэлд бүртгэгдсэн буруу хаягаар шийдвэрлэсэн тохиолдолд сайт/хуудсыг хаахаас аврахгүй. Гэхдээ бүртгэлийн хамт nxdomain.txt файл нь github-аас ирдэг бөгөөд энэ нь скриптийг хэд хэдэн удаа дарснаар Chrome дахь SwitchyOmega залгаасын хаягийн эх үүсвэр болж хувирдаг.

Хэрэв та зөвхөн интернет хэрэглэгч биш, мөн зарим эх сурвалжийг бие даан нийтлэх (жишээлбэл, вэбсайт эсвэл имэйл сервер энэ холболт дээр ажилладаг) бол шийдэл нь нэмэлт сайжруулалтыг шаарддаг гэдгийг тэмдэглэх нь зүйтэй. Чиглүүлэгчийн хэрэгслийг ашиглан энэ үйлчилгээнээс гарч буй траффикийг нийтийн хаяг руугаа хатуу холбох шаардлагатай, эс тэгвээс та чиглүүлэгчийн хүлээн авсан угтваруудын жагсаалтад багтсан эх үүсвэрүүдтэй холбогдох боломжгүй болно.

Хэрэв танд асуулт байвал асуугаарай, би хариулахад бэлэн байна.

UPD. Баярлалаа усан онгоц и ТерАнЮ Татаж авах хэмжээг багасгах боломжийг олгодог git-ийн параметрүүдийн хувьд.

UPD2. Хамтран ажиллагсад аа, би нийтлэлд VPS болон чиглүүлэгчийн хооронд хонгил хийх зааврыг нэмээгүй нь алдаа хийсэн бололтой. Үүнээс үүдэн маш олон асуулт гарч ирдэг.
Энэ гарын авлагыг эхлүүлэхийн өмнө та VPN туннелийг шаардлагатай чиглэлд тохируулж, түүний ажиллагааг шалгасан (жишээлбэл, урсгалыг анхдагчаар эсвэл статик байдлаар эргүүлэх замаар) гэдгийг би дахин нэг удаа тэмдэглэх болно. Хэрэв та энэ үе шатыг хараахан дуусгаагүй бол нийтлэл дэх алхмуудыг дагах нь утгагүй болно. Надад энэ талаар өөрийн гэсэн текст хараахан байхгүй байна, гэхдээ хэрэв та Google-д VPS дээр суулгасан үйлдлийн системийн нэрийн хамт "OpenVPN сервер тохируулах" болон чиглүүлэгчийнхээ нэрээр "OpenVPN клиент тохируулах" гэж бичвэл , та энэ сэдвээр хэд хэдэн нийтлэл, тэр дундаа Habré дээр гарах болно.

UPD3. Золиослолгүй Би dump.csv-г IP хаягуудын нэмэлт хураангуй бүхий шувууд зориулсан файл болгон хувиргах код бичсэн. Тиймээс "Чиглүүлэлтийн үйлчилгээний бүртгэлийг боловсруулах" хэсгийг түүний програмыг дуудаж сольж болно. https://habr.com/post/354282/#comment_10782712

UPD4. Алдаа дээр бага зэрэг ажил (би тэдгээрийг текстэд нэмээгүй):
1) оронд нь systemctl дахин ачаалах шувуу командыг ашиглах нь утга учиртай birdc тохиргоо.
2) микротик чиглүүлэгч дээр дараагийн ховилыг хонгилын хоёр дахь талын IP болгон өөрчлөхийн оронд /чиглүүлэлтийн шүүлтүүр нэмэх үйлдэл=хүлээн зөвшөөрөх гинж=динамик-ин протокол=bgp тайлбар=»Nexthop-г тохируулах» set-in-nexthop=172.30.1.1 хаяггүйгээр шууд хонгилын интерфейс рүү чиглүүлэх нь утга учиртай /чиглүүлэлтийн шүүлтүүр нэмэх үйлдэл=хүлээн зөвшөөрөх гинж=динамик-ин протокол=bgp comment=»Nexthop тохируулах» set-in-nexthop-direct=<интерфэйсийн нэр>

UPD5. Шинэ үйлчилгээ гарч ирэв https://antifilter.download, та IP хаягуудын бэлэн жагсаалтыг эндээс авах боломжтой. Хагас цаг тутамд шинэчлэгддэг. Үйлчлүүлэгчийн тал дээр "маршрут... татгалзсан" гэсэн тэмдэглэгээг бичих л үлдлээ.
Энэ мөчид эмээгээ илж, нийтлэлээ шинэчлэхэд хангалттай байх.

UPD6. Үүнийг ойлгохыг хүсэхгүй байгаа ч эхлүүлэхийг хүсч буй хүмүүст зориулсан нийтлэлийн шинэчилсэн хувилбар - энд.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх