Linux voor beginners of wat een meisje kan leren? Systeemmail instellen. Typische systemd.service

Systemd – systeem- en servicemanager in besturingssysteem Linux. Bij de ontwikkeling ervan probeerden ze het zo te ontwerpen dat het achterwaarts compatibel was met SysV-init-scripts en -voorzieningen handige functies, zoals parallelle lancering systeemservices tijdens het opstarten, on-demand activering van daemons, ondersteuning voor momentopnamen van de systeemstatus en op afhankelijkheid gebaseerde servicebeheerlogica. In CentOS 7 vervangt systemd Upstart als het standaard init-systeem.

In dit artikel zullen we kijken naar het systemd servicemanagementproces voor CentOS-gebruiker 7. Deze kennis zal nuttig zijn in andere distributies, omdat systemd al lange tijd in Fedora wordt gebruikt en gepland is in Ubuntu 14.10 en Debian 8. Of dit goed is of niet, blijft achter de schermen.

Terwijl je dit artikel leest, kun je systemd proberen op klassieke VPS en cloud-VPS van Infobox. Wij streven ernaar om tijdig ondersteuning voor moderne besturingssystemen toe te voegen, zodat u met de nieuwste technologieën efficiënter kunt werken. Het idee om dit artikel te schrijven ontstond na een andere vraag van gebruikers over het gebruik van services in CentOS 7.

Invoering

Systemd brengt het concept van systemd-eenheden. Eenheden worden weergegeven door configuratiebestanden in een van de mappen:

  • /usr/lib/systemd/system/– eenheden vanaf geïnstalleerde pakketten toerental.
  • /run/systemd/system/- eenheden gemaakt in runtime. Deze map heeft voorrang op de map met geïnstalleerde eenheden uit pakketten.
  • /etc/systemd/system/- eenheden aangemaakt en beheerd door de systeembeheerder. Deze map heeft voorrang op de map met eenheden die tijdens runtime zijn aangemaakt.

Typen systeemeenheden:

  • .dienst– systeemservice
  • .doel- gesystematiseerde eenheidsgroep
  • .automoun t – automountpunt van het bestandssysteem
  • .apparaat– bestand van het apparaat dat door de kernel wordt herkend
  • .monteren– koppelpunt voor bestandssysteem
  • .pad– bestand of map in bestandssysteem
  • .domein– een proces dat van buitenaf is gecreëerd
  • .plak– een groep hiërarchisch georganiseerde eenheden die systeemprocessen beheren
  • .momentopname– systemd manager opgeslagen status
  • .stopcontact- stopcontact communicatie tussen processen
  • .ruil– Apparaat wisselen of bestand wisselen (wisselbestand)
  • .timer– systeemtimer

Basisfuncties van systemd in CentOS 7

  • Socket-gebaseerde activering. Tijdens het opstarten luistert systemd op sockets voor alle systeemservices, ondersteunt dit type activering en geeft sockets door aan deze services onmiddellijk nadat de services zijn gestart. Hierdoor kan systemd niet alleen services parallel uitvoeren, maar biedt het ook de mogelijkheid om services opnieuw te starten zonder berichten te verliezen die naar hen zijn verzonden terwijl de services niet beschikbaar waren. De bijbehorende socket blijft beschikbaar en alle berichten worden in de wachtrij geplaatst.
  • Op D-Bus gebaseerde activering. Systeemservices die D-Bus gebruiken voor communicatie tussen processen kunnen op aanvraag worden gestart wanneer klant applicatie proberen contact met hen op te nemen.
  • Apparaatgebaseerde activering. Systeemservices die apparaatgebaseerde activering ondersteunen, kunnen worden gestart wanneer een bepaald type hardware is aangesloten of beschikbaar komt.
  • Padgebaseerde activering. Systeemservices kunnen dit type activering ondersteunen als de status van een map of directory verandert.
  • Momentopnamen van systeemstatussen. Het systeem kan de status van alle eenheden opslaan en herstellen vorige staat systemen.
  • Mountpunten en automounts beheren. Systemd bewaakt en beheert mountpunten en automountpunten.
  • Agressieve parallellisatie Systemd start systeem diensten parallel vanwege het gebruik van socketgebaseerde activering. In combinatie met services die activering op aanvraag ondersteunen, verkort parallelle activering de opstarttijd van het systeem aanzienlijk.
  • Transactionele logica voor activering van eenheden. Voordat eenheden worden geactiveerd of gedeactiveerd, berekent systemd hun afhankelijkheden, creëert een tijdelijke transactie en verifieert de integriteit van die transactie. Als een transactie niet intact is, probeert systemd deze automatisch te repareren en onnodige taken eruit te verwijderen voordat er een foutmelding wordt gegenereerd.
  • Achterwaarts compatibel met SysV-initialisatie. SystemD ondersteunt volledig SysV-init-scripts zoals beschreven in de Linux Standard Base (LSB)-specificatie, waardoor het eenvoudig is om naar systemd te migreren.

