Verbinding maken met centos 7 via ssh. Regels maken voor toepassingen. Stap 2: Maak een nieuwe gebruiker aan

Nadat je CentOS op je VPS-server hebt geïnstalleerd, is het ontzettend belangrijk om een ​​aantal dingen te doen aanvullende acties over het instellen van de server en het garanderen van de bescherming ervan tegen verschillende aanvallen. Verderop in het artikel zal ik de naar mijn mening belangrijkste stappen bekijken voor het creëren van een volwaardige en veilige VPS-server.

Stap 1: Wijzig het wachtwoord voor het account - root

Nadat het aanmaken van de nieuwe VPS-server is voltooid, krijgt u een wachtwoord voor de root-superuser. Direct nadat u via SSH verbinding heeft gemaakt met uw server, moet u dit wijzigen, omdat... Soms is het opgegeven wachtwoord niet brute force-bestendig.

Laten we instellen Nieuw wachtwoord voor wortel.

Stap 2: Maak een nieuwe gebruiker aan

Aanvankelijk, na CentOS-installaties en andere Linux-distributies is een gebruiker onder de naam root beschikbaar. De root-superuser is een systeembeheerdersaccount en heeft maximale rechten in het systeem. Vanwege de hoge mogelijkheden wordt het aanbevolen om het root-account alleen in te gebruiken speciale gevallen, omdat dit draagt ​​bij aan het per ongeluk begaan van destructieve en onomkeerbare fouten, die zeer moeilijk te corrigeren zullen zijn.

In dit opzicht maakt de serverbeheerder een nieuwe gebruiker aan aan wie rootrechten gedeeltelijk worden gedelegeerd. Hieronder bekijken we het creatie- en configuratieproces rekening nieuwe gebruiker van het systeem.

Laten we een nieuw account aanmaken waarmee we altijd op de server zullen werken.

gebruikersnaam toevoegen

Laten we een wachtwoord toevoegen om in te loggen op het systeem.

Als u plotseling uw wachtwoord vergeet, kunt u met dezelfde opdracht een nieuw wachtwoord instellen, en Oud wachtwoord zal worden gereset.

Om te nieuwe gebruiker kon installeren softwarepakketten en bewerken systeembestanden, moet u er superuser-bevoegdheden aan delegeren.

Dit kan gedaan worden door een account toe te voegen aan de superusergroep - wiel.

gpasswd -een gebruikersnaamwiel

Nu kan de nieuwe gebruikersnaam opdrachten uitvoeren als root met behulp van het sudo-hulpprogramma.

Om naar een nieuw gebruikersaccount over te schakelen, gebruikt u de opdracht su:

Stap 3: Schakel de firewall in

Ter bescherming tegen ongewenste externe verbindingen met onze server, moet u een firewall installeren en inschakelen.

Laten we de firewallservice installeren:

sudo yum installeer firewalld

Laten we de firewall inschakelen en deze toevoegen aan de lijst met services die automatisch worden gestart wanneer het systeem opnieuw wordt opgestart:

sudo systemctl start firewalld;
sudo systemctl enable firewalld;

Stap 4: SSH-configuratie instellen

Omdat er een netwerk is groot aantal Over de hele wereld draaien brute force programma's die dag en nacht wachtwoorden voor de rootgebruiker proberen te raden en de mogelijkheid bestaat dat ook jouw VPS onder vuur komt te liggen. In dit geval zou een redelijke oplossing zijn om de mogelijkheid voor de rootgebruiker om verbinding te maken via SSH uit te schakelen.

Laten we het configuratiebestand openen - /etc/ssh/sshd_config:

sudo vi /etc/ssh/sshd_config

Laten we de waarde van de PermitRootLogin-richtlijn wijzigen.

#PermitRootLogin ja PermitRootLogin nee

#PermitRootLogin ja

VergunningRootLogin nr

Als je niet genoeg ervaring hebt Linux-gebruiker systemen en uw hoster biedt u geen VNC-paneel, dan wordt het weigeren van root-toegang via ssh niet aanbevolen, omdat wanneer kritische fout, wat kan worden opgelost, alleen vanuit het root-account kunt u niets doen.

Ook zullen wij het standaardnummer wijzigen SSH-poort, omdat Het is op standaardpoort 22 dat brute force-programma's kloppen.

Alle poorten kunnen in drie groepen worden verdeeld:

  • 0 - 1023 - goed beroemde havens, zie ook systeempoorten;
  • 1024 - 49151 - geregistreerde poorten, zie ook gebruikerspoorten;
  • 49152 - 65535 - dynamische poorten, zie ook privépoorten.

Laten we eerst het poortnummer selecteren waarop SSH zal werken. Het wordt aanbevolen om een ​​poortnummerwaarde binnen het bereik 49152 - 65535 te selecteren. Om een ​​poort te selecteren, moet u eerst controleren of deze bezet is door een andere dienst. Ik selecteer bijvoorbeeld poortnummer 63356.

Laten we controleren of poort 63356 bezet is met het volgende commando:

kat /etc/services | grep 63356/tcp

Als u naar aanleiding van het commando geen expliciet antwoord ontvangt, geeft dit aan dat deze poort vrij is. Anders ziet u in het antwoord de naam van de service die de door u geselecteerde poort al heeft bezet.

Nu veranderen we in het bestand /etc/ssh/sshd_config de waarde van de Port-richtlijn:

#Poort 22 Poort 63356

#Poort 22

Poort 63356

Laten we de SSH-service opnieuw opstarten om de instellingen te accepteren.

sudo systemctl herstart sshd

