88 lines
3.2 KiB
Bash
Executable File
88 lines
3.2 KiB
Bash
Executable File
#!/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
|