Servicebeheer

Eerdere versies van CentOS gebruikten SysV of Upstart. De initialisatiescripts bevonden zich in de directory /etc/rc.d/init.d/. Dergelijke scripts werden meestal in Bash geschreven en stelden de beheerder in staat de status van services en daemons te beheren. In CentOS 7 zijn init-scripts vervangen door service-eenheden.

Volgens gebruikswijze, service-eenheden .dienst lijken op init-scripts. Gebruik de opdracht om systeemservices te bekijken, starten, stoppen, opnieuw opstarten, in- of uitschakelen systeemctl. Teams dienst En chkconfig zijn nog steeds opgenomen in het systeem, maar alleen om compatibiliteitsredenen.


Wanneer u systemctl gebruikt, is het niet nodig om de bestandsextensie op te geven.

Hieronder staan ​​de basiscommando's systeemctl:

  • systemctl start naam.service– het starten van de dienst.
  • systemctl stop naam.service- dienststop
  • systemctl herstart naam.service- start de dienst opnieuw
  • systemctl probeer naam.service opnieuw te starten- start de service alleen opnieuw als deze actief is
  • systemctl herlaad naam.service- laad de serviceconfiguratie opnieuw
  • systemctl status naam.service- controleren of de service actief is met gedetailleerde uitvoer van de servicestatus
  • systemctl is-actieve naam.service- controleren of de dienst actief is met een simpel antwoord: actief of inactief
  • systemctl lijsteenheden --type service --all– de status van alle services weergeven
  • systemctl schakel naam.service in– activeert de service (laat deze starten tijdens het opstarten van het systeem)
  • systemctl schakel naam.service uit– deactiveert de dienst
  • systemctl herinschakelbare naam.service– deactiveert de dienst en activeert deze onmiddellijk
  • systemctl is ingeschakeld naam.service– controleert of de dienst is geactiveerd
  • systemctl lijst-eenheid-bestanden --type service– geeft alle services weer en controleert welke zijn geactiveerd
  • systemctl masker naam.service– vervangt het servicebestand door een symbolische link naar /dev/null, waardoor het apparaat niet meer beschikbaar is voor systemd
  • systemctl ontmasker naam.service– retourneert een servicebestand, waardoor het apparaat beschikbaar wordt voor systemd

Werken met Systemd-doelen

Vorig CentOS-versies met SysV init of Upstart bevatte een vooraf gedefinieerde set runlevels die specifieke modi voor bewerkingen vertegenwoordigden, genummerd van 0 tot en met 6. In CentOS 7 werd het concept van runlevels vervangen door systemd-doelen.

systemd doelbestanden .doel zijn ontworpen om andere systeemeenheden samen te groeperen via een afhankelijkheidsketen. Bijvoorbeeld eenheid grafisch.doel, gebruikt om een ​​grafische sessie te starten, start GNOME Display Manager-systeemservices ( gdm.service) en Accountservice ( accounts–daemon.service) en activeert multi-user.doel. Op zijn beurt multi-user.doel start andere systeemservices zoals Netwerkbeheerder (NetwerkManager.service) of D-Bus ( dbus.service) en activeert andere doeleenheden basis.doel.

CentOS 7 wordt geleverd met vooraf gedefinieerde doelen, vergelijkbaar met standaard ingesteld niveaus uitvoeren. Om compatibiliteitsredenen hebben ze ook aliassen voor deze doelen die rechtstreeks in SysV-runlevels verschijnen.

  • poweroff.target (runlevel0.target)– afsluiten en afsluiten van het systeem
  • redding.target (runlevel1.target)– het opzetten van de herstelshell
  • multi-user.target (runlevel2.target, runlevel3.target, runlevel4.target)– het opzetten van een niet-grafisch multi-user systeem
  • grafisch.target (runlevel5.target)– het opzetten van een grafisch multi-user systeem
  • reboot.target (runlevel6.target)– sluit het systeem af en start het opnieuw op

De opdrachten runlevel en telinit zijn nog steeds beschikbaar, maar worden vanwege compatibiliteitsredenen in het systeem gelaten. Het wordt aanbevolen om systemctl te gebruiken om systeemdoelen te wijzigen of te configureren.

Om te bepalen welke doeleenheid de standaardeenheid is, is de volgende opdracht nuttig: systemctl get-standaard.

Gebruik de opdracht om alle geladen doeleenheden te bekijken systemctl lijsteenheden --type doel en om alle doeleenheden in het algemeen te bekijken met het commando: systemctl lijsteenheden --type doel --all.

Gebruik de opdracht om het standaarddoel te wijzigen systemctl set-default naam.doel.

Om het huidige doel te wijzigen: systemctl isoleer naam.doel. Het commando start de doeleenheid en al zijn afhankelijkheden en stopt alle andere onmiddellijk.

