[СКРИПТ] Бан IP адреса на оборудовании

TolikCorp

Участник
Сообщения
874
Реакции
334
С данным скриптом банить и разбанивать IP-Адреса станет проще!
Инструкция по использованию:
bash /РАСПОЛОЖЕНИЕ_СКРИПТА/НАЗВАНИЕ.sh <ДЕЙСТВИЕ> <IP> <PORT>

Например, бан всего адреса:
bash ./ban_unban.sh ban xxx.xxx.xxx.xxx

Например, бан к определенному порту:
bash ./ban_unban.sh ban xxx.xxx.xxx.xxx 27015

Проверьте, отпишитесь!

PHP:
#!/bin/bash/
####################################################
   if [ -n "$3"]; then
      drop_port="--dport $3 "
   fi
####################################################
   case "$1" in
      ban)
         if [ -z "$2" ]; then
            echo "Использовать: $0 $1 <IP> <PORT>"
            exit 1
         fi
         if iptables -L | grep -q $2; then
            echo "Данный адрес уже находится в БАН-ЛИСТЕ"
         else
            iptables -A INPUT -t filter -s $2 -p tcp ${drop_port}-j DROP
            iptables -A INPUT -t filter -s $2 -p udp ${drop_port}-j DROP
         fi
      ;;
      unban)
         if [ -z "$2" ]; then
            echo "Использовать: $0 $1 <IP> <PORT>"
            exit 1
         fi
         if iptables -L | grep -q $2; then
            iptables -A INPUT -t filter -s $2 -p tcp ${drop_port}-j DROP
            iptables -A INPUT -t filter -s $2 -p udp ${drop_port}-j DROP
         else
            echo "Данный адрес отсутствует в БАН-ЛИСТЕ"
         fi
      ;;
      *)
         echo "Использовать: $0 $1 <IP> <PORT>"
         exit 1
      ;;
   esac
####################################################

Кстати, "${drop_port}-j" здесь переменная drop_port экранирована и пробел не нужен, т.к. он есть тут: drop_port="--dport $3 "
 
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
А зачем sh ./ban_unban.sh ban xxx.xxx.xxx.xxx 27015 если #!/bin/bash/ ????
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Я знаю, что можно просто ./bla-bla.sh и он сам определит. Если сильно мешает - могу и убрать.
 

will_rock

Участник
Сообщения
1,074
Реакции
363
У меня почему-то не работает. ОС Ubuntu 14.04

OjwBphHcSVG3EsYn4sPweg.png
 

Fire

Участник
Сообщения
13
Реакции
60
Нет пробела перед -j.
Зачем 2 раза банить по тсп и удп? Убрать параметры -p tcp и -p udp, оставив просто -s IP - банит по всем протоколам. В input использовать -t filter не вижу смысла.
И почему в unban - "-A" - если должно быть -D
Короч, лажа а не скрипт.
 

will_rock

Участник
Сообщения
1,074
Реакции
363
Нет пробела перед -j.
Зачем 2 раза банить по тсп и удп? Убрать параметры -p tcp и -p udp, оставив просто -s IP - банит по всем протоколам. В input использовать -t filter не вижу смысла.
И почему в unban - "-A" - если должно быть -D
Короч, лажа а не скрипт.
Дай норм скрипт пж)
 

Fire

Участник
Сообщения
13
Реакции
60
Я вообще не вижу смысла в скриптах, которые экономят 5сек времени.
iptables -A INPUT -s IP -j DROP -- бан
iptables -D INPUT -s IP -j DROP - анбан.

Вместо инпут можно создавать отдельную цепочку.
 
Сверху Снизу