WireGuard конфигин Interface'тен Peer'ке чейин сап-сап окуп чыгыңыз
Interface ачкычтары ушул четке, peer ачкычтары каршы тарапка таандык. Ар бир сапты бир багыт катары окуп, андан кийин wg-quick протоколдун айланасына эмне кошконун текшериңиз.
Бузулган WireGuard конфигдеринин көбү мааниде ката кетирбейт; алар туура маанини туура эмес тарапка коюшат. Жеке ачкыч ушул машинага таандык, peer башка машинанын ачык ачкычын алып жүрөт, ал эми дарек туннель кайда жашаарын сүрөттөсө да interface блогунда отурат. Файлды эки жолугушкан багыт катары окуп, андан кийин жардамчы скрипт үстүнөн эмне кошконун текшериңиз. Протоколдун өзүндө файлдан аз талаа бар, ал эми кошумча талааларды өзүнчө билген жөн.
Interface ачкычтары ушул машинаны сүрөттөйт
interface блогу ушул чектин өзүнүн инсандыгын кармайт. PrivateKey ошол инсандык жана эч качан хосттон чыкпайт; андан тиешелүү ачык ачкыч алынат жана башка peers дал ошону тизмелейт. ListenPort бул тарап кол алышууларды кабыл алган жер, ошондуктан бир даректин артындагы эки кардарга башка порт керек.
Address ушул хост жооп берген туннелдин дареги, префикс узундугу менен жазылган, анткени ал колдоно турган булак да ошол. Бул жерде префиксти ката кетирүү хосттун кайсы багыттарды түз туташтырылган деп эсептешин өзгөртөт жана бул конфиг эмес, маршруттоо сыяктуу көрүнгөн бузулууларды жаратат.
Чыныгы кардар менен [Interface] блоктогу калганын адатта wg-quick кошот: DNS, MTU, Table, жана илмек саптары. Булар протокол талаалары эмес жана жылаңач wg жөндөө аларды таптакыр этибарга албайт.
Ар бир peer жазуусу бир башка тарапты сүрөттөйт
[Peer] блогу алыскы тарап. PublicKey ошол тараптын туунду ачкычы, эч качан анын жеке ачкычы эмес, жана PresharedKey эки тарап тең бирдей кармоого тийиш болгон милдеттүү эмес кошумча сыр. Endpoint кайда жөнөтүү экенин билдирет, жана PersistentKeepalive бул хосттон башка эч нерсе чыкпаганда интервалдан кийин пакет жөнөтүүнү суранат.
Бул жердеги баш аламандыктын көбүн эки ката түшүндүрөт. Өз жеке ачкычыңызды peer блогуна көчүрүү эки учту бир инсандыкка орток кылат жана кол алышуу жаман жазылган түрдө ишке ашпай калат. Endpoint кардарда калтырып коюу адатта атайын, анткени сервер даректи кирүүчү кол алышуудан үйрөнөт; баштоого тийиш болгон серверде аны калтырып коюу андай эмес. Ошондой эле keepalive NAT картасын ачык кармай турганын эстеңиз, ал өткөрүү жөндөмүн жакшыртпайт жана кечигүүнү азайтпайт, ошондуктан трафик мурунтан агып жатса, отуз секунддук кошумча пакет эч нерсе сатып албайт.
AllowedIPs — маршруттоо, уруксат тизмеси эмес
AllowedIPs WireGuard'дын криптоачкыч маршруттоосу. Сыртка, ал дайындалышына карай кайсы peer пакет аларын чечет. Ичке, ал ошол peer'ден келген пакеттин булагына карай кабыл алынарын чечет. Бир талаа эки ишти тең аткарат, ошондуктан бул кирүүнү көзөмөлдөө тизмеси да эмес, уруксат берилген сайттардын тизмеси да эмес.
Тар AllowedIPs серверде кардар үчүн сервер ошол булактарды билдирген пакеттерди гана кабыл алат жана ошол багыттарды гана ошол кардарга жөнөтөт. Бир тарапты экинчисин кеңейтпей кеңейтсеңиз, көтөрүлүп, эч нерсе өткөрбөгөн туннель аласыз.
wg-quick протоколдун айланасына эмне кошот
wg-quick ошол эле файлды окуп, протокол операциялык системага калтырган тармак кадамдарын аткарат. Ал interface дарегин дайындайт, AllowedIPs туунду болгон маршруттарды кошот, чечүүчүнүн жөндөөлөрүн жазат жана илмек буйруктарын ирети менен аткарат.
Ошол катмар классикалык асимметрияны түшүндүрөт. 0.0.0.0/0 жана DNS сабы бар файл кардарга демейки маршрут жана чечүүчү берет жана сервердин өткөрүү же NAT эрежелерине таптакыр эч нерсе кылбайт. Алар сервердин өз конфигине таандык жана эч бир кардар файлы аларды бере албайт.
Файлга бир ээ болсун. SaveConfig күйгүзүлгөн кезде аны кол менен оңдоо кийинки жолу interface түшкөндө оңдооңуз жоголот дегенди билдирет, жана interface бул болгонун айтпайт.
Файлды эмес, колдонулган абалды текшериңиз
Файл — ниет. Колдонулган абал — ядро кармаган нерсе, жана активдештирүүдөн кийин жардамчы, drop-in же илмек бир нерсени оңдосо, алар ажырайт.
Тирүү абал менен даректөөнү чогуу окуп, андан кийин экөөнү тең жазганыңыз менен салыштырыңыз:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confЭгер peer тизмеси бош болсо, interface конфиги колдонулбай түзүлгөн. Даректер жана маршруттар бар болсо, бирок эсептегичтер нөлдө турса, файл жүктөлдү жана кол алышуу ишке ашпай жатат, бул бөлүм иретинин эмес, ачкыч же акыркы чекиттин маселеси. Оңдоодон мурун эки көрүнүштү салыштырыңыз, анткени алардын ортосундагы ажырым адатта чыныгы бузулуу.