In CentOS 7 vervangt systemctl een aanzienlijk aantal energiebeheeropdrachten. De voorgaande opdrachten blijven behouden voor compatibiliteit, maar het wordt aanbevolen om systemctl te gebruiken:
systemctl stoppen– stopt het systeem
systemctl uitzetten– schakelt het systeem uit
systemctl opnieuw opstarten– start het systeem opnieuw op

Systemd beheren op een externe machine

Met Systemd kunt u een externe machine beheren via SSH. Gebruik het commando om te besturen:
systemctl --host gebruikersnaam@host_naam opdracht, waarbij gebruikersnaam de gebruikersnaam is, en host_naam de naam is van de host waarmee de afstandsbediening, en command is de systemd-opdracht die moet worden uitgevoerd.

Typische systemd-service

Deze sectie helpt u als u snel servicebeheer van systemd wilt ondersteunen. Gedetailleerde informatie over alle parameters van het .service-bestand is beschikbaar in de overeenkomstige sectie van de systemd-documentatie.

Beschrijving=Daemon om crashende apps te detecteren After=syslog.target ExecStart=/usr/sbin/abrtd Type=forking WantedBy=multi-user.target

Laten we naar de sectie kijken . Het bevat algemene informatie over de dienst. Deze sectie bestaat niet alleen in service-eenheden, maar ook in andere eenheden (bijvoorbeeld bij het beheren van apparaten, koppelpunten, enz.). In ons voorbeeld geven we een beschrijving van de dienst en geven we aan dat de daemon na Syslog gestart moet worden.

In de volgende sectie bevat direct informatie over onze dienstverlening. Gebruikte parameter ExecStart wijst naar uitvoerbaar bestand onze dienst. IN Type we specificeren hoe de service systemd op de hoogte stelt wanneer het opstarten is voltooid.

Laatste deel bevat informatie over het doel waarin de service moet starten. IN in dit geval we zeggen dat de service moet worden gestart wanneer het doel wordt geactiveerd multi-user.doel.

Dit is het minimaal werkende systemd-servicebestand. Nadat u de uwe heeft geschreven, kopieert u deze naar /etc/systemd/system/service_name.service om te testen. Voer de opdrachten uit systemctl daemon-herladen. Systemd is op de hoogte van de service en u kunt deze starten.

Aanvullende informatie

Een uitstekende tutorial over systemd van RedHat, die de basis vormt voor dit artikel.
Documentatie voor het schrijven van uw eigen systemd service unit.
“Systemd voor beheerders” van de ontwikkelaar van systemd in het Russisch.

Conclusie

In dit artikel hebben we geleerd hoe we CentOS 7-services kunnen beheren. Dit is natuurlijk niet de enige functie van systemd en de andere aspecten ervan zullen in de toekomst worden besproken. Het besturingssysteem zelf is bijna sinds de release beschikbaar op klassieke VPS en cloud-VPS van Infobox. Probeer nu systemd. Deze kennis zal nuttig zijn in verband met de transitie van veel distributies naar systemd.

Als u een fout in het artikel aantreft, zal de auteur deze graag corrigeren. Schrijf hierover een PM of e-mail.
Als u geen reacties op Habré kunt achterlaten, kunt u deze op de blog schrijven

Cursusgeld: 10.000 wrijven. Gratis op opensource

Cursusbeschrijving:

Elk systeembeheerder dromen van een betrouwbaar besturingssysteem. Beheers CentOS - Linux-distributie bedrijfsklasse, bekend om zijn stabiliteit!

Linux-beheer kennen professioneel niveau, kunt u de meeste van uw dagelijkse taken automatiseren met behulp van scripts en de onderhoudskosten van de server minimaliseren.

Leer het meest betrouwbare gratis besturingssysteem en word een expert op het gebied van servertechnologie!

Als resultaat van de training leer je:

  • Voer de installatie en implementatie uit Linux CentOS
  • Werk met het Linux-bestandssysteem
  • Beheer accounts en toegangsrechten
  • Shell-technieken en basisbeginselen van scripting
  • Basisprincipes van TCP/IP-stackbeheer en basisgereedschap voor het werken met het netwerk

