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

Тема в разделе "Linux", создана пользователем TolikCorp, 4 авг 2013.

  1. TolikCorp

    TolikCorp

    Сообщения:
    859
    Симпатии:
    280
    С данным скриптом банить и разбанивать 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 [ -"$3"]; then
          drop_port
    ="--dport $3 "
       
    fi
    ####################################################
       
    case "$1" in
          ban
    )
             if [ -
    "$2" ]; then
                
    echo "Использовать: $0 $1 <IP> <PORT>"
                
    exit 1
             fi
             
    if iptables -grep -$2then
                
    echo "Данный адрес уже находится в БАН-ЛИСТЕ"
             
    else
                
    iptables -A INPUT -t filter -$-p tcp ${drop_port}-j DROP
                iptables 
    -A INPUT -t filter -$-p udp ${drop_port}-j DROP
             fi
          
    ;;
          
    unban)
             if [ -
    "$2" ]; then
                
    echo "Использовать: $0 $1 <IP> <PORT>"
                
    exit 1
             fi
             
    if iptables -grep -$2then
                iptables 
    -A INPUT -t filter -$-p tcp ${drop_port}-j DROP
                iptables 
    -A INPUT -t filter -$-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 "
     
    Последнее редактирование: 5 авг 2013
    ★Сириус★ нравится это.
  2. KorDen

    KorDen Atra esterní ono thelduin!

    Сообщения:
    2.192
    Симпатии:
    1.412
    А зачем sh ./ban_unban.sh ban xxx.xxx.xxx.xxx 27015 если #!/bin/bash/ ????
     
  3. TolikCorp

    TolikCorp

    Сообщения:
    859
    Симпатии:
    280
    Я знаю, что можно просто ./bla-bla.sh и он сам определит. Если сильно мешает - могу и убрать.
     
  4. will_rock

    will_rock

    Сообщения:
    68
    Симпатии:
    3
    У меня почему-то не работает. ОС Ubuntu 14.04

    [​IMG]
     
  5. Fire

    Fire

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

    will_rock

    Сообщения:
    68
    Симпатии:
    3
    Дай норм скрипт пж)
     
  7. Fire

    Fire

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

    Вместо инпут можно создавать отдельную цепочку.
     
    Chaos_Engine, Серый™ и 666FoX666 нравится это.