Ich habe das folgende Bash-Skript, um Protokolle zu lesen und auf Brute-Force zu prüfen, dann blockieren Sie verletzende IP mit iptables.Bash-Skript-Befehle funktionieren nicht in Cron
#!/bin/bash
#blah blah run some commands to get the IP
iptables -A INPUT -s $p -j REJECT --reject-with icmp-host-prohibited
echo "BANNED $p FOR $COUNT ATTEMPTS" |wall
Ich habe chmod 755. Wenn ich den Befehl vom Terminal ausführen, funktioniert es gut. Aber wenn ich einen Cronjob unter Verwendung crontab -e
als root einstelle, erhält es die IP und echos die "BANNED ..." Nachricht zur Wand aber nichts wird der iptables Liste hinzugefügt.
PS. Ich habe sowohl #!/bin/bash
als auch #!/bin/sh
ausprobiert, aber kein Glück.
warum Sie iptables-Regeln in cron hinzufügen müssen tun, um, wenn Sie iptables hinzufügen möchten rulesand Sie sie hartnäckig sein wollen Sie sie hinzufügen können nach/etc/sysconfig/iptables oder rc.local –
Sie müssen Ihren PATH richtig einstellen, um 'iptables' zu finden. –
das müsste den iptables-Dienst neu starten ja? –