Steve Friedls Unixwiz Tech Tips Många användare har implementerat Secure Shell (ssh) för att tillhandahålla skyddad åtkomst till ett avlägset Linux-system, men inser inte att genom att tillåta lösenordsautentisering är de fortfarande öppna för brutna kraftattacker från var som helst på internet. Det finns maskar som löper på Internet, vilket gör ett effektivt jobb med att hitta svaga användarnamppassordkombinationer, och dessa stoppas inte av användningen av Secure Shell. Denna Tech Tips beskriver hur du använder den kostnadsfria PuTTY SSH-klienten för att ansluta till ett Linux-system som kör OpenSSH-servern, samtidigt som du använder public key-kryptering och SSH-agent support. Mycket av denna information gäller för alla OpenSSH-installationer på något UNIX-system - Solaris, BSD, OpenServer - men vi har justerat detta till Linux-plattformen när specifika krav krävs. Installation och enkel configlogin Om du vill ha fullständig lösenordslös, agentbaserad åtkomst krävs många steg, så bra närma dig detta i steg genom att först tillhandahålla regelbunden lösenordsadkomst till systemet. Detta möjliggör testning av den ursprungliga installationen och möjligheten att logga in innan du aktiverar de mer avancerade funktionerna. Ladda ner och installera programmen Till skillnad från de flesta Windows-program behöver PuTTY-suite inte ett installationsprogram: de enskilda. EXE-filerna släpps helt enkelt i en katalog där de körs direkt. Vi beundrar ekonomin och stilen som PuTTYs författare demonstrerar. Filerna kan släppas in i vilken katalog som helst i användarkommandon, och vi brukar använda C: BIN (se nästa punkt för hur du konfigurerar detta). Fem filer ska laddas ner från PuTTY-webbplatsen. PuTTY. exe mdash Secure Shell-klient PuTTYgen. exe mdash SSH publicprivate-nyckelgenerator Pagent. exe mdash SSH-nyckelagent PSCP. exe mdash Säker kopia från kommandoraden PSFTP. exe mdash Säker kopia med FTP-liknande gränssnitt Försäkra dig om att installationskatalogen finns i kommandot väg Även om det är möjligt att köra PuTTY med en hel sökväg eller genväg, är den praktiskt användbar när den är fullt tillgänglig vid CMD-prompten för att komma åt eller kopiera filer var som helst i filsystemet. Högerklicka på Den här datorn på skrivbordet och välj Egenskaper. Klicka på fliken Avancerat högst upp och klicka sedan på knappen Miljövariabler. Detta ger dialogrutan som visas till höger. Det finns alltid PATH-variabel i avsnittet Systemvariabler, och ibland även i användarvariablerna. Endast administratörer har tillgång till systemvariabler, så rediger eller lägg till PATH efter behov. Vi lägger vanligen den nya katalogen i början av sökvägen, och den skiljs från resten av listan med en semikolon. Klicka på OK för att spara alla ändringar. Skapa en genväg på skrivbordet PuTTY används ofta kraftigt av en IT-arbetare, så det är bra att ha en genväg på skrivbordet för att göra det enkelt att komma åt. För att lägga till detta, högerklicka på skrivbordet och klicka på Ny genväg. Varken Bläddra till eller skriv in namnet på sökvägen till PuTTY-körbar. I vårt exempel har det varit C: binputty. exe. Klicka på OK och ge genväg ett bekvämt namn. Starta PuTTY och konfigurera för målsystemet Starta PuTTY via genvägen, och det kommer att visa konfigurationsdialogrutan: det finns många alternativ här. Tja fyll i flera för att ge passordad tillgång till systemet, och konfigurera sedan för offentlig nyckelåtkomst senare. Kategori: Värdnamn: dbserver Protokoll: () SSH-anslutning. Data Automatisk inloggning användarnamn: steve Connection. SSH Preferred SSH Protocol Version: () 2 Endast när dessa enkla inställningar har angetts kan de sparas för att göra det enkelt för nästa gång. Klicka på Session till vänster och ange ett namn i sparade sessioner - det här namnet brukar vara relaterat till den maskin du ansluter till. Klicka på Spara för att lagra dessa inställningar i registret: weve valt namnet Databas server. Logga in Med de sparade inställningarna från föregående steg, vill du använda dem för att ansluta till målsystemet. Starta PuTTY (om det inte redan är öppet), och i avsnittet Session, klicka på namnet på den sparade sessionen och klicka på Ladda. Klicka på Öppna för att starta anslutningen. När du uppmanas ange lösenordet för ditt konto på fjärrsystemet, och om det är korrekt får du ett skal. Nu kan du börja arbeta med systemet. Men - varje gång PuTTY ansluter till en server, utbyter den identifiering i form av värdnycklar. Om värdnivån är okänd, eller matchar inte vad vi tidigare sett, varnar det användaren. För okända värdar är det för det mesta en proforma-operation, men för tidigare kända system kan det föreslå att värden inte är samma som ursprungligen ansluten. Värdtangenter som har ändrats utan varning kan inträffa när måloperativsystemet installeras om utan att återställa värdnycklarna från säkerhetskopiering, eller det kan vara något mer häftigt, som en skurk värd som maskerar som den äkta. Man bör alltid fråga om oväntat ändrade värdnycklar Skapa och använda flera sessioner När användaren bara behöver ansluta till ett system kan man programmera i dessa parametrar i standard sessionen, men det är mycket vanligare att få åtkomst till flera system. Med lite setup kan vi enkelt skapa och ansluta till dessa system med ett klick. Skapa och spara sessionerna Som vi gjorde i föregående avsnitt, skapa och spara så många namngivna sessioner efter behov och notera sessionsnamnen. Dessa namn kan refereras på kommandoraden med parametern - load, och kan inbäddas i genvägen. Högerklicka på genvägen och välj Egenskaper, och ange parametervärdet tillsammans med namnet på sessionen (i citat om det behövs). Klicka på OK för att spara genvägsegenskaperna. Det är också en bra idé att byta namn på genvägen för att återspegla serverns namn som den ansluter till: högerklicka på genvägen och välj Byt namn på. När genvägsgenvägen är helt konfigurerad, startar du dubbelklickningen på ikonen. Skapa så många förprogrammerade genvägar som behövs. Skapa och installera en publicprivate keypair Den verkliga effekten av Secure Shell kommer till spel när publicprivate keys används. Till skillnad från lösenordsautentisering görs public key access genom att utföra en enstaka skapelse av ett par mycket långa binära nummer som är matematiskt relaterade. Det ursprungliga konfigurationssteget är måttligt inblandat, men behöver bara göras en gång: När en gång har skapats kan nyckeln enkelt installeras på så många fjärrsystem som önskat. Kör PuTTYgen Ett par publicprivate keys mdash små filer som innehåller mycket stora binära nummer mdash krävs, och PuTTYgen gör det här. Det går bara en gång att skapa ett personligt par nycklar, som sedan installeras när det behövs. Klicka på Start. sedan kör. skriv sedan in puttygen i kommandoraden. Detta visar huvuddialogrutan, som visas till höger. Välj nyckelparametrar som visas och klicka sedan på Generera. Eftersom DSA-tangentbordet är fixerat till 1024 bitar, och RSA-knappsatsen kan göras mycket större rekommenderar vi en 2048 bitars RSA-nyckel. Observera att standardinställningen är 1024 bitar, du måste manuellt åsidosätta för att välja 2048. Obs! Skapa inte en SSH version 1 av något slag: de är inte säkra. Du kommer att uppmanas att skapa lite slumpmässighet genom att flytta musen runt: detta ger systemet ytterligare entropi som hjälper till att skapa bättre nycklar. Det tar bara några sekunder att helt generera tangentbordet. Skydda och spara nycklarna Nu har tangentbordet genererats, men existerar bara i PuTTYgens minne: det måste sparas på disk för att det inte ska användas. Även om den offentliga nyckeln inte innehåller någon känslig information och kommer att installeras på fjärrsystem, måste den privata nyckeln skyddas kraftigt: den som känner till den privata nyckeln har full körning av alla fjärrsystem. Den privata nyckeln skyddas vanligen med ett lösenordsfras, och denna fras anges två gånger i de angivna fälten. Kommentaren är valfri men är vanligtvis e-postadressen till nyckelägaren. Det kan också bara vara ägarens namn. Glöm inte lösenordsfrasen, den är inte användbar utan det. Den genererade nyckeln måste nu sparas, och detta görs i tre delar: Spara den offentliga nyckeln och spara den privata nyckeln båda frågar efter ett filnamn och den privata nyckeln (med. ppk-tillägg) ska sparas på ett säkert ställe. Den offentliga nyckeln är i standardformat och kan användas direkt eller indirekt av annan programvara och det ser ut så här: Den privata nyckeln är i ett PuTTY-specifikt format som inte kan användas av någon annan programvara. Det kommer aldrig att ses direkt av operatören. Installera den offentliga nyckeln på Linux-systemet Med puttygen fortfarande öppen markerar du hela Public Key för att klistra in i OpenSSH authorizedkeys-filområdet och skriv kontroll-C för att kopiera till det lokala systemklippet. Detta är i huvudsak samma data som hittades i den sparade public key-filen, men i en form som kan användas direkt på Linux-systemet. Logga in på Linux-datorn med hjälp av lösenordet för kontot, skapa. ssh-katalogen om det behövs, och rediger sedan filen. sshauthorizedkeys. Detta kommer att bli en textfil, och urklippet ska klistras in i det. Den offentliga nyckeln kommer bara att vara en lång rad, och det är väldigt enkelt att klistra in data på ett sätt som avkortar de första tecknen. Detta gör nyckeln oanvändbar, så var säker på att nyckeln börjar ssh-rsa eller ssh-dsa. Spara filen. Försäkra dig om att både. ssh-katalogen och filerna i den endast kan läsas av den nuvarande användaren (det här är en säkerhetsåtgärd), och detta kan uppnås med chmod-kommandot med parametrar som gäller hela katalogen: Logga ut från systemet. Obs - filen authorizedkeys måste ägas av användaren och oreadableunwritable av någon annan - OpenSSH-servern kommer att neka inloggningar om det inte är fallet. Man kan kontrollera detta med kommandot ls: Filen måste vara läget - rw -------. Fäst den privata nyckeln till SSH-sessionen Nu när publicprivate keypair har skapats kan den associeras med en SSH-session. Först gör du det här i PuTTY genom att starta programmet och ladda den aktuella sessionen. Navigera till Connection. SSH. Auth i kategorin rutan till vänster, fyll sedan i den privata nyckelfilen för autentiseringsfält genom att bläddra till. ppk-filen som sparats tidigare. Obs! Med andra Secure Shell-klienter har vi sett möjligheten att bifoga en privat nyckel till alla sessioner (som en del av en global konfiguration), men med PuTTY verkar det krävas konfiguration för varje session. Var inte säker varför. Återgå till kategori Kategorin Session och spara den aktuella sessionen. Vid denna tidpunkt är PuTTY (på Windows) och OpenSSH (på Linux) konfigurerad för säker, allmännyttig åtkomst. Anslut via den offentliga nyckeln Nu när konfigurationsstegen har slutförts, var redo att faktiskt logga in med den allmänna nyckelmekanismen, vilket helt undviker lösenordssteget. Anslut säkert Starta PuTTY med alternativ för att ladda den sparade sessionen med den privata nyckeln: I stället för att fråga om lösenordet för kontot (vilket kommer att skilja sig från varje fjärrsystem), begär det istället lösenordsfrasen som skyddar den lokala privata nyckeln. När den privata nyckeln passar in i den offentliga nyckeln på OpenSSH-servern, erhålls åtkomst och ett skal som presenteras för användaren. Det är viktigt att notera att även om användaren måste skriva ett hemligt ord när han loggar in, är lösenfrasen associerad med den lokala privata nyckeln. inte fjärrkontot. Även om användarens allmänna nyckel är installerad på 1000 olika fjärrservrar, krävs samma lösenord för privat nyckel för alla. Detta förenklar i hög grad uppgiften att komma ihåg access credentials och uppmuntrar valet av starka, säkra. Inaktivera lösenordsautentisering på OpenSSH När användarna offentliga och privata keypair är verifierade som korrekta kan du helt och hållet avaktivera lösenordsautentisering på Linux-servern. Detta förhindrar helt och hållet alla möjliga lösenordsgissar och försäkrar dramatiskt en maskin. För maskiner som inte är fysiskt lokala är det dock klokt att skjuta upp inaktiveringen av lösenordsautentisering tills det är helt klart att nyckelåtkomsten fungerar korrekt, speciellt om flera användare är inblandade. När lösenordsautentisering har inaktiverats, tillåter inte root-lösenordet en till systemet. De nya tillgångarna till allmänhetens nyckel uppmuntras att testa mycket noggrant. Konfigurationen av SSH Daemon finns i filen sshdconfig, som ofta lagras i etcssh-katalogen. Det här är en textfil som är relativt lätt att läsa och letar efter två poster för att ändra. Först är att ställa in PasswordAuthentication till värde nr. Detta kan uttryckligen sättas till ja. eller det kan kommenteras att förlita sig på standardvärdet, men vi vill uttryckligen avaktivera detta: För det andra vill vi avaktivera SSH-protokollversion 1: det här är gammalt, har flera betydande säkerhetsbrister och bör inte tillåtas från omvärlden . Redigera konfigurationsfilen och se till att de två sökordsposterna är inställda korrekt kommentera de gamla posterna om det behövs. När konfigurationsfilen har sparats måste Secure Shell-demonen startas om på de flesta plattformar, vilket kan göras med servicemekanismen: Detta dödar lyssningsdemonen och startar om det men avslutar inte några existerande enskilda användarsessioner. De som känner det här kan vara ett riskabelt steg, uppmanas att helt enkelt starta om maskinen. Vid denna tidpunkt accepterar OpenSSH inte längre lösenord av något slag, med tillgång endast beviljad för användare med förinställda offentliga nycklar. Aktivera SSH Agent Support Fram till den här tiden tillhandahöll weve ett stort sätt att säkerställa systemåtkomst, men det är fortfarande inte hemskt bekvämt: vi måste fortfarande skriva en (förhoppningsvis) komplex lösenordsfras varje gång. Detta kan bli tråkigt när ett stort antal system är involverade. Lyckligtvis tillhandahåller SSH-sviten en underbar mekanism för att låsa upp den privata nyckeln en gång och tillåter individuella ssh-anslutningar att piggyback på det utan att fråga för lösenordsfrasen varje gång. Starta agenten Navigera till och starta pageant. exe-programmet från samma plats som de andra PuTTY-relaterade filerna, och det kommer att sätta sig in i systemfältet (längst ner till höger vid klockan). Dubbelklicka på ikonen i facket och det startar en dialogruta med en tom lista med nycklar. Klicka på Lägg till nyckel och navigera till. ppk-filen som innehåller din privata nyckel. När du uppmanas till lösenordsfrasen anger du den och klickar på OK. Klicka på Stäng för att avvisa agenten. Nu startar du en av de redan konfigurerade SSH-sessionerna till en pubkey-säker fjärrd värd: den kommer att fråga agenten för den privata nyckeln, byta den med fjärrkontrollen och ge åtkomst utan ytterligare användarintervention. Obs! Den omtänksamma läsaren kanske undrar hur agenten lagrar data, och om otillförlitliga program kan få den här hemliga nyckeln surreptitiously. Var inte säker på hur det fungerar, men vi har aldrig hört talas om verkliga säkerhetsproblem på den här fronten. Tja uppdatera detta dokument om vi lär oss något. Förläng privat nyckel Det första som många PuTTY-användare gör när man loggar in i systemet för dagen är att starta agenten och lägga till den privata nyckeln. Det här är bara några steg, men vi kan optimera det bara lite mer. Om vi startar agenten med den privata nyckelfilen som parameter, laddar den automatiskt nyckeln. Navigera till pageant. exe och högerklicka för att kopiera den här ikonen. Klistra in det som en genväg på skrivbordet, högerklicka och välj Egenskaper. Ange den fullständiga sökvägen för. ppk privat nyckelfil som parameter och spara sedan ändringarna. Dubbelklicka på den här ikonen kommer att ladda keyfilen och kräva lösenordsfrasen. En gång in, det är sista gången det behövdes så länge agenten sitter fast. Det är väldigt lite att inte tycka om SSH-agentens stöd. Agent Vidarebefordran Men vi har inte uttömt fördelarna med SSH-agent support. Det är en klar vinst för att undvika att skriva lösenordsfrasen varje gång en ny anslutning startas, men SSH tillhandahåller också Agent Forwarding som kan överföra referensuppgifterna nerför anslutningen till fjärrservern. Denna referens kan sedan vidarebefordras till en annan server där användarens allmänna nyckel har installerats, avviker lösenord eller den hemliga lösenfrasen under hela nätverksnavigeringen. Användaren startar en anslutning till Server A: PuTTY på den lokala maskinen får den privata nyckeln från agenten och ger den till fjärrservern. Fjärrserver hanterar de offentliga och privata nyckeldata och ger tillgång till. Användaren får ett skal på det lokala systemet. Användaren försöker ansluta till SystemB med ssh - A systemb (-A möjliggör agenter vidarebefordran), och det ansluts till SSH-servern där. System B frågar system A för användarens privata nyckeldata och SSH-servern på system A skickar den här tillbaka till den ursprungliga arbetsstationen där agenten är frågad. Den lokala agenten överför dataen till anslutningen, där den vidarebefordras från SystemA till SystemB. SystemB tar emot denna referens, och åtkomst beviljas genom att jämföra med den offentliga nyckeln som lagras på den maskinen för den användaren. Detta händer automatiskt och snabbt: det tar inte mer än en sekund eller två för hela utbytet att ske, och denna vidarebefordran kan gå över ganska lång kedja av SSH-anslutningar. Detta ger en säker och säker tillgång till ett brett spektrum av fjärranslutna system. Obs! Allt detta kräver att användaren har ett konto för varje maskin i fråga och att användarens allmänna nyckel är korrekt installerad på var och en. SSH vidarebefordran ger inte någon åtkomst som inte skulle beviljas frånvarande vidarebefordran det bara lägger till en mer bekväm mekanism till vad som redan tillhandahållits. Aktivera vidarebefordran i PuTTY Aktiveringsagentens vidarebefordran görs i PuTTY-konfigurationsdialogrutorna, ungefär som resten, och bara en extra låda måste kontrolleras. Det här alternativet kräver självklart användningen av språket på det lokala systemet - utan en agent finns det inget att vidarebefordra. Om en nyckelskyddad anslutning försökas utan att någon agent är närvarande, kommer PuTTY helt enkelt att be om lösenordsfrasen som den har hela tiden (och kommer att göra det på varje anslutning). Aktivera vidarebefordran på servern I exemplet ovan såg vi att användaren skrev ssh - A-värd. men det är vanligt att göra Använd agent som vidarebefordrar standardinställningen för att ta bort behovet av att skriva - A. OpenSSH-serverkonfigurationen finns i sshdconfig. medan klientkonfigurationen är i sshconfig (vanligtvis i massh-katalogen). Filen kan redigeras och inställningen ForwardAgent ställs till ja: Den här inställningen påverkar inte servern, så det kräver ingen omstart eller specialoperation för att den ska träda i kraft: nästa utgående anslutning aktiverar vidarebefordran automatiskt. Denna ändring behöver endast göras en gång (och det är standard på vissa system). Kopiera filer på ett säkert sätt Med konfigurationen av PuTTY var public key access och agent support (med vidarebefordran) beredda att gå utöver terminal shell access och flytta filer runt. Secure Shell tillhandahåller flera metoder för att kopiera filer från en maskin till en annan, alla arbetar tillsammans med samma nycklar och agenter. PSCP möjliggör kommandorad kopiering av filer till och från en fjärr SSH-server, och PSFTP ger ett FTP-liknande gränssnitt för bekväm filöverföring. Tja diskutera båda. PSFTP - en FTP-liknande klient PSFTP-programmet kan startas från kommandoraden eller från en skrivbordsgenväg och i båda fallen accepterar antingen ett värdnamn eller ett sparade sessionsnamn. När den lanseras kopplas den till målservern (fullt ut utnyttja de offentliga nycklarna och den lokala agenten, om någon) och presenterar en psftpgt-prompten: Vanliga användare av kommandorads FTP-klienter kommer att hitta detta bekant, men det är verkligen inte upp till användarvänlighet som populära GUI-klienter. Hjälpkommandot kan ge lite vägledning. PSCP - Secure Copy-användare på kommandoraden kan vilja kopiera filer direkt, och detta görs med pscp. kommandot Secure Copy. Precis som att kopiera vanliga filer på det lokala filsystemet tar pscp ett maskinnamn och en katalog som en källa eller destination. pscp kan överföra en fil åt gången, eller en hel uppsättning i en enda instans: Det är underbart att det sparade sessionsnamnet inte behöver tillhandahållas bara värdnamnet och det aktuella användarnamnet (som vanligtvis tas automatiskt från miljön. Det verkar som psftp och pscp både konsultera listan med sparade sessioner, hitta en lämplig matchning och använd sedan åtkomstinformationen. Det ger en smidig filöverföring. Säkerhetshinder och Finer-poängen Denna Tech Tip har till syfte att ge en snabb väg till inställning upp en säker Shell-miljö från arbetsstation till server, men den har hoppat över många av de finaste punkterna. Hela poängen med att använda Secure Shell är Säkerhet och vi måste vara ombedda om vi inte rörde några av dessa punkter här. peka på att man måste vara försiktig när man arbetar på ett otillförlitligt system: när man använder avancerade funktioner som agenter vidarebefordran eller privata nycklar, är en till förmån för en fientlig operatör. Kärnbaserade keyloggers och trojanerade binssh bi naries är bara några av många uppenbara risker när de arbetar i den typen av miljö. Här är det bra att ta reda på några av de osynliga punkterna och notera att i en pålitlig och kontrollerad miljö uppstår dessa problem helt enkelt inte. Skydda din privata nyckel Även om den offentliga nyckeln bara är av mindre betydelse, måste den privata nyckeln skyddas kraftigt. Den som kan komma till den dekrypterade privata nyckeln (antingen genom att lära lösenordsfrasen eller brute-force it) har full körning av alla nätverk där den offentliga nyckeln är installerad. Vi rekommenderar starkt att du dramatiskt begränsar antalet platser där den privata nyckeln hålls. Vi antar att det finns applikationer som kan ta en privat nyckelfil och försöka brute-force nyckeln, men vi har ännu inte kört över en. Användning av agenter kräver betrodda maskiner Närhelst ett SSH-nyckelagent är närvarande, oavsett om det är på den lokala maskinen som initierar den utgående anslutningen eller på mellanliggande maskiner som vidarebefordrar dem, är det tekniskt möjligt för interlopers på dessa maskiner att få tillgång till den säkra kanalen . I OpenSSH kommunicerar en ssh-klient med agenten via ett UNIX-domänuttag under tmp-katalogen (en representativ fil är tmpssh-DeB10132agent.10132) och den är begränsad till den lokala användaren. Men superusers har också tillgång till uttaget, och det är relativt enkelt att kapa agenten för att ansluta till samma målmaskin. Relaterade resurserDenna artikeln ingår i BackupYourSystem-serien. Mer inledande information finns där. Introduktion Från mansidan: Rsync är ett snabbt och utomordentligt mångsidigt filkopieringsverktyg. Den kan kopiera lokalt, från en annan värd över något avlägsen skal eller från en fjärr rsync-demon. Det erbjuder ett stort antal alternativ som styr alla aspekter av sitt beteende och tillåter mycket flexibel specifikation av uppsättningen filer som ska kopieras. Det är känt för sin deltaöverföringsalgoritm, vilket minskar mängden data som skickas över nätverket genom att bara skicka skillnaderna mellan källfilerna och de befintliga filerna i destinationen. Rsync används ofta för säkerhetskopiering och spegling och som ett förbättrat kopieringskommando för daglig användning. Med andra ord är rsync ett verktyg för att effektivt kopiera och säkerhetskopiera data från en plats (källan) till en annan (destinationen). Det är effektivt eftersom det bara överför filer som skiljer sig från källkod och destinationskataloger. Rsync är ett kommandoradsverktyg. Användare som försöker använda det ska vara bekanta med kommandoraden (se Använda terminalen). Om du föredrar ett grafiskt gränssnitt, se avsnittet Grsync på den här sidan. Installation Rsync är som standard installerat i Ubuntu. Var noga med att kontrollera om följande paket är installerade innan du börjar (se Installera ett paket): rsync, xinetd, ssh. Utför en enkel säkerhetskopiering Den enklaste metoden för säkerhetskopiering via ett nätverk är att använda rsync via SSH (med alternativet - e ssh). Alternativt kan du använda rsync-demonen (se Rsync Daemon, som kräver mycket mer konfiguration. Lokal säkerhetskopiering kräver bara rsync och readwrite-åtkomst till mapparna som synkroniseras. Nedan hittar du exempel på kommandon som kan användas för säkerhetskopiering i båda fallen. bör noteras att en nätverkssynkronisering kan utföras lokalt så länge mappen delas (säg av Samba) och sedan monteras i maskinen med mapp1. Den här processen går runt att behöva använda ssh men är mindre säker och bör bara användas i säkra privata nätverk, som i ditt hem. Backup över nätverket En förklaring av ovanstående alternativ till kommandon: - dry-run Detta berättar att rsync inte faktiskt gör någonting. Det kommer bara att skriva en logg om vad det skulle göra på skärmen. När du har kontrollerat att allt kommer att fungera som du förväntar dig, måste du ta bort det här alternativet och köra kommandot igen för att utföra den faktiska säkerhetskopian. - Delete tar bort filer som inte finns på systemet som säkerhetskopieras. (Valfritt) - En behåller datumet och t imes och behörigheter för filerna (samma som - rlptgoD). Med det här alternativet kommer rsync att: Efterkomma rekursivt i alla kataloger (-r), kopiera symboler som symlinks (-l), bevara filbehörigheter (-p), bevara ändringstider (-t), bevara filägande (-o) och - z komprimerar data - vv ökar beräkning av rapporteringsprocessen - de specificerar fjärrskal för att använda mapp1 och mapp2 I exemplen ovan är mapp1 och 2 platshållare för att mapparna ska synkroniseras. Mapp1 är den ursprungliga mappen, och 2 är den nya mappen, eller den befintliga som ska synkroniseras med den första. Byt ut dem med mapparna du gillar. A tillsattes efter mapp1 så att endast innehållet, i stället för hela mappen, skulle flyttas till den andra. En fullständig sammanfattning av alla alternativ med kommandot rsync finns på mansidorna under Options Summary. Man sidan för rsync kan också hittas på linux. die Grsync är en GUI frontend för rsync verktyget. Det enkla gränssnittet för GUI visar många av de grundläggande alternativen som finns tillgängliga med rsync. Det är användbart för dem som föredrar att inte använda kommandoraden. Installation Programmet grsync kommer inte att installeras som standard på Ubuntu eller någon annan störning, men den är lätt tillgänglig från huvudrapporterna. För att få grsync se till att universum i Ubuntu-arkiverna är aktiverat i programkällorna. Sedan installerar du den här programvaran i Ubuntu, installerar du följande paket. grsync. Konfiguration För att starta grsync, gå igenom följande menyer: Program - Systemverktyg - Går Grsync. Vid start kommer du att presenteras med huvudfönstret, där all konfiguration sker. I det här fönstret finns alla de alternativ som de flesta användare någonsin behöver. För att förklara alternativen kommer att listas och deras effekter nämns. Sessioner - Denna funktion är densamma som profiler i andra. Varje session lagrar en annan uppsättning käll - och destinationskataloger, liksom de konfigurationsalternativ som är associerade med mappparet. Detta möjliggör synkronisering av olika uppsättningar av mappar enligt olika alternativ. Hantering av sessioner är enkelt, tryck bara på Lägg till-knappen för att lägga till en ny. För att radera, välj den session du inte längre vill ha från rullgardinsmenyn och tryck på Ta bort. Källa och destination - Dessa två rutor listar de två mapparna (tekniskt kallade kataloger) som kommer att synkroniseras. Den övre är källan och botten destinationen. Så när du kör synkroniseringen kopieras filerna från källan till destinationen enligt de alternativ som en användare väljer. Att ange katalogerna antingen Bläddra efter dem från GUI eller skriv in dem i enlighet med standardvägskonventionerna. Växla - Det universella omlastningsskylt som finns till höger om Browse-knapparna är en praktisk knapp. Det kommer omedelbart att byta källa med destinationen. Importera och exportera - Efter att ha konfigurerat sessioner kanske en användare vill säkerhetskopiera dem för lagring. För att göra så, gå till Sessions-menyn högst upp och välj antingen Importera eller Exportera. Den tidigare kommer att återställa en session från en tidigare lagd säkerhetskopia, den senare kommer att göra en säkerhetskopia av den aktuella sessionen. Obs! Den här säkerhetskopieringsfunktionen fungerar per session. Det betyder att varje session du vill säkerhetskopiera måste väljas från nedrullningen och sedan säkerhetskopieras. Om du har 3 olika sessioner väljer du var och en och exporterar dem. Samma när du importerar sessioner. Grundläggande alternativ - De flesta användare hittar de flesta alternativen de någonsin behöver här. De första fyra kommer att bevara egenskaperna hos de överförda filerna. De andra kommer att ändra hur filerna kopieras. För mer information om vad varje specifikt, sväng din stationära markör över alternativet och det kommer att visa en liten förklaring. De kontrollerade alternativen är givetvis de som kommer att tillämpas under sessionen. Avancerade alternativ - Den här fliken innehåller fler alternativ, många är användbara och självförklarande. För de som inte förstås kommer verktygstips att visas när musen förblir över ett alternativ tillräckligt länge. Ytterligare alternativ - Den här rutan tillåter inmatning av ytterligare alternativ som inte visas i GUI men som är kända för användaren. Användning rekommenderas endast för erfarna användare. Inmatning av felaktiga alternativ kan ha oväntade konsekvenser. Simulering och exekvering De två sista knapparna i fönstret är Simulation and Execute. Knappen för simulering är mycket användbar när osäker på vad som kommer att hända baserat på de valda alternativen. Den normala överföringsdialogrutan dyker upp och i huvudfönstret visas en lista över filer som skulle ha kopierats över. Användaren kan sedan verifiera om detta är som önskat eller gör ändringar. När sessionen har initierats med knappen Execute kommer dialogrutan att visas igen, men den här gången kommer den faktiskt att bearbeta mapparna i enlighet därmed. Kontrollera att du är nöjd med simuleringen innan du trycker på Execute. Fjärrbackup-säkerhetskopiering via ett nätverk är möjligt, helst användaren ska montera nätverksandelen som säkerhetskopieras innan programmet startas. Andelen skulle då anges i Browse GUI och kan enkelt läggas till. Det finns ingen separat sektion för nätverket, om fler avancerade funktioner är nödvändiga uppmanas användaren att titta på alternativ, av vilka det finns många. Alternativ Det finns många alternativ, i olika utvecklingsstadier. För en ofullständig lista, se här. Rsync Daemon Rsync-demonen är ett alternativ till SSH för fjärrbackup. Även om det är svårare att konfigurera, ger det vissa fördelar. Om du använder SSH för att göra en fjärranslutning av ett helt system krävs exempelvis att SSH-demonen tillåter root-inloggning, vilket anses vara en säkerhetsrisk. Använda rsync-demonen tillåter att root-inloggning via SSH är avaktiverad. Konfiguration av rsync Daemon 1. Redigera filen etcdefaultrsync för att starta rsync som demon med xinetd. Posten som anges nedan bör ändras från false till inetd. 2. Installera xinetd eftersom den inte är installerad som standard. 3. Skapa filen etcxinetd. drsync för att starta rsync via xinetd. Den ska innehålla följande textrader. 4. Skapa filen etcrsyncd. conf för rsync i daemon-läge. Filen ska innehålla följande. I filen ska användaren ersättas med namnet på användaren på fjärrmaskinen som är inloggad. 5. Skapa etcrsyncd. secrets för användarens lösenord. User should be the same as above, with password the one used to log into the remote machine as the indicated user. 6. This step sets the file permissions for rsyncd. secrets. 7. StartRestart xinetd Run the following command to check if everything is ok. The output listed is just a sample, should be what is on your shared remote machine. Hostname can be replaced by the IP address of the machine. Backup With Rsync and Ssh (scroll to bottom if you want a much less informative synopsis of what will be covered) When I first began tinkering with this idea, the whole SSH thing kind of confused me, mostly because I didnt think SSH would be easy for an end user to utilize. While SSH is very complex in design, theyve made it super easy for the end user to set up an authentication key set. Essentially, SSH is a 1 to 1 authenticated connection that can be obtained without a password. Once this is in place, you can utilize rsync to run automatically. Before we begin, please ensure you have openssh-server installed on your file server in question. Next, we need to set up a key pair. You will receive a public key and private key. You will be asked some questions, such as whether or not you want a password to the key pair, etc. I chose no and basically left everything else default. I went with no password because SSH keys are pretty -- secure, and plus I wanted this to be automated. I was not sure how I could automate this process while still having a password on it. The public key needs to get copied to the authorizedkeys file on the server. Thanks to a handy command, this is painless. Replace jason192.168.1.150 with what your setup would be. Itll ask you for your password. Put in your password to the user account youre authenticating against on the file server. Once done, you should be able to run: If it did not ask for a password and your prompt changed, youre good to go. If it asked you for a password, something is likely off. Please note, if you mess around with the SSH keys (by deleting them, adding new ones, etc.) itll require a reboot (some people have told me log out log in works fine too) to reset. I dont know enough about that to explain whats happening besides taking the educated guess that the SSH key is getting locked to your session. Unless you plan to tinker around like I did, where I would delete the SSH keys and re-generate them over and over for learning purposes, you wont run into this issue. But if you do, I wanted to throw this out there. So, SSH is set up and youre good to go. Now what Its rsyncs turn. You have opened the door with SSH, now you need to put it in gear with rsync. Rsync is a remote synchronization tool. For my uses, its pretty much awesome. I suggest you folks read the rsync man page for more information. Just a side note, anybody reading this who uses Linux, please keep man pages in mind. Theyre quicker than Google. Honestly. You can read them up by going to terminal and typing man rsync. Of course, you can substitute rsync for any other command to read more about it as well, aka man cp etc. The man page will go over the functionality of a bunch of flags. Theres a few I personally use and Ill cover them in my own words below. - a Archive mode. This keeps the time, permissions, owner, group, and other various settings the same as the source. I like using - a because it ensures that my data on the file server match my data on the desktop, even down to who owns what and the time stamps. - z Compression mode. I havent really used this until recently. Im not sure if I notice a difference because rsync is pretty fast to begin with, but I tack it in there, mostly because, why not --exclude Exclude mode. This is if you want to exclude a specific directory, trash, videos, etc. For example, lets say you want to exclude ALL hidden filesfolder. you would do --exclude. Notice after the equals sign there is a period and That ensures youre doing the wild card, meaning EVERYTHING, but only after the period. Since hidden filesfolders are began with a period, you can see how it would include. folder1.folder2.folder3, etc. Note - Personally, I would definitely recommend excluding. gvfs. gvfs is the gnome virtual file system. It essentially acts as a mount point for network resources. Lets say your file server is accessible through. gvfs. If you rsync everything and dont exclude. gvfs, youre in essence duplicating the data on your file server that already exists, because itll exist in its primary folder, as well as through. gvfs thanks to your file server. homejasonDocuments homejasonMusic homejasonPictures homejason. gvfsDocuments homejason. gvfsMusic homejason. gvfsPictures By excluding. gvfs, you avoid this all together. If youre backing up a home directory, Id suggest doing it. Using simply --exclude. gvfs works for me, but if you need the full path, it would of course be --excludehomejason. gvfs --delete This will delete files on the destination that dont exist on the source. Lets say you have a folder that contains 100 GB of data and its simply named data. If you rename it to data2, your server would contain a copy of data and data2 a grand total of 200 GB. If you want the data on your server to be identical, use --delete. If you want to have some sort of older file redundancy (I know some people prefer this), dont use --delete. --progress If you run rsync manually, youll be able to see the progress of whats going on instead of just a flashing cursor. I only use this flag if I want to run the command manually and see what its doing. I dont bother using this when its showtime and I want it automated in the background. Other than that, its just about setting up the source and destination. Lets start with the destination, since after all, were tinkering with SSH here so its a tad bit different. For the destination, youll need the user, server, and folder path. As I said, my name is Jason, and my file server is 192.168.1.150. My folder path on my server in particular is mediaNASjason. In my case, NAS is a network drive I shared out, so its pretty specific to my situation. Yours is likely to differ. Tailor the destination to your own situation. If your backup drive is mediastorage and you have a folder on storage named frank, then use mediastoragefrank, etc. In my case: is my destination. Now, about the sources. Theyre simple enough, as its the same as above except it doesnt include userserver. If you want your entire home directory to be synchronized, you can do so with just: If you want your entire home directory synchronized but with the exclusion of. gvfs and the --delete flag, use: Getting the jist of it now Note, you can have multiple sources as well, which makes it handy if you only want to back up a few specific folders to your file server. In my case, I had limited file server space, so I only wanted to back up the most important data to my file server, which to me is Documents and Pictures. Example: You can then set up a Cron job for this to run at specific times. I never run rsync as root, so when I set it up in Cron I set it to launch as jason and just tagged the above rsync command in. Ive since moved away from the Cron route. I shut down my computer at night, but my file server stays up all the time, I added an entry in Startup Applications to do the backup for me, which is handy because it runs at system startup. I named it NAS Backup and put the above command in the command field. Everything works like a charm with zero input needed from me. imagessmiliesguitar. gif Quick tip, if youd like to check out a decent rsync GUI, fire up grsync. Its easy to use and will help you structure out the rsync command if youre not entirely sure just yet. Just note, there is no --exclude flag in the GUI, so youll have to add it manually under Additional Options, but thats pretty -- easy to do. Grsync also doesnt use - a, but instead it breaks up - a to - t - o - p - g etc. Read the rsync man page under the - a section to see why this makes littleno difference. Once you have it formulated the way you want, you can also do a test run, which is one of the features of grsync to make sure it works properly prior to giving it the green light. Assuming all is well and youre done, you can schedule this grsync job with, you guessed it, either Startup Applications or Cron. Keep in mind, the syntax for it is grsync - e jobname. So if you named the job backup, youd run grsync - e backup. This would be the same for Cron or Startup Applications. I tested it running it in Startup Applications. It comes up with a GUI window when I log in showing me the status of the data transfer. If I go the route with Startup Applications and just throwing the full rsync command in, it does it completely in the background. Depending on how much of a visual status you want may dictate which route you go. At any rate, serious kudos to the SSH, Rsync, and Grsync team, as theyve brewed up some very impressive technologies here. The above was meant to be super informative. I hope some users can set up a backup system that works for them. Keep in mind, you never know when Mr. HardDrive is going to tank on you, so plan ahead. Below is a rough summary of what youre doing for the users who dont want to read through a mountain of text. Note: Change the below settings to match your setup, unless your name happens to be Jason and your file server happens to be 192.168.1.150. Client Startup Applications - Select New - Name it backup or whatever you please, and add desired rsync line in the command box, such as:CentOS SSH Installation And Configuration Darr247 December 18, 2011, 5:38 am There are a couplefew things I don8217t get8230 e. g. for Make sure port 22 is opened: netstat - tulpn grep :22 What are we supposed to see if port 22 is opened Add the line - A RH-Firewall-1-INPUT - m state 8211state NEW - m tcp - p tcp 8211dport 22 - j ACCEPT add it where. In the :INPUT ACCEPT section in the :OUTPUT ACCEPT section after :COMMIT No matter which line I put it on, when I restart the iptables service I get a red FAILED message for that line. And then you change the SSH port to 1235 but don8217t revisit iptables What am I missing here Boymix81 February 28, 2012, 9:20 pm - A RH-Firewall-1-INPUT - s 192.168.1.024 - m state 8211state NEW - p tcp 8211dport 22 - j ACCEPT - A INPUT - s 192.168.1.024 - m state 8211state NEW - p tcp 8211dport 22 - j ACCEPT
No comments:
Post a Comment