Laten we de firewall vertellen om verbindingen op de nieuwe SSH-poort toe te staan: 63356

sudo firewall-cmd --zone=public --permanent --add-port=63356/tcp;
sudo firewall-cmd --reload;

Laten we ervoor zorgen dat de toegevoegde poort luistert (actief):

ss -lntu | grep 63356

$ss -lntu | grep 63356
tcp LUISTEREN 0 128 *:63356 *:*
tcp LUISTER 0 128:::63356:::*

Om nu via SSH verbinding te maken met de server, moet u altijd expliciet het poortnummer opgeven.

ssh gebruikersnaam@server_ip_adres -p 63356

Stap #5: De servernaam (hostnaam) wijzigen

Hosters stellen de waarde van de variabele $HOSTNAME op gehuurde VPS-servers vaak naar eigen goeddunken in. Laten we de standaardhostnaam wijzigen in iets anders. Meestal is de hostnaam een ​​soort domein.

Volledige informatie over de hostnaam kunt u vinden met het volgende commando:

hostnamectl-status

$hostnamectl-status
Statische hostnaam: hostnaam.ru
Pictogramnaam: computer-vm
Chassis: vm
Machine-ID:
Opstart-ID:
Virtualisatie: kvm
Besturingssysteem: CentOS Linux 7 (Kern)
CPE-besturingssysteemnaam: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.2.2.el7.x86_64
Architectuur: x86-64

Laten we de servernaam wijzigen:

sudo hostnamectl set-hostnaam "example.ru"

Laten we ervoor zorgen dat de naam is gewijzigd:

Stap #6: Stel de tijdzone in

Bij het huren van een VPS-server is het lokale tijd vaak gerelateerd aan de regio waarin het zich bevindt. Als uw VPS-server bijvoorbeeld in Amsterdam staat, dan werkt de server in Midden-Europese tijd.

Laten we eens kijken in welke tijdzone onze server werkt:

Krijg een lijst met beschikbare tijdzones:

timedatectl lijst-tijdzones

Ik woon in de tijdzone van Moskou, dus het is handig voor mij om de server tegelijkertijd te laten werken.

U kunt de servertijd in Moskou als volgt instellen:

timedatectl set-tijdzone Europa/Moskou

Stap #7: De landinstelling instellen

Landinstellingen definiëren de taal die het systeem gebruikt, evenals regionale kenmerken zoals valuta, getalnotaties, datums en tekensets.

De lijst met alle beschikbare landinstellingen wordt opgeslagen in de map - /usr/share/i18n/locales

U kunt de gebruikte landinstellingen bekijken met behulp van de onderstaande opdracht:

$landelijk
LANG=nl_US.UTF-8
LC_CTYPE="nl_US.UTF-8"
LC_NUMERIC="nl_US.UTF-8"
LC_TIME="nl_US.UTF-8"
LC_COLLATE="nl_US.UTF-8"
LC_MONETARY="nl_US.UTF-8"
LC_MESSAGES="nl_US.UTF-8"
LC_PAPER="nl_US.UTF-8"
LC_NAME="nl_US.UTF-8"
LC_ADDRESS="nl_US.UTF-8"
LC_TELEPHONE="nl_US.UTF-8"
LC_MEASUREMENT="nl_US.UTF-8"
LC_IDENTIFICATION="nl_US.UTF-8"
LC_ALL=

Als u de Russische landinstelling voor welk formaat dan ook wilt instellen, bijvoorbeeld tijd, gebruik dan de volgende opdracht:

sudo localectl set-locale LC_TIME=ru_RU.UTF-8

De taal als gevolg van het uitvoeren van het datumcommando zal veranderen in Russisch (na het opnieuw opstarten van de server).

Gebruik de opdracht om de Russische taal op het systeem te installeren:

sudo localectl set-locale LANG=ru_RU.UTF-8

De Russische landinstelling instellen voor alle omgevingsvariabelen:

sudo localectl set-locale LC_ALL=ru_RU.UTF-8

De landinstelling controleren:

lacalectl-status

Stap #8: SElinux uitschakelen

SELinux(Engels: Security-Enhanced Linux - Linux met verbeterde beveiliging) - implementatie van een geforceerd toegangscontrolesysteem dat parallel kan werken met een klassiek selectief toegangscontrolesysteem.

Hoewel SElinux het beveiligingsbeheer verbetert, is de kans groter dat het hindert dan dat het oplevert. echt voordeel, dus ik raad aan om het uit te schakelen.

Je kunt controleren of SElinux is ingeschakeld met het onderstaande commando:

Om SElinux uit te schakelen, bewerkt u het bestand - /etc/selinux/config en stelt u de SELINUX-richtlijn in op uitgeschakelde waarde.

CentOS is een gratis distributie gebaseerd op broncode Rode Hoed Enterprise-Linux Sterker nog, het is vrijwel zonder wijzigingen op basis van deze bronnen gemaakt; de ontwikkelaars hebben alleen alle Red Hat-branding weggelaten. Maar in tegenstelling tot Red Hat is CentOS volledig gratis en ontvangt het regelmatig updates, enige tijd nadat ze voor Red Hat zijn uitgebracht, omdat ze ook uit broncode zijn opgebouwd.

Heel vaak wordt CentOS gebruikt als besturingssysteem voor servers. In een van de vorige artikelen hebben we gekeken hoe het werkt. Vandaag zullen we kijken naar het opzetten van een CentOS 7-server na installatie. We bespreken alle basisinstellingen die u moet wijzigen om uw server klaar te maken voor gebruik.

1. Een statisch IP-adres instellen