Cursusprogramma " Linux-beheer»:

  1. Inleiding tot Linux
  2. Bestandssysteem
    Hoofdmap, koppelpunt, thuismap, bestandstypen. Reguliere bestanden. Catalogi. Apparaatbestanden. Teams. Bestandssysteemnavigatie: cd-, pushd-, popd-, pwd-opdrachten. Bestanden maken, verwijderen en kopiëren. Commando's aanraken, rm, cp. Bewerkingen met mappen. De mkdir- en rmdir-opdrachten.
  3. Rekeningen
    Concept van account en authenticatie. Bestanden /etc/passwd en /etc/group, /etc/shadow en /etc/gshadow. Rekening wortel. Wachtwoorden in Linux. Commando's login, su, newgrp, passwd, gpasswd, chage.
  4. Toegangsrechten
    Verdeling van toegangsrechten in Linux. Lezing. Dossier. Uitvoering. Kenmerken van maprechten. Toegangsrechten toewijzen. Commando's chmod, chown, chgrp. Kleverig beetje.
  5. Werken met bestanden
    Informatie uit bestanden uitvoeren naar het consolescherm. Commando's kat, tac, meer, minder, kop, staart, od. Uitvoeromleiding. Het concept van stdin, stdout, stderr. Kanalen. Exploitanten | En<, >, >> . Informatie filteren. Reguliere expressies. grep-opdracht. Archiveren. tar- en gzip-hulpprogramma's.
  6. Processen onder Linux
    Proces-ID's. Demonen. ps-opdracht. Toegangsrechten verwerken. Echte en effectieve identificatiemiddelen. SUID- en SGID-bits. Procesbeheer. Signalen. Commando's nice, nohup, kill, killall.
  7. Commandoshells
    Overzicht van opdrachtshells. Commandoshell bashen. Multitasken in de console. Taakbeheer. Omgevingsvariabelen van Midnight Commander. Programmeren voor Bash.
  8. Taakplanning
    Werken met schijfstations. cron-daemon. Commando's bij, crontab, mount.
  9. Teksteditors vi, Emacs
  10. SVR4-initialisatieniveaus
    Proces init. Initialisatieniveaus. Bestand /etc/inittab. Directory /etc/rc.d.
  11. X Window-systeem
    Daemon X. Start X. Script startx. 5e niveau van initialisatie.
  12. Linux-netwerkbeheer
    Netwerk OSI-model. Protocollen IP, UDP, TCP, ICMP. Iptables
Cursusgeld: 10.000 wrijven.
Cursusbeschrijving:

Iedere systeembeheerder droomt van een betrouwbaar besturingssysteem. Master CentOS, een Linux-distributie van ondernemingsklasse die bekend staat om zijn stabiliteit!

Als u Linux-beheer op professioneel niveau kent, kunt u de meeste van uw dagelijkse taken automatiseren met behulp van scripts en de onderhoudskosten van de server minimaliseren.

Leer het meest betrouwbare gratis besturingssysteem en word een expert op het gebied van servertechnologie!

Als resultaat van de training leer je:

  • Installeer en implementeer Linux CentOS
  • Werk met het Linux-bestandssysteem
  • Beheer accounts en toegangsrechten
  • Shell-technieken en basisbeginselen van scripting
  • Basisprincipes van TCP/IP-stackbeheer en basisnetwerkhulpmiddelen
Cursusprogramma Linux Administration:
  1. Inleiding tot Linux
  2. Bestandssysteem
    Hoofdmap, koppelpunt, thuismap, bestandstypen. Reguliere bestanden. Catalogi. Apparaatbestanden. Teams. Bestandssysteemnavigatie: cd-, pushd-, popd-, pwd-opdrachten. Bestanden maken, verwijderen en kopiëren. Commando's aanraken, rm, cp. Bewerkingen met mappen. De mkdir- en rmdir-opdrachten.
  3. Rekeningen
    Concept van account en authenticatie. Bestanden /etc/passwd en /etc/group, /etc/shadow en /etc/gshadow. Het root-account. Wachtwoorden in Linux. Commando's login, su, newgrp, passwd, gpasswd, chage.
  4. Toegangsrechten
    Verdeling van toegangsrechten in Linux. Lezing. Dossier. Uitvoering. Kenmerken van maprechten. Toegangsrechten toewijzen. Commando's chmod, chown, chgrp. Kleverig beetje.
  5. Werken met bestanden
    Informatie uit bestanden uitvoeren naar het consolescherm. Commando's kat, tac, meer, minder, kop, staart, od. Uitvoeromleiding. Het concept van stdin, stdout, stderr. Kanalen. Exploitanten | En<, >, >> . Informatie filteren. Reguliere expressies. grep-opdracht. Archiveren. tar- en gzip-hulpprogramma's.
  6. Processen onder Linux
    Proces-ID's. Demonen. ps-opdracht. Toegangsrechten verwerken. Echte en effectieve identificatiemiddelen. SUID- en SGID-bits. Procesbeheer. Signalen. Commando's nice, nohup, kill, killall.
  7. Commandoshells
    Overzicht van opdrachtshells. Team bash-schaal. Multitasken in de console. Taakbeheer. Omgevingsvariabelen van Midnight Commander. voor Bas.
  8. Taakplanning
    Werken met schijfstations. cron-daemon. Commando's bij, crontab, mount.
  9. Teksteditors vi, Emacs
  10. SVR4-initialisatieniveaus
    Proces init. Initialisatieniveaus. Bestand /etc/inittab. Directory /etc/rc.d.
  11. X Window-systeem
    Daemon X. Start X. Script startx. 5e niveau van initialisatie.
  12. Linux-netwerkbeheer
    OSI-netwerkmodel. Protocollen IP, UDP, TCP, ICMP. Iptables
Downloaden:

Ik zal het hebben over de initiële instellingen van het CentOS-systeem, die de veiligheid en het gemak van het werken met de server vergroten. Ik merk op dat er in de 7e versie van het systeem enkele wijzigingen zijn aangebracht in vergelijking met eerdere versies.

