slogan3

Ontwikkel een Bash- of PowerShell-script voor geautomatiseerde serverconfiguratievalidatie

description

Met deze prompt kan de gebruiker snel een script ontwikkelen dat automatisch serverconfiguraties controleert en afwijkingen detecteert, waardoor handmatige fouten en downtime worden verminderd. Het bespaart tijd, verhoogt de betrouwbaarheid en helpt bij het naleven van configuratiestandaarden, wat beter is dan ad-hoc of handmatige controles.

prompt

Help me een Bash- of PowerShell-script te maken dat automatisch de configuratie van mijn server controleert op afwijkingen en consistentieproblemen. Servertype: <voer het type server in waarop het script draait> Configuratiebestanden of instellingen om te controleren: <beschr ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld Bash-script dat de gevraagde controles uitvoert en een rapport genereert in /var/log/config_validation_report.txt: ```bash #!/bin/bash # Bestandslocaties NGINX_CONF="/etc/nginx/nginx.conf" SSHD_CONF="/etc/ssh/sshd_config" REPORT="/var/log/config_validation_report.txt" # Maak rapportbestand aan of leeg het echo "Configuratie validatierapport - $(date)" > $REPORT echo "=========================================" >> $REPORT echo "" >> $REPORT # Controle nginx.conf echo "Controle nginx.conf:" >> $REPORT if [ -f "$NGINX_CONF" ]; then # Voeg hier specifieke controles toe, bijvoorbeeld syntax check nginx -t -c "$NGINX_CONF" &>> $REPORT if [ $? -eq 0 ]; then echo " [OK] nginx.conf syntax is correct." >> $REPORT else echo " [FOUT] nginx.conf bevat syntaxfouten." >> $REPORT fi else echo " [FOUT] Bestand $NGINX_CONF niet gevonden." >> $REPORT fi echo "" >> $REPORT # Controle sshd_config echo "Controle sshd_config:" >> $REPORT if [ -f "$SSHD_CONF" ]; then # Check of root login is uitgeschakeld if grep -E "^PermitRootLogin\s+no" "$SSHD_CONF" > /dev/null; then echo " [OK] Root login is uitgeschakeld." >> $REPORT else echo " [WAARSCHUWING] Root login is niet uitgeschakeld." >> $REPORT fi # Voeg extra controles toe indien gewenst else echo " [FOUT] Bestand $SSHD_CONF niet gevonden." >> $REPORT fi echo "" >> $REPORT # Controle firewall om poort 22 te sluiten echo "Controle firewall instellingen:" >> $REPORT # Voor systemen met ufw if command -v ufw > /dev/null; then ufw_status=$(ufw status | grep '22/tcp') if echo "$ufw_status" | grep -q "ALLOW"; then echo " [FOUT] Poort 22 wordt toegestaan via UFW." >> $REPORT elif echo "$ufw_status" | grep -q "DENY"; then echo " [OK] Poort 22 is geblokkeerd via UFW." >> $REPORT else echo " [OPMERKING] Poort 22 status niet duidelijk via UFW." >> $REPORT fi # Voor systemen met firewalld elif command -v firewall-cmd > /dev/null; then if firewall-cmd --list-ports | grep -w 22/tcp > /dev/null; then echo " [FOUT] Poort 22 wordt toegestaan via firewalld." >> $REPORT else echo " [OK] Poort 22 is niet toegestaan via firewalld." >> $REPORT fi else echo " [OPMERKING] Geen ufw of firewalld gevonden; controleer firewall handmatig." >> $REPORT fi echo "" >> $REPORT echo "Validatie voltooid. Zie rapport in $REPORT." ``` **Gebruik:** 1. Sla dit script op bijvoorbeeld als `validate_server_config.sh`. 2. Maak het uitvoerbaar met: `chmod +x validate_server_config.sh`. 3. Voer het script uit als root of met sudo: `sudo ./validate_server_config.sh`. Dit script controleert de syntax van nginx, of root login uitstaat in sshd, en of poort 22 geblokkeerd is in de firewall, en schrijft alle bevindingen naar het rapportbestand. Je kunt extra controles toevoegen naar wens.
provider: deepseek
model: deepseek-chat
Hier is een Bash-script dat aan uw vereisten voldoet: ```bash #!/bin/bash # Configuratie LOG_FILE="/var/log/config_validation_report.txt" NGINX_CONF="/etc/nginx/nginx.conf" SSHD_CONF="/etc/ssh/sshd_config" # Maak logbestand aan of wis vorige inhoud echo "Configuratie Validatie Rapport - $(date)" > $LOG_FILE echo "==============================================" >> $LOG_FILE echo "" >> $LOG_FILE # Functie om checks uit te voeren en resultaten te loggen run_check() { local check_name="$1" local command="$2" local expected="$3" echo "Check: $check_name" >> $LOG_FILE echo "Uitvoering: $command" >> $LOG_FILE echo "Verwacht: $expected" >> $LOG_FILE if eval $command; then echo "Status: PASS" >> $LOG_FILE echo "Resultaat: Configuratie voldoet aan de vereiste" >> $LOG_FILE else echo "Status: FAIL" >> $LOG_FILE echo "Resultaat: Configuratie wijkt af van de vereiste" >> $LOG_FILE fi echo "----------------------------------------------" >> $LOG_FILE echo "" >> $LOG_FILE } # 1. Check SSH Root Login run_check \ "SSH Root Login Uitgeschakeld" \ "grep -E '^PermitRootLogin no' $SSHD_CONF" \ "PermitRootLogin moet op 'no' staan" # 2. Check Firewall Poort 22 run_check \ "Firewall Poort 22 Gesloten" \ "! sudo ufw status | grep -E '^22.*ALLOW'" \ "Poort 22 mag niet open staan in UFW" # 3. Check Nginx Configuratie Syntax echo "Check: Nginx Configuratie Syntax" >> $LOG_FILE echo "Uitvoering: sudo nginx -t -c $NGINX_CONF" >> $LOG_FILE echo "Verwacht: Geen syntax errors" >> $LOG_FILE if sudo nginx -t -c $NGINX_CONF &>> $LOG_FILE; then echo "Status: PASS" >> $LOG_FILE echo "Resultaat: Nginx configuratie is syntactisch correct" >> $LOG_FILE else echo "Status: FAIL" >> $LOG_FILE echo "Resultaat: Nginx configuratie bevat syntax errors" >> $LOG_FILE fi echo "----------------------------------------------" >> $LOG_FILE echo "" >> $LOG_FILE # 4. Check SSH Configuratie Syntax echo "Check: SSH Configuratie Syntax" >> $LOG_FILE echo "Uitvoering: sudo sshd -t -f $SSHD_CONF" >> $LOG_FILE echo "Verwacht: Geen syntax errors" >> $LOG_FILE if sudo sshd -t -f $SSHD_CONF &>> $LOG_FILE; then echo "Status: PASS" >> $LOG_FILE echo "Resultaat: SSH configuratie is syntactisch correct" >> $LOG_FILE else echo "Status: FAIL" >> $LOG_FILE echo "Resultaat: SSH configuratie bevat syntax errors" >> $LOG_FILE fi echo "----------------------------------------------" >> $LOG_FILE echo "" >> $LOG_FILE echo "Validatie voltooid om $(date)" >> $LOG_FILE echo "Rapport opgeslagen in: $LOG_FILE" >> $LOG_FILE # Toon samenvatting in terminal echo "Configuratie validatie voltooid!" echo "Bekijk het volledige rapport in: $LOG_FILE" ``` **Installatie en gebruik:** 1. Sla het script op als `config_validator.sh` 2. Maak het uitvoerbaar: `chmod +x config_validator.sh` 3. Voer uit met sudo rechten: `sudo ./config_validator.sh` **Wat het script controleert:** 1. **SSH Root Login**: Verifieert dat `PermitRootLogin no` is ingesteld 2. **Firewall Poort 22**: Controleert of poort 22 gesloten is in UFW 3. **Nginx Syntax**: Test de syntax van de Nginx configuratie 4. **SSH Syntax**: Test de syntax van de SSH configuratie **Opmerkingen:** - Het script vereist sudo rechten voor bepaalde checks - UFW wordt gebruikt voor firewall checks (zorg dat het geïnstalleerd is) - Het rapport wordt weggeschreven naar `/var/log/config_validation_report.txt` U kunt het script uitbreiden met extra validatieregels naar behoefte.