Tôi có tập lệnh bash sau đây để đọc nhật ký và kiểm tra lực lượng vũ phu sau đó chặn vi phạm IP bằng iptables.Lệnh tập lệnh Bash không hoạt động trong 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
Tôi đã chmod 755. Khi tôi chạy lệnh từ thiết bị đầu cuối, nó hoạt động tốt. Nhưng khi tôi thiết lập một cronjob bằng cách sử dụng crontab -e
làm thư mục gốc, nó nhận được IP và lặp lại thông điệp "BANNED ..." cho tường nhưng không có gì được thêm vào danh sách iptables.
PS. Tôi đã thử cả #!/bin/bash
và #!/bin/sh
nhưng không may mắn.
tại sao bạn cần phải thêm iptables quy tắc trong cron, nếu bạn muốn thêm iptables rulesand bạn muốn họ kiên trì, bạn có thể thêm chúng tới/etc/sysconfig/iptables hoặc rc.local –
Bạn cần đặt đúng PATH để tìm 'iptables'. –
yêu cầu khởi động lại dịch vụ iptables? –