Förord
Vår "vänskap" började för två år sedan. Jag kom till en ny arbetsplats, där den tidigare administratören nonchalant lämnade mig denna programvara som ett arv. Jag kunde inte hitta något annat på Internet än officiell dokumentation. Även nu, om du googlar på "roder", kommer det i 99% av fallen upp: fartygsroder och quadcoptrar. Jag lyckades hitta ett närmande till honom. Eftersom communityn för denna programvara är försumbar, bestämde jag mig för att dela med mig av min erfarenhet och rake. Jag tror att det här kommer att vara användbart för någon.
Roder alltså
Rudder är ett verktyg för revision och konfigurationshantering med öppen källkod som hjälper till att automatisera systemkonfigurationen. Det fungerar enligt principen att installera en agent för varje slutanvändare. Genom ett bekvämt gränssnitt kan vi övervaka hur mycket vår infrastruktur följer alla specificerade policyer.
Använd
Nedan kommer jag att lista vad jag använder Roder till.
-
Kontroll av filer och konfigurationer: ./ssh/authorized_keys ; /etc/hosts ; iptables ; (och sedan vart din fantasi leder)
-
Kontroll av installerade paket: zabbix.agent eller någon annan programvara
Serverinstallation
Nyligen uppdaterade jag från version 5 till 6.1, allt gick bra. Nedan finns kommandona för Deban/Ubuntu men det finns också stöd:
Jag gömmer installationen i spoilers för att inte distrahera dig.
Spoiler
Beroenden
rudder-server kräver Java RE minst version 8, kan installeras från standardförvaret:
Kollar om den är installerad
java -version
om slutsatsen
-bash: java: command not found
installera sedan
apt install default-jre
Server
Importera nyckeln
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Här är själva trycket
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Eftersom vi inte har en betalprenumeration lägger vi till följande arkiv
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Uppdatera listan med förråd och installera servern
apt update
apt install rudder-server-root
Skapa användaradministratör
rudder server create-user -u admin -p "Ваш Пароль"
I framtiden kan vi hantera användare genom konfigurationen
Det är allt, servern är klar.
Serverjustering
Nu behöver du lägga till IP-adresserna för agenterna eller ett helt subnät till roderagenten, vi fokuserar på säkerhetspolicyn.
Inställningar -> Allmänt
I fältet "Lägg till nätverk" anger du adressen och masken i formatet xxxx/xx. För att tillåta åtkomst från alla adresser i det interna nätverket (såvida detta inte är ett testnätverk och du står bakom NAT) anger du: 0.0.0.0/0
Viktigt - efter att du har lagt till ip-adressen, glöm inte att klicka på Spara ändringar, annars kommer ingenting att sparas.
portar
Öppna följande portar på servern
-
443 - tcp
-
5309 - tcp
-
514 - utp
Vi har löst den första serverkonfigurationen.
Agentinstallation
Spoiler
Lägger till en nyckel
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Nyckelfingeravtryck
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Lägger till ett arkiv
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Installerar agenten
apt update
apt install rudder-agent
Agentinställning
Vi anger för agenten IP-adressen för policyservern
rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя
Genom att köra följande kommando kommer vi att skicka en begäran om att lägga till en ny agent till servern, om ett par minuter kommer den att dyka upp i listan över nya agenter, jag kommer att förklara hur man lägger till i nästa avsnitt
rudder agent inventory
Vi kan också tvinga agenten att starta och den skickar förfrågan direkt
rudder agent run
Vår agent är klar, låt oss gå vidare.
Lägger till agenter
Logga in
https://127.0.0.1/rudder/index.html
Din agent kommer att visas i avsnittet "Acceptera nya noder", markera rutan och klicka på Acceptera
Det bör ta lite tid innan systemet kontrollerar servern för efterlevnad
Skapa servergrupper
Låt oss skapa en grupp (det är fortfarande underhållning), ingen aning om varför utvecklarna gjorde en så avskyvärd gruppbildning, men som jag förstår det finns det inget annat sätt. Gå till avsnittet Nodhantering -> Grupper och klicka på Skapa, välj en statisk grupp och namn.
Vi filtrerar servern vi behöver efter specialfunktioner, till exempel efter ip-adress, och sparar
Gruppen är inrättad.
Att sätta upp regler
Gå till Konfigurationspolicy → Regler och skapa en ny regel
Lägg till gruppen förberedd tidigare (detta kan göras senare)
Och vi bildar ett nytt direktiv
Låt oss skapa ett direktiv för att lägga till publika nycklar till .ssh/authorized_keys. Jag använder detta när en nyanställd slutar, eller för återförsäkring, till exempel om någon av misstag klipper ut min nyckel.
Gå till Konfigurationspolicy → Direktiv till vänster ser vi "Direktivbibliotek" Hitta "Fjärråtkomst → SSH auktoriserade nycklar", till höger klicka på Skapa direktiv
Vi anger information om användaren och lägger till hans nyckel. Välj sedan applikationspolicyn
-
Global - Standardpolicy
-
Verkställ - Kör på utvalda servrar
-
Revision – Kommer att genomföra en revision och berätta vilka kunder som har nyckeln
Var noga med att ange vår regel
Spara sedan och du är klar.
Kontroll
Nyckeln har lagts till
Bullar
Agenten tillhandahåller fullständig information om servern. Listor över installerade paket, gränssnitt, öppna portar och mycket mer, som du kan se på skärmdumpen nedan
Du kan också installera och kontrollera programvaran inte bara på Linux utan också på Windows, jag kollade inte det senare, det fanns inget behov..
Från författaren
Du kanske frågar, varför återuppfinna hjulet om ansible och marionett redan har uppfunnits för länge sedan?
Jag svarar: Ansible har några nackdelar, till exempel ser vi inte vilket tillstånd den här konfigurationen är i nu, eller den välbekanta situationen när du startar en roll eller spelbok och kraschfel dyker upp och du börjar klättra upp på servern och se vilket paket har uppdaterats var. Och jag jobbade bara inte med docka..
Finns det några nackdelar med Rudder? Mycket.. Med utgångspunkt från att agenter faller av och du måste installera om dem eller använda kommandot roderåterställning. (men förresten, jag har inte sett detta i version 6 än), vilket resulterar i extremt komplex installation och ett ologiskt gränssnitt.
Finns det några fördelar? Och det finns också en hel del fördelar: Till skillnad från välkända Ansible har vi ett webbgränssnitt där du kan se den efterlevnad vi har tillämpat. Till exempel, sticker portarna ut i världen, hur är brandväggens tillstånd, är säkerhetsagenter installerade eller andra prylar.
Denna programvara är perfekt för informationssäkerhetsavdelningen, eftersom infrastrukturens tillstånd alltid kommer att vara framför dina ögon, och om någon av reglerna lyser i rött, så är detta en anledning att besöka servern. Som sagt, jag har använt Rudder i 2 år nu, och om du röker det lite blir livet bättre. Det svåraste i en stor infrastruktur är att du inte kommer ihåg vilket tillstånd servern är i, om June missade att installera säkerhetsagenter eller om han konfigurerade iptables korrekt, men roder hjälper dig att hålla dig à jour med alla händelser. Medveten betyder beväpnad! )
PS Det blev mycket mer än jag planerat, jag kommer inte att beskriva hur man installerar paket, om det plötsligt kommer förfrågningar kommer jag att skriva en andra del.
PSS Artikeln är i informationssyfte, jag bestämde mig för att dela den eftersom det finns väldigt lite information på Internet. Kanske är detta intressant för någon. Ha en bra dag kära vänner)
Om reklamens rättigheter
Episka servrar - Är
Källa: will.com