Het eerste dat u hoeft te doen, is uw netwerk instellen. Op personal computers we gebruiken DHCP om een ​​IP-adres te verkrijgen, en de computer zal elke keer dat hij opstart een ander adres hebben, de server moet altijd op hetzelfde adres draaien, dus wijzen we hem een ​​statisch IP-adres toe. U moet ook DNS en de standaardgateway configureren. Maar installeer eerst het hulpprogramma net-tools:

yum installeer net-tools

Laten we eerst eens kijken naar de beschikbare netwerkinterfaces en huidig ​​IP-adres:

Nu kunt u doorgaan met het configureren van de interface via het bestand /etc/sysconfig/network-scripts/ifcfg-enp0s3, bijvoorbeeld met behulp van de vi-editor:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

IPADDR = jouw_ip
GATEWAY = gateway_voor_netwerktoegang
DNS1 = IP_adres_DNS1
DNS2 = IP_adres_DNS2

Na het aanbrengen van wijzigingen ziet dit bestand er als volgt uit:

Dan hoeft u alleen nog maar het netwerk opnieuw op te starten om de nieuwe instellingen toe te passen:

servicenetwerk opnieuw opstarten

Vervolgens kunt u, indien nodig, op dezelfde manier het IP-adres wijzigen.

2. Computernaam

Het volgende dat we moeten doen, is de computernaam wijzigen. De huidige computernaam wordt opgeslagen in de HOSTNAME-variabele:

Om het te veranderen moet je het bestand /etc/hostname bewerken en de oude naam daar vervangen door een nieuwe.

vi /etc/hostnaam

U kunt ook de opdracht hostnamectl gebruiken:

hostnamectl set-hostnaam "hostnaam"

3. CentOS-update

Na installatie is het gebruikelijk om te updaten software naar de nieuwste versie om alle beveiligingsupdates te installeren. Om de lijst met pakketten in de opslagplaatsen bij te werken en nieuwe versies te installeren, voert u de volgende opdracht uit:

yum-update && yum-upgrade

4. Installeer een browser

In veel gevallen moet u CentOS gebruiken vanaf de opdrachtregel zonder GUI, dus u hebt mogelijk een browser nodig om iets op internet te vinden of om de functionaliteit van sites vanaf de opdrachtregel te controleren. Om de browserlinks te installeren, typt u:

yum installatielinks

Er zijn andere consolebrowsers voor Linux, zoals Lynx of Elinks.

5. De tijdzone instellen

Het correct instellen van de tijdzone is erg belangrijk voor de server. Dit zal de logverwarring wegnemen en ervoor zorgen dat uw applicaties kunnen worden weergegeven juiste datum en tijd. Voor de configuratie wordt het timedatectl-hulpprogramma gebruikt.

Zorg eerst voor een lijst met tijdzones:

timedatectl lijst-tijdzones

Installeer vervolgens degene die u nodig heeft, bijvoorbeeld Europa/Kiev:

timedatectl set-tijdzone Europa/Kiev

Controleer dan:

7. De landinstelling instellen

De landinstelling bepaalt de taal en codering die op uw systeem worden gebruikt. Als u bijvoorbeeld de Russische taal wilt inschakelen, stelt u de waarde in op ru_RU.UTF-8

localectl set-locale LANG=ru_RU.UTF-8

Laten we dan eens kijken wat er gebeurde:

Stel vervolgens de toetsenbordindeling in:

localectl set-keymap ons

8. Schakel SELinux uit

Een set SELinux-beleidsregels is ontworpen om de toegang tot bestanden in Linux-systeem, maar als u ze niet gaat gebruiken, kan deze functie worden uitgeschakeld. Voer hiervoor het volgende uit:

sed -i "s/(^SELINUX=).*/SELINUX=uitgeschakeld/" /etc/selinux/config

Start vervolgens uw computer opnieuw op en controleer of de functie daadwerkelijk is uitgeschakeld:

9. Maak een gebruiker aan

Het is onveilig om het systeem als superuser te gebruiken en nog onveiliger om te vertrekken open toegang naar het root-account via ssh. Eerst creëren regelmatige gebruiker en stel er een wachtwoord voor in:

useradd-gebruikersnaam
# wachtwoord wachtwoord

Voeg vervolgens de gebruiker toe aan de wielgroep zodat de gebruiker als beheerder kan worden uitgevoerd:

usermod -G wiel gebruikersnaam

Nu hoeft u alleen nog maar de sudo-instellingen te corrigeren; voeg de volgende regel toe als deze er nog niet is:

%wiel ALLES = (ALLE) ALLES

10. Schakel repository's van derden in

Het toevoegen van repository's van derden aan een productieserver is geen goed idee en kan in sommige gevallen tot slechte gevolgen leiden. Soms heeft u echter programma's nodig die niet in de officiële repository's staan. Laten we daarom eens kijken hoe we verschillende repository's kunnen toevoegen.

Om de Enterprise Linux Repository (EPEL) toe te voegen, voert u het volgende uit:

yum installeer epel-release
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

10. SSH-installatie

Meestal moeten we niet rechtstreeks met servers werken, maar via het netwerk, via SSH. Meestal is de SSH-service al geïnstalleerd en geactiveerd, maar daarvoor goede werking Er zijn een paar instellingen die u moet maken. Eerst moet u configureren om alleen te gebruiken beveiligd protocol Om dit te doen, opent u het bestand /etc/ssh/ssh_config en verwijdert u de regel Protocol 2.1. En voeg in plaats daarvan toe:

U moet ook het inloggen als superuser uitschakelen:

VergunningRootLogin nr

11. Installeer Apache-webserver