Houd er nogmaals rekening mee dat ik deze instellingen aanmaak virtuele server. Als je een hardwareserver hebt, dan is het aan te raden om nog wat instellingen uit te voeren die ik hier niet vermeld. Deze omvatten bijvoorbeeld het instellen en controleren van fouttolerantie wanneer een van de schijven uitvalt. Afsluiten regelmatige controles mdadm-array, enz.

Eerste installatie van CentOS 7

We hebben dus: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP do 29 januari 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Laten we eerst eens updaten basissysteem:

#jammie update

Voor het gemak van het beheer installeer ik altijd Middernacht commandant, of gewoon mc:

#yum installeer mc

En onmiddellijk daarvoor schakel ik syntaxisaccentuering in voor alle bestanden die niet expliciet in het bestand zijn gemarkeerd /usr/share/mc/syntaxis/Syntaxis syntaxis voor sh- en bash-scripts. Deze universele syntaxis werkt prima voor configuratiebestanden, waarmee u meestal op de server moet werken. Het bestand overschrijven onbekende.syntaxis. Dit is het patroon dat zal worden toegepast op .conf- en .cf-bestanden, aangezien er geen expliciete syntaxis aan is gekoppeld.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

# ifconfig

En je zult het antwoord zien:

Bash: ifconfig: commando niet gevonden

Door ten minste Toen ik dit voor het eerst zag, was ik behoorlijk verrast. Ik dacht dat ik een fout had gemaakt bij het schrijven van het commando, ik heb alles meerdere keren gecontroleerd, maar het mocht niet baten. Het bleek dat ik afzonderlijk een pakket moest installeren om ifconfig en andere netwerkhulpprogramma's uit te voeren.

In plaats van ifconfig in CentOS 7 is er nu een hulpprogramma ip. Ik begrijp niet waarom zeuren individuele programma's voor beheer netwerkinstellingen, als ifconfig de taak al perfect aankan. Bovendien vond ik dat altijd leuk verschillende distributies Linux is vrijwel hetzelfde. Met ifconfig kun je het netwerk niet alleen in Linux configureren, maar ook in freebsd. Het is handig. En als elke distributie zijn eigen tool heeft, is dit lastig. Daarom stel ik voor om de gebruikelijke ifconfig te installeren.

Laten we dit doen:

#yum installeer net-tools

Om de nslookup- of bijvoorbeeld host-opdrachten te laten werken, moeten we nu het bind-utils-pakket installeren. Als dit niet gebeurt, gebruik dan het commando:

#nslookup

De uitvoer zal zijn:

Bash: nslookup: opdracht niet gevonden

Laten we dus bind-utils installeren:

# yum installeer bind-utils

Schakel SELinux uit. Het gebruik en de configuratie ervan is een aparte zaak. Ik zal dit nu niet doen. Dus laten we het uitschakelen:

# mcedit /etc/sysconfig/selinux

verander de waarde
SELINUX=uitgeschakeld
Om de wijzigingen door te voeren, start u opnieuw op:

# opnieuw opstarten

Je kunt SElinux uitschakelen zonder opnieuw op te starten:

#setenforce 0

Netwerkparameters opgeven

Gebruik niet beide tijdsynchronisatiedaemons (chrony en ntp) tegelijkertijd. Kies er één. Persoonlijk zie ik er geen enkel verschil in; ik installeer meestal de gebruikelijke ntp.

Opslagplaatsen toevoegen

Om verschillende software te installeren die je nodig hebt. De meest populaire zijn EPEL en rpmforge, dus laten we ze toevoegen. Eerst installeren we EPEL. Alles is er eenvoudig mee, het wordt toegevoegd vanuit de standaardrepository:

# yum installeer epel-release

Installeer rpmforge:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1 .el7.rf.x86_64.rpm

# yum installeren http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

Geschiedenisopslag instellen in bash_history

Het zal nuttig zijn om enkele wijzigingen aan te brengen in het standaardmechanisme voor het opslaan van de opdrachtgeschiedenis. Het helpt vaak als u een van de eerder ingevoerde opdrachten moet onthouden. De standaardinstellingen hebben enkele beperkingen die lastig zijn. Hier is hun lijst:

  1. Standaard worden alleen de laatste 1000 opdrachten opgeslagen. Als er meer zijn, worden de oudere verwijderd en vervangen door nieuwe.
  2. Er zijn geen uitvoeringsdata voor de opdrachten, alleen een lijst ervan in volgorde van uitvoering.
  3. Het opdrachtenlijstbestand wordt bijgewerkt nadat de sessie is beëindigd. Tijdens parallelle sessies kunnen sommige opdrachten verloren gaan.
  4. Absoluut alle opdrachten worden opgeslagen, hoewel het geen zin heeft sommige op te slaan.

