#!/bin/bash # Exit on any error set -e # Variables DOMAIN=$(hostname -d) # Holt sich die Domain des Systems REALM=$(echo $DOMAIN | tr 'a-z' 'A-Z') # Realm ist die Domain in Großbuchstaben HOSTNAME=$(hostname -f) # Holt den vollständigen Hostnamen (FQDN) IP_ADDRESS=$(hostname -I | awk '{print $1}') # Holt die primäre IP-Adresse des Systems DNS_FORWARDER="192.168.1.1" # Externer DNS-Forwarder (Google in diesem Fall) EXTERNAL_CA="true" # Setzt das Skript auf externe CA PASSWORD="P@ssw0rd1234" # Admin-Passwort (in der Praxis sicher speichern) DIRMAN_PASSWORD="P@ssw0rd12345" # Directory Manager Passwort # Function to check if running as root function check_root { if [[ $EUID -ne 0 ]]; then echo "Dieses Skript muss als Root ausgeführt werden!" 1>&2 exit 1 fi } # Function to install the necessary packages function install_packages { echo "Installiere benötigte Pakete..." # System aktualisieren echo "Aktualisiere das System..." sudo yum update -y # Erforderliche Pakete installieren echo "Installiere erforderliche Pakete..." subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf -y install @idm:DL1 # Erforderliche Pakete installieren echo "Installiere erforderliche Pakete..." sudo yum install -y ipa-server ipa-server-dns } # Function to install the IDM server function install_idm_server { echo "Installiere IdM-Server mit DNS..." # Falls externe CA genutzt werden soll, aber keine eigene CA installiert wird if [ "$EXTERNAL_CA" = "true" ]; then ipa-server-install --hostname=$HOSTNAME --domain=$DOMAIN --realm=$REALM \ --ds-password=$DIRMAN_PASSWORD --admin-password=$PASSWORD \ --ip-address=$IP_ADDRESS --no-pkinit --external-ca \ --setup-dns --auto-reverse --forwarder=$DNS_FORWARDER --no-ntp -U else # Für den Fall, dass keine externe CA genutzt wird, aber dennoch ohne CA gearbeitet wird ipa-server-install --hostname=$HOSTNAME --domain=$DOMAIN --realm=$REALM \ --ds-password=$DIRMAN_PASSWORD --admin-password=$PASSWORD \ --ip-address=$IP_ADDRESS --no-pkinit --setup-dns \ --auto-reverse --forwarder=$DNS_FORWARDER --no-ntp -U fi } # Function to configure firewall function configure_firewall { echo "Konfiguriere Firewall..." firewall-cmd --add-service=freeipa-ldap --permanent firewall-cmd --add-service=freeipa-ldaps --permanent firewall-cmd --add-service=freeipa-replication --permanent firewall-cmd --add-service=freeipa-trust --permanent firewall-cmd --add-service=dns --permanent firewall-cmd --add-port=88/tcp --permanent # Kerberos firewall-cmd --add-port=88/udp --permanent # Kerberos firewall-cmd --add-port=464/tcp --permanent # Kerberos kpasswd firewall-cmd --add-port=464/udp --permanent # Kerberos kpasswd firewall-cmd --add-port=123/udp --permanent # NTP firewall-cmd --reload } # Main function function main { check_root install_packages install_idm_server configure_firewall echo "IdM-Server Installation abgeschlossen." } # Run the script main