Als u van plan bent de machine als webserver te gebruiken, heeft u Apache nodig. Hiermee kunt u websites, multimedia-inhoud, clientprogramma's en nog veel meer hosten. Installeren:

yum installeer httpd

Zodra de installatie is voltooid, moet u HTTP in uw firewall inschakelen voordat u verder kunt gaan:

firewall-cmd --add-service=http
# firewall-cmd -permanent -add-port=3221/tcp
# firewall-cmd --herladen

Nu hoeft u alleen nog Apache toe te voegen aan het opstarten:

systemctl start httpd.service
# systemctl schakel httpd.service in

12. Installeer PHP

PHP is moderne taal webapplicaties en scripts. Het wordt vaak gebruikt als programmeertaal algemeen doel. Installeren:

Na de installatie moet je Apache opnieuw opstarten:

echo -e "" > /var/www/html/phpinfo.php

Open vervolgens het gemaakte bestand in uw browser:

koppelingen http://127.0.0.1/phpinfo.php

13. Database-installatie

MariaDB is een database gebaseerd op MySQL-broncode. Op Red Hat gebaseerde Linux-distributies gebruiken MariaDB in plaats van MySQL. Databases - onvervangbaar ding op de server, dus het configureren van CentOS na de installatie moet ook de installatie ervan omvatten. Om MariaDB te installeren, typt u:

yum installeer mariadb-server mariadb

Voer vervolgens uit en voeg toe aan het opstarten:

systemctl start mariadb.service
# systemctl schakelt mariadb.service in

En sta de service toe in de firewall:

firewall-cmd --add-service=mysql

Het enige dat overblijft is het uitvoeren van het installatiescript:

/usr/bin/mysql_secure_installation

14. Installeer GCC

GCC staat voor GNU Compiler Collection, een set compilers die worden beschouwd als de standaard voor het bouwen van programma's op Linux. Maar het wordt standaard niet met CentOS geleverd, dus om te installeren typt u:

Dan kun je de GCC-versie bekijken:

15. Installeer Java

Java is een objectief-georiënteerde programmeertaal voor algemeen gebruik. Het wordt niet standaard geïnstalleerd, dus het configureren van CentOS 7 na de installatie kan de installatie ervan omvatten. Voer hiervoor het volgende uit:

jawel, installeer Java

Controleer vervolgens de versie:

Conclusies

In dit artikel hebben we gekeken hoe je een CentOS 7-server na installatie configureert. Zoals u kunt zien, zijn er veel basisstappen die u moet uitvoeren voordat u de server in productie gaat gebruiken. Als je vragen hebt, stel ze dan in de reacties!

Ik heb een vers geïnstalleerde CentOS 7-server op VDS met KVM-virtualisatie. Ik zal het hebben over hoe u de basisserverconfiguratie kunt uitvoeren, zodat u deze naar eigen goeddunken in welke hoedanigheid dan ook kunt gebruiken. Dit kan een webserver, VPN-server of monitoringserver zijn. 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.

Invoering

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:

# yum -y-update

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

# ifconfig

En je zult het antwoord zien:

Bash: ifconfig: opdracht 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 er aparte controleprogramma's zijn 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 -y installeer net-tools.x86_64

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 -y 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

Netwerkparameters opgeven

Opslagplaatsen toevoegen

Om verschillende software te installeren, moet je repositories in CentOS verbinden. 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 -y installeer epel-release

Installeer rpmforge:

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

Iftop, atop, htop installeren op CentOS 7

En tot slot voegen we nog een paar handige hulpprogramma's toe die van pas kunnen komen tijdens de werking 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 -y 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:

Dat is alles voor mij. Basisopstelling CentOS 7 is klaar, u kunt beginnen met het installeren en configureren van de hoofdfunctionaliteit.

Conclusie

We hebben enkele van de initiële installatiestappen doorlopen die ik gewoonlijk 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.

Het is handig om na configuratie de server direct met het monitoringsysteem te verbinden. Of stel het in als u dit nog niet heeft. Ik heb een gedetailleerde reeks artikelen over het opzetten van monitoring:

  1. Een voorbeeld van het opzetten van een zabbix-monitoringserver, of het alleen verbinden van centos met monitoring door er een agent op te installeren.
  2. E-mailmeldingen van zabbix instellen via een smtp-server van derden.
  3. Gedetailleerde monitoring van een webserver op basis van nginx + php-fpm.
  4. Websitemonitoringsysteem gebaseerd op zabbix.
  5. Bewaking van mysql-replicatie in zabbix.

CentOS 7 installatievideo

15 augustus 2014 12:57 uur 12.380 keer bekeken | Geen opmerkingen

Wanneer u voor het eerst inlogt op een nieuwe virtuele privéserver, moet u verschillende stappen uitvoeren om de beveiliging ervan te vergroten. IN deze handleiding We zullen het hebben over hoe u een nieuwe gebruiker kunt maken, deze de juiste rechten kunt geven en SSH kunt configureren.

1: Log in als rootgebruiker

Zodra u uw IP-adres en root-wachtwoord heeft, logt u in op de server als hoofdgebruiker (root). Gebruik hiervoor de opdracht (vervang het toegewezen IP-adres door uw IP-adres):

ssh [e-mailadres beveiligd]

De terminal retourneert iets als:

De authenticiteit van host "111.22.33.444 (111.22.33.444)" kan niet worden vastgesteld.
De ECDSA-sleutelvingerafdruk is 79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Weet u zeker dat u wilt doorgaan met verbinden (ja/nee)?

Selecteer Ja en voer uw rootwachtwoord in.