Een lijst met de meest recent uitgevoerde opdrachten wordt opgeslagen in thuismap gebruiker in bestand .bash_geschiedenis(punt aan het begin). Je kunt het met elke editor openen en bekijken. Om de lijst handiger weer te geven, kunt u de opdracht in de console invoeren:

#geschiedenis

en zie een genummerde lijst. U kunt snel een specifiek commando vinden door alleen de noodzakelijke regels te filteren, bijvoorbeeld als volgt:

#geschiedenis | grep jammie

We zullen dus alle lanceringsopties zien yum-opdrachten, die zijn opgeslagen in de geschiedenis. Wij zullen de genoemde tekortkomingen corrigeren standaard instellingen het opslaan van de opdrachtgeschiedenis in CentOS 7. Om dit te doen, moet u het bestand bewerken .bashrc, die zich in dezelfde map bevindt als het geschiedenisbestand. Voeg er de volgende regels aan toe:

Exporteer HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="geschiedenis -a" export HISTIGNORE="ls:ll:geschiedenis:w:htop"

De eerste optie vergroot de bestandsgrootte tot 10.000 regels. Je kunt er meer maken, hoewel dit formaat meestal voldoende is. De tweede parameter specificeert dat de datum en tijd waarop de opdracht werd uitgevoerd, moeten worden opgeslagen. De derde regel dwingt onmiddellijk na het uitvoeren van de opdracht om deze in de geschiedenis op te slaan. In de laatste regel maken we een lijst met uitzonderingen voor de opdrachten die niet in de geschiedenis hoeven te worden vastgelegd. Ik gaf een voorbeeld van de eenvoudigste lijst. Je kunt het naar eigen inzicht toevoegen.

Om de wijzigingen toe te passen, moet u uitloggen en opnieuw verbinding maken of de opdracht uitvoeren:

# bron ~/.bashrc

Automatische systeemupdate

Om de serverbeveiliging op het juiste niveau te houden, is het noodzakelijk om deze op zijn minst tijdig bij te werken - zoals de kernel zelf met systeemhulpprogramma's, evenals andere pakketten. Je kunt dit handmatig doen, maar voor efficiënter werken kun je beter automatiseren routinematige activiteiten. Het is niet nodig om updates automatisch te installeren, maar controleer er in ieder geval op. Meestal volg ik deze strategie.

Om automatisch te controleren op updates, zal het hulpprogramma ons helpen jammie-cron. Het wordt traditioneel geïnstalleerd via yum vanuit de standaardrepository.

# yum installeer yum-cron

Na de installatie wordt er een automatische taak aangemaakt waarin het hulpprogramma wordt uitgevoerd /etc/cron.daily En /etc/cron.hourly. Standaard downloadt het hulpprogramma gevonden updates, maar past deze niet toe. In plaats daarvan wordt een updatemelding naar de lokale root-mailbox van de beheerder verzonden. Dan ben je al binnen handmatige modus kom binnen en beslis of u updates wilt installeren of niet op een tijdstip dat u uitkomt. Deze bedieningsmodus vind ik het handigst, dus ik verander deze instellingen niet.

De yum-cron configuratiebestanden bevinden zich op /etc/yum/yum-cron.conf En yum-cron-hourly.conf. Ze zijn goed becommentarieerd, dus in gedetailleerde uitleg heb het niet nodig. Ik vestig uw aandacht op het gedeelte , waar u parameters kunt opgeven voor het verzenden van berichten. Standaard wordt e-mail verzonden via een lokale host. U kunt hier de instellingen wijzigen en berichten verzenden via een derde partij mailserver. Maar in plaats daarvan geef ik er persoonlijk de voorkeur aan om de hele server globaal te configureren om lokale root-mail door te sturen naar een externe mailbox via autorisatie op een andere smtp-server.

Schakel het overstromen van berichten uit in /var/log/messages

Bij de standaardinstallatie van het CentOS 7-systeem wordt uw volledige systeemlogboek geregistreerd /var/log/berichten Na enige tijd zal de server verstopt raken met de volgende records.

16 oktober 14:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 14:01:01 xs-files systemd: User-0.slice starten. 16 oktober 14:01:01 xs-files systemd: Sessie 14440 van gebruiker root gestart. 16 oktober 14:01:01 xs-files systemd: Sessie 14440 van gebruiker root starten. 16 oktober 14:01:01 xs-files systemd: Slice user-0.slice verwijderd. 16 oktober 14:01:01 xs-files systemd: User-0.slice stoppen. 16 oktober 15:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 15:01:01 xs-files systemd: User-0.slice starten. 16 oktober 15:01:01 xs-files systemd: Sessie 14441 van gebruiker root gestart. 16 oktober 15:01:01 xs-files systemd: Sessie 14441 van gebruiker root starten. 16 oktober 15:01:01 xs-files systemd: Sessie 14442 van gebruiker root gestart. 16 oktober 15:01:01 xs-files systemd: Sessie 14442 van gebruiker root starten. 16 oktober 15:01:01 xs-files systemd: Slice user-0.slice verwijderd. 16 oktober 15:01:01 xs-files systemd: User-0.slice stoppen. 16 oktober 16:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 16:01:01 xs-files systemd: User-0.slice starten. 16 oktober 16:01:01 xs-files systemd: Sessie 14443 van gebruiker root gestart. 16 oktober 16:01:01 xs-files systemd: Sessie 14443 van gebruiker root starten. 16 oktober 16:01:01 xs-files systemd: Slice user-0.slice verwijderd.

Ze hebben geen enkel praktisch nut, dus laten we ze uitschakelen. Om dit te doen, zullen we een aparte regel voor rsyslog maken, waarin we alle berichtsjablonen zullen vermelden die we zullen knippen. Laten we deze regel in een apart bestand plaatsen /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit negeer-systemd-session-slice.conf if $programname == "systemd" en ($msg bevat "Startsessie" of $msg bevat "Gestarte sessie" of $msg bevat "Gecreëerd slice" of $msg bevat "Starting user-" of $msg bevat "Starting User Slice of" of $msg bevat "Removed session" of $msg bevat "Removed slice User Slice of" of $msg bevat "Stopping User Slice of" ) en stop dan

Sla het bestand op en start rsyslog opnieuw om de instellingen toe te passen.

# systemctl herstart rsyslog

Het is noodzakelijk om te begrijpen dat we in dit geval het overstromen van het logbestand alleen op de lokale server uitschakelen. Als u aanmeldingen opslaat, dan deze regel u zult het erop moeten configureren.

Iftop, atop, htop, lsof installeren op CentOS 7

En tot slot voegen we er nog een paar toe nuttige hulpprogramma's, wat handig kan zijn tijdens het gebruik van de server.

iftop toont de netwerkinterfacebelasting in realtime en kan worden gestart verschillende sleutels Ik zal hier niet in detail op ingaan, er is informatie over dit onderwerp op internet. Wij plaatsen:

#yum installeer iftop

En twee interessante taakbeheerders, ik gebruik meestal htop, maar soms komt atop van pas. Laten we beide installeren, kijk zelf, zoek uit wat je het leukst vindt, wat bij je past:

# yum -y installeer htop # yum -y installeer bovenop

Zo ziet htop eruit:

Om informatie weer te geven over welke bestanden door welke processen worden gebruikt, raad ik u aan het hulpprogramma te installeren lsof. Het zal waarschijnlijk vroeg of laat van pas komen wanneer u een diagnose van de server stelt.

# yum installeer wget bzip2 traceroute gdisk

Dat is alles voor mij. Basis CentOS-installatie 7 is voltooid, kunt u beginnen met het installeren en configureren van de hoofdfunctionaliteit.

Systeemmail instellen

Om de installatie te voltooien CentOS-servers 7 zorgen wij ervoor dat mail geadresseerd aan de lokale root via een externe mailserver naar de geselecteerde mailbox wordt verzonden. Als dit niet gebeurt, wordt het lokaal in een bestand gecompileerd /var/spool/mail/root. En er kan belangrijke en nuttige informatie zijn. Laten we het configureren zodat het naar de mailbox van de systeembeheerder wordt verzonden.

Ik heb hier in een apart artikel uitgebreid over gesproken -. Hier zijn alleen de opdrachten en de snelle installatie. Wij zetten benodigde pakketten:

# yum installeer mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

Laten we zoiets als deze configuratie voor postfix tekenen.

Cat /etc/postfix/main.cf ## STANDAARD CONFIG BEGIN #################### wachtrij_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = alle onbekende_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger _command = PATH =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = geen manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## DEFAULT CONFIG END #################### # Servernaam als uitvoer door het commando hostname myhostname = centos7- test xs.local # Hier hoeft u logischerwijs alleen het domein te verlaten, maar in dit geval is het beter om te vertrekken. volledige naam server, zodat de volledige naam van de server verschijnt in het afzenderveld #, dit maakt het handiger om serviceberichten te parseren mydomain = centos7-test.xs.local mydestination = $myhostname myorigin = $mydomain # Serveradres waarmee we zullen stuur e-mail relayhost = mailsrv.mymail.ru :25 smtp_use_tls = ja smtp_sasl_auth_enable = ja smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = neeanoniem smtp_tls_security_level = mei

We maken een bestand aan met informatie over de gebruikersnaam en het wachtwoord voor autorisatie.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-mailadres beveiligd]:wachtwoord

Maak een db-bestand.

# postmap /etc/postfix/sasl_passwd

Nu kunt u postfix opnieuw opstarten en controleren of het werkt.

# systemctl herstart postfix

Naar de standaardalias voor root in /etc/aliassen, voeg een extern adres toe waar e-mail geadresseerd aan root wordt gedupliceerd. Om dit te doen, bewerken we opgegeven bestand, veranderen laatste regel.

#root: Marc

Wortel: wortel, [e-mailadres beveiligd]

De certificaatdatabase bijwerken:

#nieuwealiassen

