CentOS 7 Grundkonfiguration

Beispiel Server Grundkonfiguration

Hostname

Der Hostname wird in der Datei /etc/hostname konfiguriert, hier als Beispiel home-server.lan.local:

vi /etc/hostname
home-server.lan.local

vi

Syntax Highlight für den vi aktivieren, zuerst muss VIM installiert werden:

yum install vim

Danach vim als Alias setzen:

echo 'alias vi=vim' > /etc/profile.d/vi-vim.sh

MOD

In der motd Datei kann eine Nachricht konfiguriert werden die bei einem erfolgreichem Login angezeigt wird, motd steht für „message of the day“:

vi /etc/motd
*******************************************************************

       This computer system is for authorized users only.

All activity is logged and regulary checked by systems personal.
Individuals using this system without authority or in excess of
their authority are subject to having all their services revoked.
Any illegal services run by user or attempts to take down this
server or its services will be reported to local law enforcement,
and said user will be punished to the full extent of the law.
Anyone using this system consents to these terms.

*******************************************************************

Mount Optionen

Linux speichert standardmässig die letzte Zugriffszeit einer Datei (atime). Wenn diese Information nicht gebraucht wird, können Partitionen mit der Option (notime) eingebunden werden, dass bringt einen kleinen Geschwindigkeitsgewinn. Dafür muss die Mount-Options „notime“ in die /etc/fstab bei xfs Dateisysteme eingetragen werden:

vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jan  8 09:45:44 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults,noatime        0 0
UUID=e3b1b56d-1e1d-427c-9d2a-fd160eee37aa /boot                   xfs     defaults,noatime        0 0
UUID=7311-D0FA          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos-home /home                   xfs     defaults,noatime        0 0
/dev/mapper/centos-var  /var                    xfs     defaults,noatime        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 

SSH

Beim SSH Dienst muss das Root-Login deaktiviert werden und Benutzer dürfen sich nur mit der Public-Key Methode authentifizieren, die DNS Auflösung ebenfalls deaktivieren und nur Strenge Cipher-Algorithmen erlauben (rot markierte Elemente sind Änderungen der Rest neu hinzufügen):

vi /etc/ssh/sshd_config
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Zu unterst in der Konfiguration folgendes hinzufügen:

# Specifies whether sshd(8) should look up the remote host name and
# check that the resolved host name for the remote IP address maps
# back to the very same IP address.
UseDNS no
 
# Specifies the ciphers allowed for protocol version 2. Multiple
# ciphers must be comma-separated.
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
 
# Specifies the available MAC (message authentication code) algo-
# rithms.  The MAC algorithm is used in protocol version 2 for data
# integrity protection.  Multiple algorithms must be comma-sepa-
# rated.  The algorithms that contain ``-etm'' calculate the MAC
# after encryption (encrypt-then-mac).
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
 
# Specifies the available KEX (Key Exchange) algorithms.  Multiple
# algorithms must be comma-separated.
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1

Den SSH Dienst neustarten:

systemctl restart sshd

Für das Login muss mindestens WinSCP 5.7.6 genutzt werden und Putty 0.66 am besten man nutzt die letzte Snapshot Version.

Firewall

Neu ist bei CentOS 7 standardmässig firewalld installiert. Ich finde die Benutzung für Home Anwender gut jedoch für unsere Zwecke bzw. Server ungeeignet. Deshalb wird firewalld deaktiviert und iptables installiert:

systemctl mask firewalld
systemctl stop firewalld
yum -y install iptables-services
systemctl enable iptables
systemctl start iptables

iptables persistent installieren:

apt-get install iptables-persistent

Die iptables Regeln werden in der Datei /etc/sysconfig/iptables abgelegt. Beispiel erlaube nur Verbindungen zum TCP Port 22 (SSH):

vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j LOG --log-prefix "iptables drop: " --log-level warning
-A INPUT -j DROP
COMMIT

iptables Regeln neu einlesen:

systemctl reload iptables

EPEL Repository

Viele Pakete wie z.B NRPE sind nicht im Haupt-Respoitory von CentOS zu finden. Deshalb sollte das EPEL Repository (Extra Packages for Enterprise Linux) installiert werden:

yum --enablerepo=extras install epel-release

Paket-Liste aktualisieren:

yum update list

CTRL+ALT+DEL

Mit dem Befehl CTRL+ALT+DEL wird Standardmässig das System neugestartet, mit folgendem Befehl wird diese Tastenkombination deaktiviert:

ln -fs /dev/null /lib/systemd/system/ctrl-alt-del.target

Systemd mit systemctl neu laden:

systemctl daemon-reload

Sie haben weitere Fragen zu dieser Anleitung und möchten gerne mehr Informationen oder brauchen Unterstützung? Wir helfen Ihnen gerne, unsere Kontaktdaten finden Sie hier: https://df-informatik.ch/kontakt/