Opmerking: Het regelmatig gebruiken van het root-account wordt niet aanbevolen; Deze handleiding helpt u bij het aanmaken van een nieuwe gebruiker voor permanent werk.

2: Wijzig uw wachtwoord

Op op dit moment Het root-wachtwoord wordt gebruikt, standaard ingesteld en ontvangen na registratie van de server. Het eerste dat u moet doen, is het vervangen door uw eigen wachtwoord.

Wat betreft de wachtwoorden die u instelt: CentOS-systeem heel voorzichtig. Daarom kan na het invoeren van een nieuw wachtwoord de melding BAD PASSWORD verschijnen. Je kunt er meer installeren complex wachtwoord, of negeer het bericht: in feite accepteert CentOS zelfs te simpele or kort wachtwoord, hoewel er wordt voorgesteld een complexere combinatie te gebruiken.

3: Maak een nieuwe gebruiker aan

Nadat u bent ingelogd op de server en het root-wachtwoord hebt gewijzigd, moet u opnieuw als root inloggen op de VPS. In dit gedeelte wordt gedemonstreerd hoe u een nieuwe gebruiker kunt aanmaken en er een wachtwoord voor kunt instellen.

Maak dus een nieuwe gebruiker aan; Gebruik hiervoor het volgende commando (vervang demo door uw gebruikersnaam):

adduser-demo

Maak nu een wachtwoord aan voor deze gebruiker (vervang demo opnieuw door de naam van de gebruiker die u zojuist hebt aangemaakt):

passwd-demo

4: Root-rechten

Op dit moment behoren alle beheerdersrechten toe aan de rootgebruiker. Om het nieuwe account permanent te kunnen gebruiken, moet u alle rootrechten overdragen aan de nieuwe gebruiker (demo).

Om taken met rootrechten uit te voeren, moet u de opdracht starten met sudo. Deze zinsnede is om twee redenen nuttig: 1) het beschermt het systeem tegen destructieve fouten gemaakt door de gebruiker; 2) het slaat alle opdrachten op die met sudo zijn gestart in het bestand /var/log/secure, dat later kan worden bekeken.

Nu moet je je sudo-instellingen wijzigen; voor dit gebruik teksteditor CentOS-standaard, genaamd vi:

Zoek de sectie Gebruikersrechtenspecificatie, die er als volgt uitziet:

#Specificatie van gebruikersrechten
root ALLE=(ALLE) ALLES

Voer na de regel met rootrechten in volgende regel waarmee alle rechten worden overgedragen aan de nieuwe gebruiker (druk op i om te beginnen met typen in vi):

demo ALLES=(ALLE) ALLES

Om het invoeren van tekst te voltooien, drukt u op Esc; typ vervolgens:, wq, Enter om het bestand op te slaan en te sluiten.

5: SSH instellen (optioneel)

Nu moeten we de server beveiligen. In dit aanvullende gedeelte leest u hoe u uw server kunt beschermen door het autorisatieproces moeilijker te maken.

Open het configuratiebestand:

sudo vi /etc/ssh/sshd_config

Zoek de volgende secties en breng dienovereenkomstig wijzigingen aan:

Poort 25000
VergunningRootLogin nr

Haven: Hoewel de standaardpoort 22 is, kunt u dit wijzigen in elk getal tussen 1025 en 65536. Deze handleiding gebruikt SSHD-poort 25000. Let op: nieuw nummer De poort moet worden onthouden/opgeschreven, omdat deze nodig is om via SSH op de server in te loggen.

ToestemmingRootLogin:Wijzig ja in nee om root-login uit te schakelen. Nu kunt u alleen met een nieuwe gebruiker inloggen op de server.

Zodat SSH er alleen gebruik van kan maken specifieke gebruiker, voeg deze regel toe onderaan het document (vervang demo door uw gebruikersnaam):

AllowUsers-demo

Sla vervolgens uw wijzigingen op en sluit het bestand.

Opnieuw opstartenSSH

Om te activeren wijzigingen aangebracht, start de SSHD-service opnieuw:

sudo systemctl herlaad sshd.service

Om de nieuwe instellingen te testen (log nog niet uit bij uw root-account), opent u een terminal en logt u in op de server als een nieuwe gebruiker (vergeet niet om het juiste IP-adres en de juiste poort in te voeren):

ssh -p 25000-demo @111.22.33.444

Er zou een melding moeten verschijnen:

Zones

De firewalld-daemon beheert groepen regels met behulp van zogenaamde zones.

Zones zijn in wezen sets regels die het verkeer controleren op basis van het vertrouwensniveau in een bepaald netwerk. Zones worden toegewezen aan netwerkinterfaces en bepalen het gedrag van de firewall.

Computers die regelmatig verbinding maken met verschillende netwerken (zoals laptops) kunnen zones gebruiken om regelsets te wijzigen, afhankelijk van de omgeving. Bijvoorbeeld bij het verbinden met openbaar netwerk WiFi-firewall kan strengere regels afdwingen en beperkingen op het thuisnetwerk versoepelen.

Firewalld heeft de volgende zones:

  • daling: laagste niveau van netwerkvertrouwen. Alle inkomend verkeer reset zonder reactie, alleen uitgaande verbindingen worden ondersteund.
  • block: Deze zone is vergelijkbaar met de vorige, maar inkomende verzoeken worden verwijderd met het bericht icmp-host-prohibited of icmp6-adm-prohibited.
  • openbaar: Deze zone vertegenwoordigt een openbaar netwerk dat niet kan worden vertrouwd, maar inkomende verbindingen op privébasis toestaat.
  • extern: zone externe netwerken. Ondersteunt NAT masquerading, zodat het interne netwerk privé maar toch toegankelijk blijft.
  • intern: achterkant externe zones, interne netwerken. Computers in deze zone kunnen worden vertrouwd. Aanvullende diensten beschikbaar.
  • dmz: gebruikt voor computers die zich in een DMZ bevinden (geïsoleerde computers die geen toegang hebben tot de rest van het netwerk); ondersteunt slechts enkele inkomende verbindingen.
  • werk: werknetwerkzone. De meeste machines op het netwerk zijn te vertrouwen. Aanvullende diensten beschikbaar.
  • thuis: thuisnetwerkzone. De omgeving is te vertrouwen, maar alleen ondersteund gebruiker gedefinieerd inkomende verbindingen.
  • vertrouwd: Alle machines op het netwerk kunnen worden vertrouwd.

Regels opslaan

Firewallregels kunnen permanent of tijdelijk zijn. Als er een regel verschijnt of verandert in de set, verandert het huidige gedrag van de firewall onmiddellijk. Na een herstart gaan echter alle wijzigingen verloren als ze niet worden opgeslagen.

De meeste firewall-cmd-opdrachten kunnen de vlag --permanent gebruiken, waardoor de regel wordt opgeslagen, waarna deze permanent wordt gebruikt.

Firewall inschakelen

Eerst moet u de daemon inschakelen. Het systemd-eenheidsbestand heet firewalld.service. Om de daemon te starten, typt u.

sudo systemctl start firewalld.service

Zorg ervoor dat de service actief is:

firewall-cmd --state
rennen

De firewall is nu actief volgens de standaardconfiguratie.

De service is momenteel ingeschakeld, maar start niet automatisch met de server. Om te voorkomen dat u per ongeluk uzelf op uw eigen server blokkeert, maakt u eerst een set regels en configureert u vervolgens autorun.

Standaard firewallregels

Bekijk standaardregels

Om erachter te komen welke zone de standaardzone is, voert u het volgende in:

firewall-cmd --get-default-zone
publiek

Op dit moment heeft firewalld geen instructies ontvangen met betrekking tot de andere zones en zijn er geen interfaces gekoppeld aan de andere zones, dus nu is de openbare zone de standaardzone en ook de enige actieve zone.

Om een ​​lijst met actieve zones te krijgen, typt u:


publiek
interfaces: eth0 eth1

Er zijn twee netwerkinterfaces gekoppeld aan de openbare zone: eth0 en eth1. Interfaces die aan een zone zijn gebonden, werken volgens de regels van die zone.

Om te zien welke regels een zone standaard gebruikt, typt u:

firewall-cmd --lijst-alles
openbaar (standaard, actief)
interfaces: eth0 eth1
bronnen:
diensten: dhcpv6-client ssh
poorten:
maskerade: nee
forward-poorten:
icmp-blokken:
rijke regels:

Dus nu weet je dat:

  • openbaar is de standaardzone en de enige actieve zone.
  • De eth0- en eth1-interfaces zijn eraan gebonden.
  • Het ondersteunt DHCP-verkeer (IP-adrestoewijzing) en SSH-verkeer (beheer op afstand).

Andere firewallzones

Nu moet u vertrouwd raken met andere zones.

Om een ​​lijst met alle beschikbare zones te krijgen, typt u:

firewall-cmd --get-zones

Om parameters voor een specifieke zone op te halen, voegt u de vlag --zone= toe aan de opdracht.

firewall-cmd --zone=home --lijst-alles
thuis
interfaces:
bronnen:
diensten: dhcpv6-client ipp-client mdns samba-client ssh
poorten:
maskerade: nee
forward-poorten:
icmp-blokken:
rijke regels:

Om de definities van alle beschikbare zones weer te geven, voegt u de optie --list-all-zones toe. Voor meer handig bekijken de uitvoer kan naar een pager worden gestuurd:

firewall-cmd --lijst-alle-zones | minder

Interfacezones instellen

In eerste instantie worden alle netwerkinterfaces toegewezen aan de standaardzone.

De interfacezone voor één sessie wijzigen

Om een ​​interface voor één sessie naar een andere zone te verplaatsen, gebruikt u de opties --zone= en --change-interface=.

Om eth0 bijvoorbeeld naar de thuiszone te verplaatsen, voert u het volgende in:

sudo firewall-cmd --zone=home --change-interface=eth0
succes

Opmerking: Bij het overbrengen van een interface naar een andere zone dient u er rekening mee te houden dat dit de werking van sommige diensten kan beïnvloeden. De thuiszone ondersteunt bijvoorbeeld SSH, waardoor verbindingen van deze dienst niet worden verbroken. Maar sommige zones resetten alle verbindingen, inclusief SSH, en dan kun je jezelf per ongeluk buitensluiten van je eigen server.

Om ervoor te zorgen dat de interface aan de nieuwe zone is gebonden, voert u het volgende in:

firewall-cmd --get-active-zones
thuis
interfaces: eth0
publiek
interfaces: eth1

Nadat de firewall opnieuw is opgestart, wordt de interface teruggezet naar de standaardzone.

sudo systemctl herstart firewalld.service
firewall-cmd --get-active-zones
publiek
interfaces: eth0 eth1

De interfacezone permanent wijzigen

Als er geen andere zone is opgegeven in de interface-instellingen, wordt de interface na het opnieuw opstarten van de firewall teruggekoppeld naar de standaardzone. Op CentOS worden dergelijke configuraties opgeslagen in de directory /etc/sysconfig/network-scripts, in bestanden met het ifcfg-interfaceformaat.

Om de zone van een interface te definiëren, opent u het configuratiebestand van die interface, bijvoorbeeld:

