Push-spegling

”Push”-spegling är en form av spegling som minimerar tiden det tar för ändringar i huvudarkivet att nå speglarna. Master-servern använder en utlösarmekanism för att omedelbart informera klientspegeln om att den måste uppdateras.

”Push”-spegling tar lite mer tid i anspråk att sätta upp, eftersom de som är ansvariga för upp- och nedströmsspeglarna måste utbyta information. Fördelen är att uppströmsspegeln är den som påbörjar speglingsprocessen direkt efter att dess eget arkiv har uppdateras, vilket gör att ändringar i arkivet propageras extremt snabbt.

Förklaring av metoden

Först en kort förklaring av ssh: Ssh gör det möjligt att koppla upp sig mot konto på olika maskiner på ett säkert sätt. Förutom att lösenord aldrig sänds i klartext, så är du även i stora drag garanterad att så fort du gjort en uppkoppling mot en maskin att framtida uppkopplingar verkligen sker mot samma maskin, något som förhindra många attacker av typen ”man-in-the-middle”, alltså att någon på vägen avlyssnar/förändrar kommunikationen.

En funktionalitet som finns i ssh är möjligheten för användaren att lägga den publika identitetsnyckeln för en användare på en annan maskin och lägga den bland de auktoriserade nycklarna på sin egen maskin. Standardinställningen är då att användaren på den andra maskinen (som har den privata identitetsnyckeln som hör ihop med den publika identitetsnyckeln som du fått) då får inloggningsbehörighet på ditt konto. Det är dock möjligt att lägga in en text till en auktoriserad nyckel som begränsar den typ av åtkomstbehörighet som den person som använder den nyckeln för att komma åt ditt konto får.

Därför, för att skydda spegeln nedströms, har nyckeln som fås av spegeln uppströms en sådan begränsning som bara tillåter personen som använder ditt konto att göra en sak – att starta programmet på din maskin som uppdaterar din spegel. Även om någon (en elak tredje part) lyckats knäcka nyckel så är det enda de kan göra att starta speglingsprogrammet på din maskin. Du behöver inte ens oroa dig för att flera kopior av programmets startas, eftersom en låsfil används.

Rsync på maskinen uppströms kan konfigureras att begränsa vilka som kan spegla en viss avdelning medelst användarnamn och lösenord. Dessa är helt separerade från /etc/passwd så en ”push”-server behöver inte oroa sig för att ge andra tillgång till sin maskin. Detta bör dock inte vara ett problem, eftersom det värsta som kan hända är att en tredje part får möjlighet att spegla Debiansidorna från den platsen.

Sätta upp en ”push”-speglingsklient

Det är bäst att sätta upp detta med ett konto för en vanlig användare, inte root. Innehållet i den publika ssh-nyckeln som du får från spegeln uppströms ska placeras i ~<användare>/.ssh/authorized_keys.

För att bli ”push”-klient för ftp-arkivet behöver du sätta upp spegling med hjälp av vår standardskriptsamling ftpsync. Kopiera ftpsync.conf.sample till ftpsync.conf och modifiera filen för att passa ditt system och värdena som tillhandahålls av upstream.

Push-Primary-klienter

”Push-Primary”-speglingsklienter, även kända som nivå-1-speglar (”Tier-1”), är de ”push”-speglingsklienter som tillåts spegla från vårt huvudarkiv.

Om din server har en väldigt bra anslutning (både väldigt bra bandbredd och bra koppling till de stora ryggradsnäten), och du är villig att låta andra platser spegla från dig, så kan du överväga att berätta det för oss, så att vi kan överväga att låta dig bli ”push”-server. Du kan dock inte förvänta dig att det händer inom kort tid, eftersom vi redan har ett hyfsat antal nivå-1-speglar.

Om din plats blir en primär ”push”-spegel för ftp-arkivet behöver du en av följande filer:

Om din plats blir en primär ”push”-spegel för webbsidorna behöver du den öppna SSH2-nyckeln använd av www-master.debian.org.

Sätta upp en ”push”-speglingsserver

Givet det stora antalet speglar och storleken på Debianarkivet är det inte möjligt för alla speglar att använda huvudarkivet som uppströmskälla för Debian (dvs. deras ”push”-speglingsserver). Det är mycket mer effektivt att fördela belastningen över ett antal ”push”-speglar utspridda över jordklotet.

”Push”-speglingsservrar bör vara ”push”-speglingsklienter hos huvudarkivet (eller möjligen någon annan ”push”-spegel), och bör dessutom innehålla en spegel av hela Debianarkivet.

Se förklaringssidan för detaljerad information.