Mam następujący skrypt bash do odczytywania dzienników i sprawdzania brutalnej siły, a następnie blokowania naruszania adresów IP za pomocą iptables.Komendy skryptu Bash nie działają w programie 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
Zrobiłem chmod 755. Po uruchomieniu polecenia z terminala działa dobrze. Ale kiedy skonfiguruję cronjob używając crontab -e
jako root, otrzyma IP i wyświetli komunikat "BANNED ..." na ścianie, ale nic nie zostanie dodane do listy iptables.
PS. Próbowałem zarówno #!/bin/bash
i #!/bin/sh
, ale bez powodzenia.
Dlaczego trzeba dodać reguły iptables w cron, jeśli chcesz dodać iptables rulesand chcesz, żeby być trwałe można dodać je do/etc/sysconfig/iptables lub rc.local –
Musisz poprawnie ustawić ścieżkę, aby znaleźć 'iptables'. –
wymagałoby ponownego uruchomienia usługi iptables tak? –