В общем написал простой скрипт для блокировки ip-адресов на сервере и столкнулся с проблемой:
Bad argument `REJECT'
Try `iptables -h' or 'iptables --help' for more information.
iptables: unrecognized service
Такая же ошибка с разблокировкой:
Вот код:
#!/bin/bash
clear
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
IP4TABLES_BIN=/sbin/iptables
IPTABLES=$IP4TABLES_BIN
echo -e "
Выберите:
0. Выход в главное меню
-----------------------
1. Заблокировать IP
2. Разблокировать IP
-----------------------
3. Подготовка
-----------------------
Подсказка: Перед первой блокировкой выберите функцию подготовка. В дальнейшем ее не нужно трогать.
"
until [[ $MENU_OPTION =~ ^[0-3]$ ]]; do
read -rp "Введите число [0-3]: " MENU_OPTION
done
case $MENU_OPTION in
0)
clear
bash /root/test.sh
;;
1)
clear
read -e -r -p "Введите имя:" name
echo -e "Имя нужно для того чтобы можно было быстро найти нужный IP"
read -e -r -p "Введите IP:" IP
$IP4TABLES_BIN -A INPUT -s $IP -j REJECT
service iptables save
echo "IP: $IP заблокирован!"
echo "Имя: $name; IP: $IP" >>/root/IP_list.txt
read -n1 -r -p "Нажмите Enter для возврата в главное меню..."
bash /root/test.sh
;;
2)
clear
cat IP_list.txt
read -e -r -p "Введите имя:" nam
echo -e "Имя нужно для того чтобы можно было быстро найти нужный IP. Вводить нужно без ошибок!"
read -e -r -p "Введите IP:" Ip
$IP4TABLES_BIN -L INPUT -n --line-numbers | grep ${Ip}
echo "
Подсказка: У вас выйдет IP и цифра слева.
Пример:
7 REJECT all -- 123.456.789.000 0.0.0.0/0 reject-with icmp-port-unreachable
Обратите внимание на цифру (7), в строке 'Введите цифру: 7 (Это пример у вас может быть по другому)'"
read -e -r -p "Введите цифру:" number
$IP4TABLES_BIN -D INPUT $number
service iptables save
echo "IP: $Ip Разблокирован!"
sed -e '/Имя: $nam; IP: $ip/d' < filename.txt
read -n1 -r -p "Нажмите Enter для возврата в главное меню..."
bash /root/testc.sh
;;
3)
for dir in */; do
touch "root/IP_list.txt"
done
;;
*)
Ban_ip
;;
esac
И еще почему-то строка: sed -e '/Имя: $nam; IP: $ip/d' < filename.txt не работает.
Пробовал различные варианты, но ничего не помогает. Решил обратиться к вам)
P.S. Я только начал изучать shell.
Заранее, спасибо)