Laten we via de console een brief naar de lokale root sturen:

#df-h | mail -s "Schijfgebruik" root

De brief moet naar buitenste lade. Hiermee is de lokale e-mailconfiguratie voltooid. Nu worden alle brieven geadresseerd aan de lokale root, bijvoorbeeld rapporten van cron, gedupliceerd naar een externe mailbox en verzonden via een normale mailserver. De brieven worden dus normaal afgeleverd, zonder in spam terecht te komen (hoewel dat niet noodzakelijkerwijs het geval is, er zijn ook heuristische filters).

Conclusie

We hebben enkele eerste stappen doorlopen om een ​​CentOS 7-server in te stellen, wat ik meestal doe bij het voorbereiden van een server. Ik pretendeer niet de absolute waarheid te zijn, misschien mis ik iets of doe ik iets dat niet helemaal correct is. Ik ben blij met redelijke en betekenisvolle opmerkingen en suggesties.

Handig na basisinstellingen verbind de server onmiddellijk met het monitoringsysteem. Of stel het in als u dit nog niet heeft. Ik heb een gedetailleerde reeks artikelen over het opzetten van monitoring:

  1. , of alleen cento-verbinding tot monitoring door er een agent op te installeren.
  2. In een aparte sectie van de auteur

25 december 2009 – 19:19 uur

Idealiter zouden gebruikerswachtwoorden voortdurend moeten worden gewijzigd. Dit artikel beschrijft hoe u de vereisten voor het wijzigen van wachtwoorden configureert met behulp van de User Manager-applicatie op Red Hat Enterprise Linux 5 of CentOS 5. 1. Klik op Applicaties, selecteer vervolgens Systeeminstellingen en klik op Gebruikers en groepen. Hierdoor wordt het venster Gebruikersbeheer geopend. 2. Selecteer de gewenste gebruiker en klik op Eigenschappen

17 augustus 2009 – 11:54 uur

De standaard Iptables-configuratie is CentOS-systemen/Rode Hoed/RHEL/ FedoraLinux staat geen inkomende verbindingen met LDAP-services toe. In deze zelfstudie openen we toegang tot de TCP #389- en TCP #636-poorten die door LDAP worden gebruikt. Om dit te doen, moet u het bestand /etc/sysconfig/iptables bijwerken. Laten we eens overwegen eenvoudigste geval, waarin toegang wordt gegeven tot een heel segment van de lokale [...]

29 juli 2009 – 15.50 uur

Bij onderhoud aan een geladen SMTP-servers, merkt u wellicht dat sommige berichten in de wachtrij blijven staan. De redenen kunnen heel verschillend zijn, waaronder 450 reacties van de externe server, het onvermogen om verbinding te maken externe server en onderbrekingen tijdens het verzenden van berichten. Normaal gesproken herhaalt de server het verzenden vanuit de wachtrij ongeveer elke 30 minuten. Maar naarmate het aantal van dergelijke berichten groeit, groeit de algemene [...]

14 juli 2009 – 14:04 uur

Postfix Admin is een webinterface voor beheer brievenbussen, virtuele domeinen en aliassen in postsysteem op postfix-database. Dit artikel beschrijft het installatieproces voor Postfix Admin. Postfix Admin installeren 1. Vóór Postfix installeren Beheerder moet worden geïnstalleerd de volgende pakketten: yum installeer mysql-server php-mysql php-imap

7 mei 2009 – 18:01 uur

Om het niet te vergeten, laat ik een herinnering voor mezelf achter over het instellen van inktvis voor autorisatie op basis van LDAP-accounts. Squid heeft een ingebouwde module genaamd squid_ldap_auth. Het bevindt zich in /usr/lib64/squid/. Laten we eens kijken of het werkt: #/usr/lib64/squid/squid_ldap_auth -b “basedn” -D “binddn” -w bindpasswd -h LDAP_Server -v 3 -p 389 User Pass OK Zoals je hierboven kunt zien, werkt het. Gebruiker en Pas worden ingevoerd met behulp van hendels [...]

18 april 2009 – 16:51 uur

Wat is DRBD? DRBD (Engels: Distributed Replicated Block Device) is een blokapparaat dat is ontworpen voor het bouwen van fouttolerantie clustersystemen op het Linux-besturingssysteem. DRBD houdt zich bezig met volledige reflectie (mirroring) over het netwerk van alle bewerkingen met een blokapparaat. We kunnen DRBD zien als een netwerk RAID-1.

2 april 2009 – 14:58 uur

Veel documenten en HOWTO's beschrijven hoe je VLAN's in Linux handmatig kunt genereren, met behulp van een reeks opdrachten die vervolgens in een script kunnen worden geplaatst. Ik denk dat dit niet helemaal correct is. Het is het beste om dit soort dingen te doen reguliere middelen systemen. In op RedHat gebaseerde systemen kan het opzetten van VLAN's eenvoudig worden gedaan met behulp van het standaard ifup-script. Deze procedure wordt hieronder beschreven.