Voeg aan het einde van het bestand de variabele ZONE= toe en specificeer een andere zone als waarde, bijvoorbeeld home:

. . .
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONE=thuis

Sla het bestand op en sluit het.

Om de instellingen bij te werken, start u de netwerkservice en firewall opnieuw op:

sudo systemctl herstart netwerk.service
sudo systemctl herstart firewalld.service

Na de herstart wordt de eth0-interface toegewezen aan de thuiszone.

firewall-cmd --get-active-zones
thuis
interfaces: eth0
publiek
interfaces: eth1

Standaard zone-instelling

U kunt ook een andere standaardzone kiezen.

Gebruik hiervoor de parameter --set-default-zone=. Hierna worden alle interfaces toegewezen aan een andere zone:

sudo firewall-cmd --set-default-zone=home
thuis
interfaces: eth0 eth1

Applicatieregels maken

Een dienst aan een zone toevoegen

De eenvoudigste manier is om een ​​service of poort toe te voegen aan de zone die de firewall gebruikt. Bekijk beschikbare diensten:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp hoge beschikbaarheid http-https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp client transmissie-client vnc-server wbem-https

Opmerking: Meer informatie informatie over elke specifieke service kunt u vinden in de .xml-bestanden in de map /usr/lib/firewalld/services. Informatie over de SSH-service wordt bijvoorbeeld opgeslagen in /usr/lib/firewalld/services/ssh.xml en ziet er als volgt uit:



SSH

Om serviceondersteuning in een bepaalde zone in te schakelen, gebruikt u de --add-service= optie. U kunt de doelzone opgeven met de optie --zone=. Standaard werken deze wijzigingen voor één sessie. Om de wijzigingen op te slaan en permanent te gebruiken, voegt u de vlag --permanent toe.

Bijvoorbeeld om een ​​webserver te starten voor het serveren HTTP-verkeer, moet u eerst ondersteuning voor dit verkeer in de openbare zone inschakelen voor één sessie:

sudo firewall-cmd --zone=public --add-service=http

Als de service aan de standaardzone moet worden toegevoegd, kan de vlag --zone= worden weggelaten.

Controleer of de bewerking is geslaagd:

firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

Test de service en firewall. Als alles correct werkt, kunt u de permanente regelset bewerken en een regel toevoegen om deze service te ondersteunen.

sudo firewall-cmd --zone=public --permanent --add-service=http

Om een ​​lijst met permanente regels te bekijken, typt u:

sudo firewall-cmd --zone=public --permanent --list-services
dhcpv6-client http ssh

De openbare zone ondersteunt nu permanent HTTP en poort 80. Als de webserver SSL/TLS-verkeer kan verwerken, kunt u ook de https-service toevoegen (voor een enkele sessie of aan een set persistente regels):

sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --zone=public --permanent --add-service=https

Wat te doen als de gewenste dienst niet beschikbaar is?

De firewalld firewall bevat standaard veel van de meest voorkomende services. Sommige toepassingen vereisen echter services die firewalld niet ondersteunt. In dit geval kunt u op twee manieren te werk gaan.

Methode 1: Poortinstelling

De eenvoudigste manier in deze situatie is om de applicatiepoort in de vereiste firewallzone te openen. U hoeft alleen maar de poort of het poortbereik en het protocol op te geven.

Een toepassing die poort 5000 en het TCP-protocol gebruikt, moet bijvoorbeeld aan de openbare zone worden toegevoegd. Om toepassingsondersteuning voor de onderste sessie in te schakelen, gebruikt u de --add-port= parameter en specificeert u het tcp- of udp-protocol.

sudo firewall-cmd --zone=public --add-port=5000/tcp

Controleer of de bewerking is geslaagd:

firewall-cmd --list-poorten
5000/TCP

U kunt ook een opeenvolgend bereik van poorten opgeven door de eerste en laatste poort in het bereik te scheiden met een streepje. Als uw toepassing bijvoorbeeld UDP-poorten 4990-4999 gebruikt, voert u het volgende in om ze toe te voegen aan de openbare zone:

sudo firewall-cmd --zone=public --add-port=4990-4999/udp

Na het testen kunt u deze regels toevoegen permanente instellingen firewall.

sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
sudo firewall-cmd --zone=public --permanent --list-ports
succes
succes
4990-4999/udp 5000/tcp

Methode 2: Een dienst definiëren

Het toevoegen van poorten aan zones is eenvoudig, maar als u veel van dergelijke toepassingen heeft, kan het lastig zijn om bij te houden waar elke poort voor dient. Om deze situatie te voorkomen, kunt u services definiëren in plaats van poorten.

Services zijn eenvoudigweg verzamelingen poorten met een specifieke naam en beschrijving. Services maken het gemakkelijker om instellingen te beheren, maar ze zijn zelf complexer dan poorten.

Eerst moet u het bestaande script kopiëren van de map /usr/lib/firewalld/services naar de map /etc/firewalld/services (dit is waar de firewall zoekt naar niet-standaard instellingen).

U kunt bijvoorbeeld de SSH-servicedefinitie kopiëren en deze gebruiken om een ​​voorwaardelijke voorbeeldservice te definiëren. De scriptnaam moet overeenkomen met de servicenaam en de extensie .xml hebben.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Bewerk het gekopieerde bestand.

sudo nano /etc/firewalld/services/example.xml

Het bestand bevat de SSH-definitie:



SSH
Secure Shell (SSH) is een protocol voor het inloggen op en uitvoeren van opdrachten op externe machines. Het biedt veilige gecodeerde communicatie. Als u van plan bent om op afstand toegang te krijgen tot uw machine via SSH via een firewall-interface, schakel dan deze optie in. Om deze optie bruikbaar te maken, moet het openssh-server-pakket geïnstalleerd zijn.

Een groot deel van de definitie van een dienst bestaat uit metadata. U kunt de korte naam van de dienst in tags wijzigen . Dit is de voor mensen leesbare naam van de service. U moet ook een beschrijving van de dienst toevoegen. De enige verandering die van invloed is op de werking van de dienst is een verandering in het poortnummer en het protocol.

Laten we terugkeren naar de voorbeeldservice; laten we zeggen dat hij vraagt ​​om te openen TCP-poort 7777 en UDP-poort 8888. De definitie zou er als volgt uitzien:



Voorbeelddienst
Dit is slechts een voorbeelddienst. Het zou waarschijnlijk niet op een echt systeem moeten worden gebruikt.

Sla het bestand op en sluit het.

Start de firewall opnieuw:

sudo firewall-cmd --reload

De dienst verschijnt nu in de lijst met beschikbare diensten:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns voorbeeld ftp hoge beschikbaarheid http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pm proxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp straal rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmissie-client vnc-server wbem-https

Zones creëren

De firewall biedt veel vooraf gedefinieerde zones, die in de meeste gevallen voldoende zijn om de klus te klaren. Maar in sommige situaties wordt het noodzakelijk om een ​​aangepaste zone te creëren.

U kunt bijvoorbeeld een publicweb-zone voor een webserver en een privateDNS-zone voor een DNS-service maken.

Wanneer u een zone aanmaakt, moet u deze toevoegen aan de permanente instellingen van uw firewall.

Probeer publicweb- en privateDNS-zones te maken:

sudo firewall-cmd --permanent --new-zone=publicweb
sudo firewall-cmd --permanent --new-zone=privateDNS

Controleer of er zones bestaan:

sudo firewall-cmd --permanent --get-zones

Nieuwe zones zijn niet beschikbaar in de huidige sessie:

firewall-cmd --get-zones
dmz blokkeren drop extern thuis intern publiek vertrouwd werk

Om toegang te krijgen tot nieuwe zones, moet u de firewall opnieuw opstarten:

sudo firewall-cmd --reload
firewall-cmd --get-zones
blok dmz drop extern huis intern privateDNS openbaar publicweb vertrouwd werk

Nu kunt u de benodigde services en poorten aan de nieuwe zones toewijzen. U kunt bijvoorbeeld SSH, HTTP en HTTPS toevoegen aan de publicweb-zone.

sudo firewall-cmd --zone=publicweb --add-service=ssh
sudo firewall-cmd --zone=publicweb --add-service=http
sudo firewall-cmd --zone=publicweb --add-service=https
firewall-cmd --zone=publicweb --lijst-alles
publiekweb
interfaces:
bronnen:
diensten: http https ssh
poorten:
maskerade: nee
forward-poorten:
icmp-blokken:
rijke regels:

U kunt DNS toevoegen aan de privateDNS-zone:

sudo firewall-cmd --zone=privateDNS --add-service=dns
firewall-cmd --zone=privateDNS --lijst-alles
privéDNS
interfaces:
bronnen:
diensten: dns
poorten:
maskerade: nee
forward-poorten:
icmp-blokken:
rijke regels:

Vervolgens kunt u netwerkinterfaces aan nieuwe zones toewijzen:

sudo firewall-cmd --zone=publicweb --change-interface=eth0
sudo firewall-cmd --zone=privateDNS --change-interface=eth1

Nu kunt u de opstelling testen. Als alles correct werkt, kunt u deze regels toevoegen aan de permanente instellingen.

sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh
sudo firewall-cmd --zone=publicweb --permanent --add-service=http
sudo firewall-cmd --zone=publicweb --permanent --add-service=https
sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

Hierna kunt u de netwerkinterfaces configureren automatische verbinding naar de juiste zone.

Eth0 zal bijvoorbeeld worden gekoppeld aan publicweb:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
. . .
IPV6_AUTOCONF=nee
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONE=openbaarweb

En de eth1-interface zal gebonden zijn aan privateDNS:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1
. . .
NETMASKER=255.255.0.0
DEFROUTE = "nee"
NM_CONTROLLED="ja"
ZONE=privéDNS

Opnieuw opstarten netwerkdiensten en firewall:

sudo systemctl herstart netwerk
sudo systemctl herstart firewalld

Controleer zones:

firewall-cmd --get-active-zones
privéDNS
interfaces: eth1
publiekweb
interfaces: eth0

Zorg ervoor dat de vereiste services actief zijn in de zones:

firewall-cmd --zone=publicweb --list-services
http-htpps-ssh
firewall-cmd --zone=privateDNS --list-services
dns

Gebruikerszones zijn volledig klaar voor gebruik. U kunt elk van deze uw standaardzone maken. Bijvoorbeeld:

sudo firewall-cmd --set-default-zone=publicweb

Automatische start van de firewall

Nu u alle instellingen heeft gecontroleerd en ervoor heeft gezorgd dat alle regels naar verwachting werken, kunt u de firewall zo configureren dat deze automatisch wordt gestart.

Om dit te doen, voert u het volgende in:

sudo systemctl activeert firewalld

De firewall start nu samen met de server.

Conclusie

Firewalld-firewall is erg flexibel hulpmiddel. Met zones kunt u snel het firewallbeleid wijzigen.

Nu u weet hoe firewalld werkt, bent u bekend met de basisconcepten van een firewall, kunt u aangepaste zones aanmaken en services toevoegen.

Trefwoorden: ,