mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-03-11 03:52:40 +00:00
add kellnr-proxy-verification-using-local-index.gmi
This commit is contained in:
parent
f0b033cc81
commit
0961c3e883
3 changed files with 43 additions and 0 deletions
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
### Нотатки
|
||||
|
||||
=> kellnr-proxy-verification-using-local-index.gmi 2026-02-28 Не верифіковане проксі Kellnr на базі власного індексу
|
||||
=> rust-crates-mirroring-with-kellnr.gmi 2026-02-25 Організація локального дзеркала залежностей Cargo з Kellnr
|
||||
=> radicle-p2p-traffic-leak-prevention.gmi 2026-02-24 Radicle: обмеження витоків пірингового трафіку
|
||||
=> flarum-v2-fof-redis-extension-setup.gmi 2026-02-22 Flarum v2: активація драйвера Redis (FoF/redis)
|
||||
|
|
|
|||
41
public/uk/kellnr-proxy-verification-using-local-index.gmi
Normal file
41
public/uk/kellnr-proxy-verification-using-local-index.gmi
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Не верифіковане проксі Kellnr на базі власного індексу
|
||||
|
||||
> Повний аудит рішення не проводився, зокрема обробка [config.json](https://github.com/rust-lang/crates.io-index/blob/master/config.json). Візуально, лічильники завантажень в ланцюгу проксі працюють коректно, підміна фіктивним індексом - не дозволяє оновлень.
|
||||
|
||||
У попередньому гайді, я описав базове встановлення Kellnr в режимі локального та віддаленого проксі сервера:
|
||||
=> rust-crates-mirroring-with-kellnr.gmi Організація локального дзеркала залежностей Cargo з Kellnr
|
||||
|
||||
Утім, мені не давало спокою питання потенційної компрометації дзеркала, через що я декілька днів поспіль намагався відокремити індекс з контрольними сумами від джерела кешованих пакунків.
|
||||
|
||||
Нарешті, мені це вдалося. Схема з'єднання виглядає наступним чином:
|
||||
|
||||
```
|
||||
crates.io > -|- out proxy > kellnr server > kellnr client > cargo
|
||||
crates.io-index > _↑ |
|
||||
↑_________________[--proxy-index]__________________↓
|
||||
```
|
||||
|
||||
У цьому ланцюгу, `kellnr server` ми не довіряємо, оскільки той ходить через не відомий нам вихідний проксі. Натомість, піднімаємо додатковий локальний інстанс `kellnr client`, який звертається до першого але використовує власний `--proxy-index`:
|
||||
|
||||
``` /etc/systemd/system/kellnr.service
|
||||
kellnr start \
|
||||
--proxy-index https://index.crates.io/ \
|
||||
--proxy-url http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8180/api/v1/cratesio/dl/ \
|
||||
```
|
||||
* це просто фрагмент команди `kellnr start` з файлу `/etc/systemd/system/kellnr.service`, де ми задіюємо офіційний індекс, але у вас це може бути локальне дзеркало репозиторію
|
||||
* `http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8180` - не верифікований `kellnr server` на схемі
|
||||
|
||||
Відповідно, в локальному `~/.cargo/config.toml` вказуємо `kellnr client`, якому довіряємо:
|
||||
|
||||
``` ~/.cargo/config.toml
|
||||
[registries.kellnr]
|
||||
index = "sparse+http://127.0.0.1:8000/api/v1/cratesio/"
|
||||
|
||||
[source.crates-io]
|
||||
replace-with = "kellnr"
|
||||
|
||||
[http]
|
||||
timeout = 180
|
||||
```
|
||||
|
||||
Нагадаю, що окремий індекс використовувати не обов'язково, якщо ваша копія проєкту містить файл `Cargo.lock` з хешами, що дозволяє звіряти їх аргументом `--locked`.
|
||||
|
|
@ -308,6 +308,7 @@ crates.io > -|- out proxy > kellnr server > kellnr client > cargo
|
|||
crates.io-index > _↑ |
|
||||
↑_________________[--proxy-index]__________________↓
|
||||
```
|
||||
=> kellnr-proxy-verification-using-local-index.gmi Не верифіковане проксі Kellnr на базі власного індексу
|
||||
|
||||
## Посилання
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue