Začnu stručně: máme Discourse! Najdete ho na
https://discourse.vpsfree.cz.
V roce 2009 jsme původně začínali s fórem, které mělo sloužit jako
poradna a místo pro diskuzi obecně, ale v podstatě nikdo ho nepoužíval.
Možná tam byly tři posty, které nebyly ode mě. Pak jsme přešli na
mailing listy, které mají tu výhodu, že příchozího mailu si všimne
mnohem víc lidí. To zafungovalo, ale zhruba, když jsme míjeli velikost
1000 členů, se přesně tenhle faktor otočil zas proti nám. Až příliš
často uvažujeme nad tím, zda se svojí prkotinou spamovat tolik lidí.
Za sebe musím říct, že mám pokaždé obrovskou radost, když se na
community-listu povede něco vyřešit. Chtěl bych toho vidět víc, mnohem
víc, nemyslím, že by nebylo, co řešit, o čem se bavit, jen ten formát
mailing listu se nám už asi trochu přežil.
Discourse vypadá, že by pro nás mohl spojit to nejlepší z obou světů –
je možné ho použít mailem, ale organizací má spíš jako fórum.
Když se nám povede, že nám to na Discourse začne víc žít, můžeme taky
zvážit přechod z IRC na Discourse Chat. V IRC místnosti teď už taky visí
už jen okolo 50 lidí ze špičkových cca 100, v souladu s tím, jak
relevance IRC upadá.
Mimo jiné, na #vpsfree teď visí bot vpsfbr0, je to instance
matterbridge, přes kterou by nakonec mělo jít přemostit aspoň základním
způsobem všechny podstatnější IM, zatím je nastavený jako most s
Matrixem - https://view.matrix.org/room/!vOrcaItWgYDyYypqCI:matrix.org/
Do vpsFree Discourse se přihlašuje buďto přihlašovacími údaji vpsAdminu
(pro členy) nebo se dá vytvořit běžný účet (pro nečleny). Aby byla
trochu přidaná motivace se tam přijít podívat, napadlo nás, že bychom
mohli tuhle příležitost využít k nabídnutí všeho toho hardware, který je
už rok vypnutý a nebudeme ho určitě potřebovat.
Co bude dál s mailing listy:
news-list ještě chvíli podržíme v podobě, jak fungoval, ale po nějaké
době (půl roku až rok) se přesune na kombinaci Discourse (kde se dá o
těch věcech potom diskutovat) a blog (jako nástěnka pro věřejnost).
outage-list – vpsAdmin už dlouho umí reportovat výpadky dotčeným členům
rovnou a celá historie je dostupná bez přihlášení – tam tedy můžeme
přestat posílat rovnou
community-list – tam na konci roku vypneme možnost posílat do něj nové
příspěvky s automatickou odpovědí, že už dál diskutujeme jen na
Discourse
No a tím se rozloučíme s mailing listy :).
Díky všem, kdo jste na nich byli aktivní, přijměte prosím pozvání na
novou platformu – pojďme to zkusit pojmout jako novou příležitost k
výměně zkušeností. Doufám, že snad s menším třením oproti mailing
listům.
/snajpa
Ahoj všem,
začínám si hrát se svým novým VPS.
Hledám někoho, kdo by mi pomohl nastavit firewall. Po prvních pokusech se
mi zdá, že na to sám nestačím. Za pomoc rád zaplatím.
Můj cíl:
- Mám VPS s ubuntu 22.04.
- Budu používat docker pro deployment jednotlivých aplikací (služeb).
- Chci používat ZeroTier jako VPN.
- Chci nastavit firewall tak, aby do internetu byly otevřené jen porty 22
(SSH), a 443. Případně 80, který by přesměrovával na 443.
- Dále chci, aby skrz ZeroTier VPN fungovaly všechny služby, tj firewall by
měl propouštět skrz ZeroTier veškerou komunikaci.
Moje první kroky vedly k ufw. Bohužel jsem ale zjistil, že ufw v kombinaci
s dockerem nefunguje správně
<https://docs.docker.com/network/packet-filtering-firewalls/#docker-and-ufw>.
Nevím, jakou alternativu k ufw zvolit. Manuální editace iptables i
firewalld jsou pro mě komplikované.
Díky za nabídku pomoci nebo třeba i za odkaz na nějaký dobrý tutorial.
S pozdravem
Vašek
Ahoj,
mám na VM nixos-unstable, po poslední aktualizaci mi nenaběhne
nix-serve (VM 16201). V žurnálu je chyba:
nix-serve.service: Failed to set up credentials: Protocol error
nix-serve.service: Failed at step CREDENTIALS spawning /nix/store/g5jgqgf01gsiya5im563952qlbk21028-unit-script-nix-serve-start/bin/nix-serve-start: Protocol error
Neřešil jste to někdo?
---
V konfiguraci nic zvláštního nemám, secrets nahrávám pomocí `sops-nix`:
services.nix-serve = {
enable = true;
secretKeyFile = config.sops.secrets.cache-sig-key.path;
};
V `nix-serve.service` je
DynamicUser=true
LoadCredential=NIX_SECRET_KEY_FILE:/run/secrets/cache-sig-key
Problém je zřejmě s právy, pokud příkaz v `ExecStart` spustím jako root,
nix-serve naběhne. Vlastníkem klíče je root:
-r-------- 1 root root 102 1. lis 11.25 /run/secrets/cache-sig-key
Předpokládám, že to rozbila aktualizace systemd, ve verzi 253
to projde, ve verzi 254 (254.3) už ne. V měsíc staré, ještě
neaktualizované VM to běží, se stejnou konfigurací a právy. Našel jsem
https://github.com/NixOS/nixpkgs/issues/157449 a Zkoušel jsem nastavit
`rshared` pro `/run`, beze změny.
Zkouším, jestli už na to někdo nenarazil, než začnu zkoumat, jak to celé
funguje pod pokličkou.
—
Tomáš Kuča
Ahoj,
co je tohle za procesya jak to vypnout?
nmap
111/tcp open rpcbind
32769/tcp open filenet-rpc
systemctl stop rpcbind.socket
ukončí rpcbind na portu 111, ale
32769/tcp open filenet-rpc
tohle běží dál a nevím jaký program to spouští a jak to vypnout. Nemůžu
mít server i napadený? Mám tam nějak hacknutý wordpress, možná to s tím
souvisí.
díky
Živoslav
no právě, zjistit proces. Na portu 32769 není ani PID ani jméno
programu. To je divné, ne?
Dne 22. 09. 23 v 8:17 Tomáš Antecký napsal(a):
> Zkus *netstat -ntplu *jako root aby si našel ten proces.
> Měj se
> Tomáš
>
>
> On 21.09.2023 13:12, Živoslav wrote:
>>
>> Ahoj,
>>
>>
>> co je tohle za procesya jak to vypnout?
>>
>> nmap
>> 111/tcp open rpcbind
>> 32769/tcp open filenet-rpc
>>
>> systemctl stop rpcbind.socket
>>
>> ukončí rpcbind na portu 111, ale
>>
>>
>> 32769/tcp open filenet-rpc
>>
>>
>> tohle běží dál a nevím jaký program to spouští a jak to vypnout.
>> Nemůžu mít server i napadený? Mám tam nějak hacknutý wordpress, možná
>> to s tím souvisí.
>>
>>
>> díky
>>
>>
>> Živoslav
>>
>>
>> _______________________________________________
>> Community-list mailing list --community-list(a)lists.vpsfree.cz
>> To unsubscribe send an email tocommunity-list-leave(a)lists.vpsfree.cz
>
Ahoj,
(English below)
Pokud vám po restartu VPS nestartuje LXD, je to pravděpodobně způsobeno
změnou ve snapd. Ve verzi 2.60 dělali nějaké změny s AppArmorem a aspoň
v našem prostředí pak LXD nestartuje.
Chyba při instalaci např. vypadá takto:
# snap install lxd
error: cannot perform the following tasks:
- Start snap "lxd" (25505) services (systemctl command [start
snap.lxd.activate.service] failed with exit status 1: Job for
snap.lxd.activate.service failed because the control process exited with
error code.
See "systemctl status snap.lxd.activate.service" and "journalctl -xeu
snap.lxd.activate.service" for details.
)
Jednoduchý workaround je v detailu VPS ve vpsAdminu zrušit feature
"AppArmor control directories" (aby to nebylo zaškrtnuto). snapd ani LXD
se potom nebudou snažit AppArmor použít a bude to fungovat.
ENGLISH:
If you're having an issue with LXD installed as snap not starting, it is
most likely caused by a change in snapd. Version 2.60 contained some
AppArmor-related changes which do not work correctly, at least not in
our environment.
For example, this is the error when trying to install lxd:
# snap install lxd
error: cannot perform the following tasks:
- Start snap "lxd" (25505) services (systemctl command [start
snap.lxd.activate.service] failed with exit status 1: Job for
snap.lxd.activate.service failed because the control process exited with
error code.
See "systemctl status snap.lxd.activate.service" and "journalctl -xeu
snap.lxd.activate.service" for details.
)
A simple workaround is to disable feature "AppArmor control directories"
in VPS details in vpsAdmin -- uncheck it. snapd and LXD will no longer
try to use AppArmor and will work again.
Jakub
Ahoj,
mám 2 VPSky a když si zkouším k ním založit 2 staging VPS, tak mi to tu druhou nepovolí, protože nemám pro druhou staging VPS dost zdrojů. Ke každému účtu je tedy jenom jedna staging VPS bez ohledu na to, kolik je k účtu přirazeno VPS?
Děkuji,
Filip Bartmann
Tam mají ovladače jenom na Nvidii.
Asi vědí proč :-(
--
s pozdravem Tomáš Spisar
+420 702 937 602, Praha 11
tomas.spisar(a)seznam.cz, www.pdstudios.cz
(https://pdstudios.cz?utm_source=signature&utm_medium=email&utm_campaign=bra…)
(https://navzdorydobe.cz?utm_source=signature&utm_medium=email&utm_campaign=…)
Dezinfekční prostředky pro vaši ochranu www.navzdorydobe.cz/
(https://navzdorydobe.cz?utm_source=signature&utm_medium=email&utm_campaign=…)
---------- Původní e-mail ----------
Od: Aleš Bobek <boban(a)boban.cz>
Komu: Tomáš Spisar <tomas.spisar(a)seznam.cz>
Datum: 31. 8. 2023 10:29:14
Předmět: Re: [vpsFree.cz: community-list] HP Zbook 15 G2 - Ovladače grafické
karty AMD Radeon R9 M270X
" Ahoj,
co přímo HP support - download?
Aleš
Dne čt 31.08.2023 v 9:58:57 Tomáš Spisar napsal(a):
"
Ahoj, nemám dotaz k vpsfree, ale už nevím kde se sehnat informace :-(
Systém Windows 10, při instalaci se jakýkoliv ovladač začne instalovat, ale
vždycky se instalace kousne a je to na jenom na vypnutí.
Zkoušel jsem tři ovladače od AMD. Máte někdo zkušenost jak to rozchodit?
Výpis z HW Info: https://gcdnb.pbrd.co/images/IWkXS4CBT0Xf.jpg
(https://gcdnb.pbrd.co/images/IWkXS4CBT0Xf.jpg)
--
s pozdravem Tomáš Spisar
_______________________________________________
Community-list mailing list -- <a href='mailto:community-list@lists.vpsfree.cz' class='-wm-moz-txt-link-abbreviated'>community-list(a)lists.vpsfree.cz</a>
To unsubscribe send an email to <a href='mailto:community-list-leave@lists.vpsfree.cz' class='-wm-moz-txt-link-abbreviated'>community-list-leave(a)lists.vpsfree.cz</a>
"
"
Ahoj,
(English below)
TL;DR ve VPS lze nově používat distribuci Guix.
GNU Guix System [1] je linuxová distribuce založená na správci balíčků
Guix. Funguje to velice podobně jako NixOS [2] a Nix, až na to, že Guix
a celý systém se konfiguruje pomocí Guile Scheme. Ve Scheme jsou opravdu
veškeré součásti systému, včetně init systému Shepherd [3].
Na rozdíl od klasických distribucí se Guix a NixOS konfigurují
deklarativně: v konfiguračním souboru nadefinujeme kompletní podobu
výsledného systému, tj. jaké má obsahovat uživatele/skupiny, služby a
jejich nastavení. Ať už se jedná o aktualizaci nebo rollback, mezi
různými verzemi systému se lze snadno přepínat buď za běhu, nebo při
bootu v zavaděči, resp. u nás ve Start Menu [4]. Guix oproti NixOS
obsahuje jen Free Software.
Protože ve vpsFree používáme NixOS [5] skoro na všechno, zajímalo mě
taky, jak je na tom Guix. Bohužel Scheme pořádně neznám a ani mě to moc
neláká -- je tam příliš mnoho závorek :) Před rokem se jeden člen snažil
[6] šablonu pro Guix vytvořit, ale sám jsem neviděl cestu, jak na to. Až
před pár dny jsem narazil na blog [7], který obsahoval potřebné
informace. Hlavní problém byl, že ve VPS nemáme zavaděč a taky se
nepřipojuje kořenový souborový systém -- je připojen už před spuštěním
/sbin/init ve VPS. V konfiguraci však zavaděč i kořenový systém být
musí, jinak se systém nesestaví.
Nakonec to není žádná věda: jako zařízení pro zavaděč stačí /dev/null
[8] a volba --no-bootloader, s kořenovým systémem je to podobné [9].
Pokud by někdo měl zájem to vyzkoušet, VPS s Guixem si můžete vytvořit
na node1.stg (staging). Jinde zatím nebude fungovat integrace pro
nastavení sítě. Více informací viz KB:
https://kb.vpsfree.org/manuals/distributions/guix
Jsou tam ještě nějaké nedostatky, které už nejspíš řešit nebudu, aspoň
ne teď. Základ včetně integrace do vpsAdminu a Start Menu je zdá se
funkční. Sami pro Guix využití nemáme, dělal jsem to spíš ze
zajímavosti. Jestli Guix někdo použijete, budeme rádi za zpětnou vazbu.
ENGLISH:
TL;DR VPS can now use Guix distribution.
GNU Guix System [1] is a linux distribution based on Guix package
manager. It is very similar to NixOS [2] and Nix, except that Guix is
configured using Guile Scheme. Indeed, most of the system components
including the init system Shepherd [3] are written in Scheme.
Unlike other well-known linux distributions, Guix and NixOS are
configured declaratively: users/groups and all services with their
settings that should a part of the target system are defined in a config
file. It is possible to switch between different system configurations,
be it an upgrade or downgrade. System versions can be switched at
runtime or from the bootloader -- in our case, from the Start Menu [10].
Unlike NixOS, Guix contains only Free Software, as it is a part of the
GNU project.
At vpsFree.cz, we use NixOS [5] almost everywhere. I was thus interested
to see the state Guix is in. Unfortunately, I'm not familiar with
Scheme, there are far too many parentheses! A year ago, one of our
members tried to create [6] template for Guix, but we haven't been able
to make it work. A few days ago, I've discovered a blogpost [7] that
helped me understand the missing pieces. Our main issue was that inside
the VPS, there's no bootloader and no need to mount the root file
system, as it is mounted even before its /sbin/init is started. Guix
configuration however requires them to be configured.
In the end it's pretty straightforward. /dev/null is used [8] as a
device for the bootloader together with option --no-bootloader. Mounting
of the root file system can be bypassed in a similar way [9].
If someone would like to give it a go, you can create VPS with Guix on
node1.stg (staging). For more information, see KB:
https://kb.vpsfree.org/manuals/distributions/guix
There are several known issues, but the base system appears to be
operational. Network configuration is integrated with vpsAdmin and the
Start Menu can be used to run older system generations. As we do not
have any actual use for Guix ourselves, I'm going to leave it as it is
for now. We'll be glad for any feedback if you'll run anything on Guix.
[1] https://guix.gnu.org
[2] https://nixos.org
[3] https://kb.vpsfree.cz/navody/vps/start_menu
[4] https://www.gnu.org/software/shepherd/
[5] https://github.com/vpsfreecz/vpsfree-cz-configuration
[6] https://github.com/vpsfreecz/vpsadminos-image-build-scripts/pull/47
[7] https://www.thedroneely.com/posts/guix-in-a-linux-container/
[8]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[9]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[10] https://kb.vpsfree.org/manuals/vps/start_menu
Jakub
Ahoj, nemám dotaz k vpsfree, ale už nevím kde se sehnat informace :-(
Systém Windows 10, při instalaci se jakýkoliv ovladač začne instalovat, ale
vždycky se instalace kousne a je to na jenom na vypnutí.
Zkoušel jsem tři ovladače od AMD. Máte někdo zkušenost jak to rozchodit?
Výpis z HW Info: https://gcdnb.pbrd.co/images/IWkXS4CBT0Xf.jpg
--
s pozdravem Tomáš Spisar
Ahoj,
kdysi jsem pohorel s UFW na OpenVZ kvuli nejakym modulum, ale na
novejsim VPSAdminOS je uz hodne veci precejen jinak ale porad jsem trochu
zahorel
root@vps1:~# ufw enable
ERROR: problem running ufw-init
modprobe: FATAL: Module nf_conntrack_ftp not found in directory
/lib/modules/
6.1.44
modprobe: FATAL: Module nf_nat_ftp not found in directory
/lib/modules/6.1.44
modprobe: FATAL: Module nf_conntrack_netbios_ns not found in directory
/lib/m
odules/6.1.44
Bad argument `nat'
Error occurred at line: 18
Try `iptables-restore -h' or 'iptables-restore --help' for more
information.
Problem running '/etc/ufw/before.rules'
tak se chci zeptat, jestli je nejaka moznost ty moduly eventualne nejak tam
dostat / zapnout ci jen nejak upravit konfiguraci UFW, aby to jelo. Neni
nekdo uz je trochu dal, ze by mi poradil nebo mi rekl rovnou, ze to je
problem, blbne to a nema cenu se s tim ani otravovat. :)
Pokud by nekoho zajimal duvod tak ten nejvetsi je ten, ze to umi ipv6 a
ipv4 najednou a nemam bolehlav z toho generovani tech silenosti, navic
dvakrat pro 6 a 4 :)
S pozdravem
Jan Pleva
Ahoj,
snažím se provést SWAP dvou (mých) PS. Jedna je produkční, druhá je na
playgroundu. V podstatě vlastně jen potřebuji tu z Playgroundu překlopit
do produkce, stávající produkční potom zruším.
Postupuji takto:
Ve vpsadminu kliknu na VPS a zvolím si (produkční) VPS. Pak v pravo v
Manage VPS kliknu na Swap VPS.
Následně zvolím (playground) VPS kterou chci nahradit tu produkční a
zaškrtnu swap hostname.
Kliku na Preview, tam na Go a zkončím s chybou:
*Error message: unable to migrate VPS with existing snapshot clones*
Bohužel asi nechápu co je tím myšleno.
Nemáte někdo nějaký nápad? VPS na Playgroundu mi zítra expiruje.
Předem díky
--
S pozdravem
David Toman
https://www.idkfa.cz
Tel: 777 477 955
Tento email neobsahuje viry,
protože nepoužívám Windows.
Ahoj,
(English below)
Pravidelně se stává, že někomu ve VPS dojde místo na disku. vpsAdmin
sice posílá upozornění od 90 % zaplnění, ani to ale ve všech případech
nepomůže tomu předejít. S plným diskem přestávají fungovat vaše
aplikace, které s diskem pracují, a také to může znemožnit login do VPS
a uvolnění místa.
Každou jednotlivou VPS řešíme i my jako administrátoři vpsFree.cz,
protože ZFS s prací nad plnými datasety (disky VPS) aspoň historicky
mívalo problémy. Souvisí to s tím, že ZFS kvůli dynamické velikosti
bloku a kompresi dopředu neví, kolik místa budou data na disku zabírat.
Aby nebyla překročena nastavená kvóta datasetu, dochází k předčasnému
uzavírání txgs -- transakční skupiny, v rámci kterých se data v
pravidelných intervalech zapisují na disk. Vyšší frekvence txgs potom
zpomaluje chod všech VPS.
Další faktor je, že jsme v těchto situacích naráželi na chyby souběhu,
které mohou vést k zastavení IO na nodu a nutnosti resetu. Naše ZFS je
upravené tak, aby se txgs neuzavíraly předčasně a naopak umožňujeme v
jedné txg nastavenou kvótu překročit. I tak ale nechceme riskovat
výpadek a při zaplnění datasetu VPS nám monitoring posílá SMS. Když se
takových VPS najde víc a členové nereagují, je to pro nás dost
vyčerpávající.
vpsAdmin proto nyní bude automaticky zvětšovat datasety ve VPS, kde
dochází místo. Ke zvětšení dojde, když bude zbývat méně než 512 MiB,
popř. méně než 1 % celkové kapacity. Disk navyšujeme o 20 GiB nebo o 10
% kapacity podle toho, co je větší. K rozšíření může dojít až 3x a k
řešení máte 30 dní od prvního rozšíření. Po uplynutí této doby se bude
VPS vypínat, dokud se využití datasetu nevrátí do mezí původní
velikosti, nebo se nedomluvíme na trvalém rozšíření kapacity.
Ke zmenšení na původní velikost dojde automaticky, když bude k dispozici
alespoň 1 GiB a 5 % volného místa. Velikost můžete taky upravit kdykoli
ve vpsAdminu v detailu VPS.
ENGLISH:
It happens fairy regularly that VPS run out of disk space. vpsAdmin is
sending notifications when disk usage is 90 % or more, but that still
won't prevent it. When the disk is full, your applications are likely to
stop working and it may not be possible to login to the VPS and free
some space.
We as vpsFree.cz administrators are also involved with every VPS which
completely runs out of disk space. It is because ZFS at least
historically wasn't so good at operating on datasets (VPS disks) nearing
or at their quota. Due to dynamic block size and compression, ZFS does
not know how much space on disk the data will actually take. In order to
not exceed the dataset's quota, it tends to prematurely close txgs --
transaction groups in which data is written to disk in regular
intervals. Higher txgs frequency is then negatively impacting IO
performance of all VPS.
Another factor is that on multiple occasions, we've encountered rare
race conditions which led to ZFS deadlock, i.e. no writes were being
made at all and we've had to reset the node. While our ZFS is patched to
allow datasets exceeding their quota within one txg, we don't want to
risk an unnecessary outage because of this, so our monitoring system is
sending us SMS. When it happens often and members are not responding to
us, it's rather tiring for us.
From now on, vpsAdmin will automatically expand VPS datasets which are
nearing their quota. Datasets are expanded when there's less than 512
MiB or 1 % of free space. We add either 20 GiB or 10 % of original size,
whichever is higher. Datasets can be expanded three times and you'll
have 30 days since the first expansion to resolve the issue. After that,
the VPS will be stopped until the used space will fit within the
original quota or the dataset is expanded permanently.
Expanded datasets are shrunk back when there is at least 1 GiB and 5 %
of free space with respect to the original size. You can also change the
dataset size in VPS details in vpsAdmin at any time.
Jakub
Ahoj,
kacířská myšlenka: nefungoval by na komunikaci lépe nástroj jako discord? Přiznám se, že mail listy, nebo IRC mi k srdci nějak nepřirostly, ačkoliv si rád spravuju linux server. :-) Ani to moc nevypadá, že by tu ta diskuse nějak plynula.
Hezký víkend všem,
Fanda
Ahoj,
v poslední zprávě jsem psal o plánovaném přechodu na cgroups v2. Pomalu
na tom pracujeme už od počátku roku 2022. Vyžaduje to úpravy jednak v
našem kernelu, to je stále v řešení, a taky integraci v user space:
nutnost delegace controllerů, rozdílný způsob konfigurace a čtení
parametrů, až nakonec propojení s vpsAdminem. Pro mě asi největší oříšek
zatím byl devices controller. Pro zajímavost popíšu k čemu to je a jak
to funguje.
devices controller je pro nás stěžejní komponenta, bez které nemůžeme
fungovat. Řídí totiž přístup ke všem zařízením -- blokové jako disky
/dev/sda, atd. a znakové jako /dev/tty, /dev/null, /dev/zero, apod.
Protože ve VPS můžete udělat mknod libovolného zařízení, devices cgroup
je nezbytná pro řízení přístupu.
Ve výchozím stavu umožnujeme přístup k /dev/{console, full, kmsg, null,
ptmx, random, urandom, tty*}. Podle VPS features pak i /dev/{net/tun,
kvm, ppp}. Pro nás je nejdůležitější neumožnit přístup k diskovým
zařízením, nad kterými běží ZFS.
devices controller u cgroups v1 je krásně jednoduchý. Povolené zařízení
vidíme v devices.list:
cat /sys/fs/cgroup/devices/devices.list
c 1:3 rwm
c 1:5 rwm
c 1:7 rwm
c 1:8 rwm
c 1:9 rwm
c 1:11 rwm
c 5:0 rwm
c 5:1 rwm
c 5:2 rwm
c 136:* rwm
b *:* m
c *:* m
Tedy read-write-mknod (rwm) k vybraným zařízením a mknod (m) pro všechno
ostatní. Na Linuxu v user namespace normálně mknod není možný, ale na
vpsAdminOS ano. Hodí se to třeba když rozbalujete nějaký archiv, který
obsahuje soubory zařízení.
Tohoto nastavení devices.list docílíme tak, že nejprve zakážeme přístup
ke všemu:
echo a > devices.deny
A potom povolíme vybrané zařízení:
echo c 1:3 rwm > devices.allow
echo c 1:5 rwm > devices.allow
[...]
Je to krásně jednoduché jednak na přehled a taky na konfiguraci. Jediný
zádrhel je zde v tom, že echo a > devices.deny funguje jen pokud daná
cgroup nemá potomky. Protože se s cgroups pracuje z různých míst, řešil
jsem to tak, že se devices cgroup nastavovala jako první při spuštění
systému nebo vytvoření VPS.
cgroups v2 dlouho devices controller neměly vůbec... a když přišel, byl
implementován přes BPF. Funguje to tak, že napíšete BPF program,
zkompilujete, nahrajete do kernelu a potom ho připojíte k dané cgroup.
Při přístupu k zařízení se daný BPF program vykoná a buď přístup umožní,
nebo zakáže.
Ukázkový program je součástí kernelu:
https://github.com/torvalds/linux/blob/v5.10/tools/testing/selftests/bpf/pr…
Můj největší problém byl, že jsem to ani za nic nebyl schopen
zkompilovat. Detaily už samozřejmě nevím, ale byl jsem z toho absolutně
zoufalý. Kompilovat programy tímto způsobem by sice nebylo ideální,
protože k tomu potřebujete LLVM, což nafukuje velikost rootfs... ale
aspoň by se tím dalo začít.
Když se podíváme na projekty jako systemd nebo LXC, tam s devices cgroup
pracují taky. Nekompilují programy přes LLVM, ale vytvoří program rovnou
z BPF instrukcí. Pěkně je to vidět v LXC:
https://github.com/lxc/lxc/blob/lxc-5.0.2/src/lxc/cgroups/cgroup2_devices.c…
Tahle cesta se mi líbila mnohem víc, ale taky jsem nikam nepokročil.
Použít přímo tuto funkci LXC nemůžeme, protože LXC spouštíme pod
neprivilegovaným uživatelem a devices cgroup může nastavovat jen root.
Ani vykopírovat ten kód není jednoduché, potřebuje to spousty vaty okolo
a zřejmě jsem na to neměl nervy :-) Zkoušel jsem použít i libbpf, taky
bezúspěšně.
Vzdal jsem to a vrátil se k tomu cca o rok později... situace byla úplně
stejná x) Našel jsem ale knihovnu v Golangu, pomocí které si můžu
poskládat program z instrukcí, nahrát ho do kernelu a dokonce připojit k
cgroup! Nejlepší je, že k tomu není potřeba mít LLVM, zdrojové soubory
kernelu, libbpf, nic. Stačí Golang.
https://github.com/cilium/ebpf
Další nutný článek je virtuální souborový systém bpffs. BPF program
totiž zůstane v kernelu jen po dobu, kdy běží proces, který ho tam
nahrál. My takový proces prakticky nemáme, všechno se může při
aktualizaci restartovat... to by znamenalo, že se najednou ztratí
všechny programy hlídající přístup k zařízením.
Pokud na daný BPF program ale uděláme referenci v bpffs, program zůstane
v kernelu i po ukončení procesu, který ho vytvořil. Program pak uvolníme
smazáním souboru (jeho reference) v bpffs. Podobně můžeme dělat
reference na připojení programu (attach/link) k cgroup.
Celý náš stack je v Ruby, takže jsem na nastavovaní devices cgroup
udělal oddělený program v Golangu -- vznikl devcgprog. Ten z Ruby voláme
s cestou k cgroup a seznamem zařízení, které mají být povolené.
devcgprog vytvoří BPF program, nahraje ho do kernelu, uloží do bpffs a
připojí k cgroup. Kdyby se to někomu náhodou taky hodilo, devcgprog
najdete na githubu:
https://github.com/vpsfreecz/devcgprog
Použití je jednoduché:
devcgprog set /sys/fs/bpf/my-program \
/sys/fs/cgroup/my-cgroup \
/sys/fs/bpf/my-program-on-my-cgroup \
allow \
c:1:3:rwm c:1:5:rwm [...]
Parametry jsou: vytvořená reference v bpffs, cesta k cgroup, reference k
linku na cgroup, typ seznamu (allow pro allowlist a deny pro denylist) a
seznam zařízení.
Jeden BPF program můžete nahrát jednou a použít u vícero cgroup, k tomu
slouží devcgprog new/attach. U nás je kombinace možných programů omezená
podle VPS features. Jako název programu používáme hash všech zařízení,
existují tak programy pro různé kombinace TUN/TAP, KVM a PPP. Pokud už
program s daným hash existuje, uděláme jen attach na další VPS cgroup.
Oproti cgroups v1 je to stále méně přehledné, BPF program je v porovnání
s devices.list neprůhledný. Může taky dojít k tomu, že cgroup se smaže a
vytvoří znovu se stejným názvem, link soubor v bpffs zůstane, ale přitom
program tam už připojen není. Existence reference v bpffs tedy ještě
neznamená, že je vše v pořádku. Pravidelně tak voláme bpftool a
kontrolujeme, zda jsou programy správně nastaveny. To je jen pro
jistotu, nastavované cgroupy má pod kontrolou pouze root na nodu, tedy
by tato situace neměla nastat.
Neříkám, že BPF není super, naopak na trasování, flamegraphy, apod. je
to paráda. Akorát někdy není úplně snadné to použít :-)
Jakub
Ahoj,
(English below)
# Otisky SSH klíčů
V detailu VPS ve vpsAdminu nově najdete otisky SSH host klíčů
(fingerprints). Při prvním přihlášení přes SSH tak můžete zkontrolovat
identitu serveru. Otisky klíčů se vyčítají ze souborů
/etc/ssh/ssh_host_*.pub ve VPS. Klíče se čtou po každém startu VPS a pak
jednou za hodinu.
# Úpravy VPS adminy vpsFree
Šablony distribucí, ze kterých se vytváří nové VPS, mohou mít nastavení
specifické pro naše prostředí. Může se stát, že bug nebo nová vlastnost
aplikací či našeho prostředí bude vyžadovat změnu konfigurace systému.
Týká se to prakticky jen základního systému, tj. nastavení, které jsou
součástí šablon. Ve vpsAdminu máte možnost si nastavit, jestli o takové
úpravy máte zájem. Ve výchozím stavu je to povoleno. Pokud bychom ve VPS
něco měnili, budeme o tom informovat emailem.
Pro představu, nedávno jsme z kernelu odstranili cglimit cgroupu -- náš
vlastní controller, který se ukázal jako zbytečný. Distribuce se systemd
si s tím poradily samy, ale třeba Alpine/Devuan/Void mají seznam cgroups
zapsaný v init skriptu, takže jsme jej v existujících VPS museli upravit.
# cgroups v2
Tento rok bychom rádi započali přechod na cgroups v2. cgroups v Linuxu
se používají na účtování a limitaci skupin procesů. V našem prostředí je
to jeden ze základních prostředků pro izolaci VPS, používáme to primárně
na nastavení limitu paměti a času CPU. Na cgroups samozřejmě staví
všechny kontejnerové řešení jako docker, apod.
V současné době používáme cgroups v1 v hybridní hierarchii a právě
protože VPS jsou kontejnery, verze cgroups je daná hostitelem. systemd v
roce 2024 nejspíše přestane cgroups v1 podporovat, takže na to chceme
být připraveni. Aktuální distribuce už v2 podporují, ty starší jako
CentOS 7 budeme nadále provozovat na nodech s v1.
Ve vpsAdminu lze u VPS nastavit, jakou verzi cgroups VPS vyžaduje. Ve
výchozím stavu se to řídí šablonou distribuce. Pokud mají aplikace ve
VPS speciální požadavky, můžete si vynutit cgroups v1 a zabránit tak
budoucí migraci na v2. Naším cílem bude přesunout všechno co jde na
cgroups v2. Více info a seznam distribucí podporujících cgroups v2
najdete v KB:
https://kb.vpsfree.cz/navody/vps/cgroups
Žádnou akci z vaší strany to nevyžaduje, o případném přesunu VPS na
cgroups v2 budeme informovat individuálně v následujících měsících.
ENGLISH:
# SSH host key fingerprints
You can now see SSH host key fingerprints in VPS details in vpsAdmin.
You can check that the fingerprints match on your first SSH login,
making sure that you're connecting to your server. Key fingerprints are
read from /etc/ssh/ssh_host_*.pub files found inside the VPS. The files
are read on every VPS start and then once an hour.
# VPS modifications by vpsFree admins
New VPS are created from distribution templates and those can have
settings specific for our environment. It can happen that a bug or a new
feature in applications or our platform will require or benefit from
configuration change. You can configure whether you wish to have your
VPS updated by vpsFree admins should the need arise in VPS details in
vpsAdmin. It is enabled by default. We modify only the base system
configuration files and we will notify you by email when any changes are
made.
For example, we have recently removed the cglimit cgroup controller from
our kernel. It was our own creation and we've discovered it was only a
source of bugs. VPS using systemd handled this removal without any
problem, but distributions such as Alpine/Devuan/Void have the list of
cgroup controllers hardcoded in their init script. We've thus updated
the init script to not emit warning about cglimit mount failure on boot.
# cgroups v2
This year, we would like to begin transition to cgroups v2. cgroups in
Linux are used to account and limit groups of processes. On vpsAdminOS,
it is a fundamental component used to create a VPS. We use it primarily
to limit memory and CPU usage. cgroups are of course used by all other
container systems, such as docker, etc.
At this time, we're using cgroups v1 in a hybrid layout. Since VPS are
containers, the cgroup version is determined by the host. As systemd
will possibly remove support for cgroups v1 in 2024, we'd like to be
ready. Current distributions already support cgroups v2, the older ones
like CentOS 7 will be kept on nodes with cgroups v1.
Our goal will be to move as many VPS as possible to cgroups v2 nodes. By
default, we look at the distribution used inside the VPS to see if it
supports cgroups v2. If you wish, you can configure your cgroups version
preference in VPS details in vpsAdmin and pin it to cgroups v1 to
prevent future migration. More information about cgroups v2 and a list
of supported distributions can be found in KB:
https://kb.vpsfree.org/manuals/vps/cgroups
No action from you is needed at this time. We'll keep you updated about
the upcoming migration in the months to follow.
Jakub
Ahoj,
na VPS mám pomalý login. Trvá to cca 30 sekund, než proběhne ověření a
dojde k přihlášení. Když si dám u ssh podrobnější výpis, zjistím, že to
visí mezi těmito dvěma hláškami:
debug1: pledge: filesystem
debug1: client_input_global_request: rtype hostkeys-00(a)openssh.com
want_reply 0
Doteď mi to nevadilo, protože se k serveru nepřipojuju tak často, aby
mně těch 30 sekund vadilo, ale teď zkouším rozjet Cockpit a ten mi na
tom timeoutuje.
Našel jsem, že se to děje lidem s LXC, tak jsem se chtěl zeptat, jestli
jste taky na to u VPSfree nenarazili a jestli neexistuje nějaké
nastavení ssh nebo pam, které by to vyřešilo.
Jirka
Ahoj,
ladim spatny vykon zapisu do sqlite databaze v produkci (jak je to
dobre rozhodnuti nechme na jinou debatu :-D ); zapisy se deji v jednom
threadu. Problem je v tom, ze transakce v produkci jsou 10-20krat
pomalejsi nez u me na localhostu. Snazim se zjistit cim to je (driv
nez budu muset migrovat na jinou db).
Nesetkal jste se nekdo s necim podobnym? Nejake napady?
Zkousel jsem zreplikovat chovani pomoci jednoducheho (serioveho)
skriptu s 500 commity:
https://pastebin.com/huhhVGw2
vysledky: Journal (write ahead log) x synchronous mode (off
nejrychlejsi, normal bezpecnejsi & pomalejsi), cisla jsou mean +- std
vteriny.
localhost (ssd v notebooku)
journal= sync=OFF 1.051 +- 0.042
journal= sync=NORMAL 2.502 +- 0.237
journal=WAL sync=OFF 1.042 +- 0.022
journal=WAL sync=NORMAL 1.135 +- 0.065
produkcni stroj @ node21.prg
journal= sync=OFF 2.778 +- 1.415
journal= sync=NORMAL 2.876 +- 0.627
journal=WAL sync=OFF 2.382 +- 0.404
journal=WAL sync=NORMAL 2.475 +- 0.494
Prijde mi zvlastni maly rozdil mezi jednotlivymi rezimy ve vps & to ze
vse je o hodne pomalejsi nez nevirtualizovany stroj, myslite, ze to
vznika nejakou vps abstrakci nad ssd?
Nejake napady co s tim?
Diky,
JM
Ahoj,
přeinstaloval jsem si VPS z Debian 10 na Debian 11 a narazil jsem na jeden
problém.
Server občas použiju jako VPN server do internetu a proto jsem na něm
příslušný VPN provoz NAToval pomocí 'iptables' ven. Na Debianu 11 již
iptables nejsou, takže jsem použil ekvivalentní posloupnost 'nft'
pravidel.
Problém dělá konkrétně následující pravidlo:
/etc/firewall/ruleset.nft:13:60-63: Error: Could not process rule: No such
file or directory
add rule nat postrouting ip saddr 192.168.0.0/16 oif venet0 snat to
VPS.IP.ad.dr
^^^^
Poznamenávám, že na jiných strojích mi obdobné pravidlo funguje, jen na
VPS ne. Přijde mi to jako nějaké omezení vpsAdminOS.
Máte prosím někdo nějakou radu?
- Jirka