Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Zde uvedený komentovaný postup je sice otestován na Debianu, ale měl by být dostatečně obecný, abyste dokázali rozchodit OpenAFS i v ostatních distribucích.
Některé distribuce mají pomocné skripty, které mají za úkol provést inicializaci vazeb mezi Kerberem a AFS. V tomto návodu se jim vyhneme, což neznamená, že je nemůžete použít. Návod je hodně dlouhý a je v něm uvedeno několik „magických“ operací bez vysvětlení, v následujících dílech se k jejich vysvětlení postupně dostaneme. Uváděné balíky pro instalaci vychází z pojmenování pro distribuci Debian, pokud používáte jinou distribuci, prosím dohledejte si patřičné názvy balíků.
V předchozím článku jsme řekli, že je důležité mít synchronizovaný čas protokolem NTP. Protože předpokládám instalaci všech komponent na stejný stroj, mohu instalaci a konfiguraci NTP vynechat. Pokud se ale rozhodnete používat AFS spolu s Kerberem na více strojích, je použití NTP podmínkou.
První službu, kterou budeme potřebovat, je DNS. S obyčejným
/etc/hosts
si AFS nevystačí. Naše ukázková doména se bude
jmenovat foo.bar
a stroj afssrv.foo.bar
bude
mít několik jmen (aliasů), podle služeb, které
na něj dáme. Pokud již DNS ve své infrastruktuře máte a používáte jej, pak
můžete přeskočit na konfiguraci Kerbera. Jenom si pamatujte, že všechny
řetězce foo.bar
byste měli nahradit svojí doménou, v příkazech
stále dodržujte case-sensitive zápis.
Abychom se úplně osamostatnili, bude naše doména hostována v rozsahu 10.10.10.0/24. Za tímto účelem si vytvoříme alias k síťovému rozhraní eth0.
~# ifconfig eth0:10 10.10.10.1 netmask 255.255.255.0 broadcast 10.10.10.255 up
Samozřejmě doporučuji uložit do konfigurace vaší distribuce, v Debianu může
soubor /etc/network/interfaces
vypadat následovně:
auto lo auto eth0 auto eth0:10 iface lo inet loopback iface eth0 inet dhcp iface eth0:10 inet static address 10.10.10.1 netmask 255.255.255.0 network 10.10.10.0 broadcast 10.10.10.255 dns-search foo.bar
Na notebooku se mi nakonec osvědčilo navázání aliasu na loopback místo
na fyzické rohraní. Je pak možné používat pro fyzické rozhraní volbu
allow-hotplug
s kterou spolupracuje například network manager.
Uvádím zde dva návody pro DNS, protože BIND je obecně známý a často
používaný. Bohužel se příliš nehodí jako lokální DNS server na notebooku,
kde potřebujete forwardovat požadavky na různé servery podle lokality
v které se nacházíte. Proto je zde také uveden jednoduchý DNS server
dnsmasq
. Záleží jen na vás, co si vyberete.
Balík nainstalujte a prakticky stačí nastavit dvě položky (ostatní ponechte
zakomentované) v souboru /etc/dnsmasq.conf
:
local=/foo.bar/ address=/foo.bar/10.10.10.1
V /etc/resolv.conf
se budete odkazovat na rezoluci přes dnsmasq tímto minimálním nastavením:
nameserver 127.0.0.1 search foo.bar
Je možné, že vám to nastavil už nějaký nástroj ze systému, např. v Debianu balík resolvconf
.
Pokud na stroji nepoužíváte DHCP, ale statické nastavení sítě, pak
přidejte do /etc/dnsmasq.conf
řádek s vaším DNS serverem, například:
server=192.168.0.1
Na cokoliv se zeptáte z domény foo.bar
, dostanete vždy odpověď
10.10.10.1, což nám na notebooku naprosto vyhovuje. Přitom by dnsmasq měl
forwardovat dotazy dál podle toho, co získal z DHCP. Toto nastavení je
vhodné, pokud si AFS chcete odzkoušet, jestli s ním máte ale vážnější
úmysly, je vhodné přejít k plnohodnotnému DNS serveru. Důvodem může být
také využití speciálních záznamů v DNS (místo souboru CellServDB
)
pro klienty, což dnsmasq nepodporuje.
Nyní ověříme funkčnost nastavení:
~$ host afssrv.foo.bar afssrv.foo.bar has address 10.10.10.1 ~$ host www.abclinuxu.cz www.abclinuxu.cz is an alias for abicko.abclinuxu.cz. abicko.abclinuxu.cz has address 94.138.111.82 abicko.abclinuxu.cz has IPv6 address 2a01:430:10:ab::3 ~$ host 10.10.10.1 Host 1.10.10.10.in-addr.arpa. not found: 3(NXDOMAIN)
Pro získání reverzního záznamu, stačí přidat do /etc/hosts
následující řádek a provést restart DNS daemona:
10.10.10.1 afssrv.foo.bar afssrv
Nyní již dostaneme očekávaný výsledek:
~$ host 10.10.10.1 1.10.10.10.in-addr.arpa domain name pointer afssrv.foo.bar.
Občas se mi stává, že dnsmasq
přestane překládat doménu
foo.bar
. Dělá to zvláště při přenášení notebooku mezi sítěmi
s uspáním. Stačí jej restartovat a vše začne opět hezky fungovat.
Napřed upravíme soubor /etc/bind/named.conf.local
, kam zaneseme
definici zón s odkazy na konfigurační soubory.
zone "foo.bar" { type master; file "/var/lib/bind/foo.bar"; }; zone "10.10.10.in-addr.arpa" { type master; file "/var/lib/bind/foo.bar-rev"; };
Dále vytvoříme doménové záznamy, které jsme definovali výše, napřed soubor
/var/lib/bind/foo.bar
$ORIGIN foo.bar. $TTL 86400 @ IN SOA ns.foo.bar. hostmaster.foo.bar. ( 2002102101 10800 1800 1209600 604800 ) @ IN NS ns ns IN A 10.10.10.1 afssrv IN A 10.10.10.1 krbadmin IN CNAME afssrv krbkdc IN CNAME afssrv afsfs IN CNAME afssrv afsdb IN CNAME afssrvAliasy (CNAME) jsou zde z výukových důvodů, abyste viděli, co na který server patří a jak je možné AFS škálovat. Pokud nechcete aliasy používat, stačí, když budete jako jméno serveru používat
afssrv.foo.bar
.
Nyní ještě záznamy pro reverzní doménu v souboru
/var/lib/bind/foo.bar-rev
$ORIGIN 10.10.10.in-addr.arpa. $TTL 86400 @ IN SOA ns.foo.bar. hostmaster.foo.bar. ( 2002102101 10800 1800 1209600 604800 ) @ IN NS ns.foo.bar. 1 IN PTR ns.foo.bar. 1 IN PTR afssrv.foo.bar.
Nyní zkontrolujeme, jestli jsme neudělali chybu v konfiguraci:
~# named-checkconf /etc/bind/named.conf.local ~# named-checkzone foo.bar /var/lib/bind/foo.bar zone foo.bar/IN: loaded serial 2002102101 OK ~# named-checkzone 10.10.10.in-addr.arpa /var/lib/bind/foo.bar-rev zone 10.10.10.in-addr.arpa/IN: loaded serial 2002102101 OK
Provedeme restart DNS serveru a ověříme funkčnost:
~$ dig @10.10.10.1 afssrv.foo.bar
Pokud jsme dostali odpověď můžeme zkontrolovat, že v
/etc/resolv.conf
máme nameserver 127.0.0.1
.
Je možné, že systém za vás konfiguraci provedl, záleží jestli jste pro
konfiguraci použili systémové nástroje. Automatické doplňování domény
se provádí volbou search foo.bar
v /etc/resolv.conf
.
Většina distribucí má k dispozici nějaké nástroje pro konfiguraci sítě, proto doporučuji, abyste se řídili zvyklostmi svého systému.
Tento návod je určen pro MIT implementaci Kerbera, při použití
implementace Heimdal berte tento návod pouze jako vzor nutných úkonů.
Napřed nainstalujeme Kerberos V5 Authentication Service and
Key Distribution Center (AS/KDC), zkráceně jen KDC. Dále budeme potřebovat
administrátorský server a nástroje pro uživatelské rozhraní, v Debianu
jde o balíky krb5-kdc krb5-admin-server krb5-user
.
Upravíme soubor /etc/krb5kdc/kdc.conf
do následující podoby:
[kdcdefaults] kdc_ports = 750,88 [realms] FOO.BAR = { database_name = /var/lib/krb5kdc/principal admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab acl_file = /etc/krb5kdc/kadm5.acl key_stash_file = /etc/krb5kdc/stash kdc_ports = 750,88 max_life = 10h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3 default_principal_flags = +preauth }
A dále upravíme (nebo doplníme jednotlivé sekce)
v souboru /etc/krb5.conf
, tak aby obsahoval:
[libdefaults] default_realm = FOO.BAR allow_weak_crypto = yes [realms] FOO.BAR = { kdc = krbkdc.foo.bar admin_server = krbadmin.foo.bar } [domain_realm] .foo.bar = FOO.BAR foo.bar = FOO.BAR
V současné chvíli nelze servery pro Kerberos ještě spustit, napřed si nastavíme
administrátorské oprávnění pro uživatele v souboru /etc/kadm5.acl
,
kde pro principal spravce/admin
v realmu FOO.BAR
povolím všechny operace touto magickou řádkou:
spravce/admin@FOO.BAR *
Dále připravíme databázi pro náš realm a ochráníme ji heslem, které nezapomeneme:
~# cd /var/lib/krb5kdc/ /var/lib/krb5kdc# kdb5_util create -r FOO.BAR -s
Nyní přikročíme k vytvoření principalů pro AFS, budete dotázáni na jejich hesla, ty jsou také důležité, takže nezapomenout. Tentokrát jména uživatelů neměnit.
~# kadmin.local -p spravce/admin kadmin.local: addprinc afsadmin@FOO.BAR Principal "afsadmin@FOO.BAR" created. kadmin.local: addprinc afsadmin/admin@FOO.BAR Principal "afsadmin/admin@FOO.BAR" created. kadmin.local: addprinc -randkey afs/foo.bar@FOO.BAR Principal "afs/foo.bar@FOO.BAR" created. kadmin.local: ktadd -e des-cbc-crc:normal -k /var/lib/krb5kdc/keytab.afs afs/foo.bar Entry for principal afs/foo.bar with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/var/lib/krb5kdc/keytab.afs. kadmin.local: quit
Z posledního příkazu ktadd
si zapamatujte hodnotu čísla
verze (kvno), zde je to číslo 2, budeme ji potřebovat později
u konfigurace AFS.
V této chvíli by se mělo podařit restartovat Kerberos servery:
~# /etc/init.d/krb5-admin-server restart ~# /etc/init.d/krb5-kdc restart
Ve výpisu procesů byste měli vidět kadmind
a krb5kdc
.
Pokud se chcete dozvědět o protokolu Kerberos více a rádi byste jej použili i na něco dalšího, doporučil bych vám na úvod seriál Centrální správa účtů a Single Sign-On. Pro porozumění celého mechanismu protokolu je vhodný druhý díl. V našem seriálu Kerbera už více konfigurovat nebudeme, ale budeme využívat jeho ověřovacích služeb.
Pro minimální funkcionalitu AFS serveru potřebujeme databázové servery
openafs-dbserver
a servery pro práci se soubory z balíku
openafs-fileserver
. Pro vazbu na Kerberos ještě přihodit balík
openafs-krb5
. Napřed provedeme několik konfiguračních
operací, které budou vysvětleny průběžně v dalších dílech seriálu.
Předpřipravíme si seznam databázových serverů pro OpenAFS server
i pro OpenAFS klienta.
~# killall bosserver ~# bosserver -noauth ~# bos listhosts afssrv.foo.bar -localauth bos: can't open cell database (/etc/openafs/server) ~# echo "foo.bar" > /etc/openafs/ThisCell ~# echo "foo.bar" > /etc/openafs/server/ThisCell ~# echo ">foo.bar #testovaci bunka" >> /etc/openafs/CellServDB ~# echo "10.10.10.1 #afsdb.foo.bar" >> /etc/openafs/CellServDB ~# echo ">foo.bar #testovaci bunka" > /etc/openafs/server/CellServDB ~# echo "10.10.10.1 #afsdb.foo.bar" >> /etc/openafs/server/CellServDB ~# echo "FOO.BAR" >> /etc/openafs/krb.conf ~# echo "FOO.BAR" >> /etc/openafs/server/krb.conf ~# bos listhosts afssrv.foo.bar -localauth bos: could not find entry (getting key from local KeyFile) bos: running unauthenticated Cell name is foo.bar Host 1 is afsdb.foo.bar
Výsledkem by měl být právě poslední řádek, kde nás bosserver informuje,
že pro buňku foo.bar
zná jeden databázový server, zde
afsdb.foo.bar
.
Vytvoříme klíč na základě informace z Kerbera, teď budete potřebovat magické číslo „kvno“ (v příkazu nahraďte číslem, pro mě je to číslo 2) z přípravy Kerberos serveru:
~# asetkey add <kvno> /var/lib/krb5kdc/keytab.afs afs/foo.bar
Dále vytvoříme jednotlivé instance AFS serveru:
~# bos create afsdb.foo.bar ptserver simple /usr/lib/openafs/ptserver -cell foo.bar -localauth ~# bos create afsdb.foo.bar vlserver simple /usr/lib/openafs/vlserver -cell foo.bar -localauth ~# bos create afsfs.foo.bar fs fs /usr/lib/openafs/fileserver /usr/lib/openafs/volserver /usr/lib/openafs/salvager -cell foo.bar -localauth
Vytvoříme nejdůležitějšího uživatele v AFS databázi (heslo je uložena v Kerberu), přidáme jej do skupiny správců a vložíme jej na všechny naše servery jako administrátora BosServeru. Na závěr ukončíme všechny instance i samotný BosServer, protože běžel bez autentizace a to není dobré.
~# pts createuser -name afsadmin -cell foo.bar -localauth User afsadmin has id 1 ~# pts adduser afsadmin system:administrators -cell foo.bar -localauth ~# bos adduser afssrv.foo.bar afsadmin -localauth ~# bos shutdown afssrv.foo.bar -wait -noauth ~# killall bosserver
Pro souborový server budeme potřebovat alespoň jedno úložiště. Své úložiště
naformátujte svým oblíbeným souborovým systémem a připojte
do adresáře /vicepa
. Pokud nemáte samostatnou
partition, pak vytvořte adresář (může být i symbolický link) a v něm
soubor AlwaysAttach
:
~# mkdir /vicepa ~# touch /vicepa/AlwaysAttach
Nyní stačí server nastartovat a zkontrolovat:
~# /etc/init.d/openafs-fileserver start ~# bos status afssrv -localauth Instance ptserver, currently running normally. Instance vlserver, currently running normally. Instance fs, currently running normally. Auxiliary status is: file server running.
Pro AFS jsou velmi důležité dva volumy, které musíme vytvořit dříve, než pustíme klienta:
~# vos partinfo localhost -localauth Free space on partition /vicepa: 18157120 K blocks out of total 19593852 ~# vos create afsfs.foo.bar /vicepa root.afs -cell foo.bar -localauth Volume 536870912 created on partition /vicepa of afsfs.foo.bar ~# vos create afsfs.foo.bar /vicepa root.cell -cell foo.bar -localauth Volume 536870915 created on partition /vicepa of afsfs.foo.bar
Z bezpečnostních důvodů odstraníme soubor
/etc/kadm5.acl
. Pokud jej budeme potřebovat, tak jej znova
vytvoříme.
~# rm -f /etc/kadm5.acl
Poslední, co nám zbývá je AFS klient, ten buď máte předkompilovaný k
jádru nebo si jej budete muset zkompilovat. V Debianu doporučuji pro
kompilaci použít balík openafs-modules-dkms
nebo z balíku
module-assistant
příkaz m-a a-i -t openafs
.
Před startem klienta je vhodné nastavit v
/etc/openafs/afs.conf.client
hodnoty následovně:
AFS_CLIENT=false AFS_AFSDB=true AFS_CRYPT=true AFS_DYNROOT=false AFS_FAKESTAT=true
Po kompilaci a instalaci doprovodných
balíků openafs-client
můžeme celou infrastrukturu vyzkoušet.
Pro všechny tyto příkazy můžeme být kdokoliv,
kdo zná heslo k uživateli afsadmin
z Kerbera.
~# mkdir /afs ~# /etc/init.d/openafs-client force-start ~$ kinit afsadmin Password for afsadmin@FOO.BAR: ~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: afsadmin@FOO.BAR Valid starting Expires Service principal 02/22/11 22:59:28 02/23/11 08:59:28 krbtgt/FOO.BAR@FOO.BAR renew until 02/23/11 22:59:26 ~$ aklog ~$ tokens Tokens held by the Cache Manager: User's (AFS ID 1) tokens for afs@foo.bar [Expires Feb 23 08:59] --End of list-- ~$ mount | grep AFS AFS on /afs type afs (rw) ~$ fs examine /afs File /afs (536870912.1.1) contained in volume 536870912 Volume status for vid = 536870912 named root.afs Current disk quota is 5000 Current blocks used are 2 The partition has 18156992 blocks available out of 19593852
Souborem /etc/openafs/afs.conf.client
se ovládá základní
chování OpenAFS klienta. Nejzajímavější je položka AFS_CLIENT
,
kterou se ovládá start klienta při bootu. Pokud je nastavena na
false
, lze klienta nastartovat ručně rc skriptem
/etc/init.d/openafs-client force-start
.
Položka AFS_DYNROOT
umožňuje automaticky generovat kořen AFS. Pokud ji zapnete a provedete
restart klienta, uvidíte celý AFS svět. Potíž s touto volbou je, že start
klienta a připojení svazku je náročnější, jak na konektivitu, tak na potřebný
čas a není doporučována. Časem si ukážeme, jak tuto nevýhodu snadno obejít.
Pokud rádi používáte nejnovější jádro, tak se s OpenAFS klientem budete muset začít krotit. Většinou je vývoj modulu trochu pozadu a do distribucí se dostává ještě později. Přesto odskok není nijak velký, čtěte changelog, ve kterém je uváděna poslední podporovaná verze jádra.
Klient vám nemusí startovat, pokud používáte jiný než jeho oblíbený
souborový systém. Nejvhodnější je pro /var/cache/openafs
použít ext2 nebo ext3. Pokud tomu tak není, můžete cache klienta přepnout
do paměti nastavením volby OPTIONS=-memcache
v /etc/openafs/afs.conf
.
Přestože teď v /afs
nic nevidíte, jste v cíli a AFS vám funguje.
Mnoho věcí zde nebylo vysvětleno a ani být nemohlo, protože by z toho byl
další seriál. Pokud jste narazili na nějaké problémy, postupujte klasicky:
prohlídkou logů, manuálů, internetových vyhledávačů a případně se můžete
zkusit zeptat v diskusi.
Poděkování patří Petru Hříbalovi, který poskytl podklady pro tento díl.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Abychom se úplně osamostatnili, bude naše doména hostována v rozsahu 10.10.10.0/24. Za tímto účelem si vytvoříme alias k síťovému rozhraní eth0.V článku o systému, který dnes neumí IPv6, by mě to možná nemuselo překvapovat, ale... ifconfig a alias k síťovému rozhraní?~# ifconfig eth0:10 10.10.10.1 netmask 255.255.255.0 broadcast 10.10.10.255 up
Myslím, že o příkazu ip
tu toho bylo napsáno mnoho.
Příkaz ifconfig fungoval naposledy ve verzi jádra 2.2 (rok 1999). Od té doby je to jen nedokonalá simulace.
ifconfig
& route
nebo novější a všeobalující ip
. Osobně dávám přednost prvním dvěma, bohužel však u tunelů otvírají některá bezpečnostní rizika a je doporučeno se jim vyhýbat. Proto se budu držet spíše příkazu ip
.
Jsou tam pak ukázky obou, ale více se opravdu drží ip
. Ale ta věta "Osobně dávám přednost prvním dvěma..." mě, staromilce, potěšila. iface eth0:10 inet static
v Debianím /etc/network/interfaces
jsem nikde nenašel. Asi špatně hledám. Můžete mě prosím odkázat na jeden z mnoha článků (nejlépe v češtině), který to popisuje?
Jak nahradit řádek iface eth0:10 inet static v Debianím /etc/network/interfaces jsem nikde nenašel.Nijak, prostě do definice eth0 přidáš post-up a pre-down. man interfaces
ifdown eth0:10
".