31

Kettler, с OUTPUT пробовал по-всякому - фиг вам, попробуй сам в цикл правило добавь - она хавает из файло и применяет ко всем там указанным...
пробовал вот так:

iptables -A INPUT  -m string --string "$line" --algo kmp --to 65535 -j DROP
iptables -A FORWARD -m string --string "$line" --algo kmp --to 65535 -j DROP
iptables -A OUTPUT -m string --string "$line" --algo kmp --to 65535 -j DROP

не работает.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

32

Щас нету смысла для меня с этим.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

33

Kettler пишет:

Да если даже и работает CENSORED это. Надо что то серьёзнее.

Ну так предлагай. Например как с помощью bind9 это провернуть.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

34

bind9 пере направление сайтов выкладывал уже.
Ещё как вариант тут
http://linuxforum.ru/viewtopic.php?pid=184690#p184690
ток надо парсер

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

35

Kettler пишет:

Надо что то серьёзнее.

Серьёзнее только ремень wink

АХАХХАХААХАХАХХАХАХ!!!11
То есть "Мяу"

36

Dimaty пишет:
Kettler пишет:

Надо что то серьёзнее.

Серьёзнее только ремень wink

Угу по тётькам которые тебе в мамки годятся.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

37

Kettler пишет:

Угу по тётькам которые тебе в мамки годятся.

:lol:  :lol:  :lol:
Но в данном то случае речь идёт о ребёнке  ag

АХАХХАХААХАХАХХАХАХ!!!11
То есть "Мяу"

38

Dimaty пишет:
Kettler пишет:

Угу по тётькам которые тебе в мамки годятся.

:lol:  :lol:  :lol:
Но в данном то случае речь идёт о ребёнке  ag

2 ответ точто надо тогда.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

39

Kettler пишет:

Может DrBatty поможет и не забросим такую схему.

без проблем. Имеем

# cat vk.txt 
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    vkontakte.ru
Address: 93.186.224.240
Name:    vkontakte.ru
Address: 93.186.224.241
Name:    vkontakte.ru
Address: 93.186.224.242
Name:    vkontakte.ru
Address: 93.186.224.243
Name:    vkontakte.ru
Address: 87.240.188.249
Name:    vkontakte.ru
Address: 87.240.188.250
Name:    vkontakte.ru
Address: 87.240.188.252
Name:    vkontakte.ru
Address: 87.240.188.254

Выполняем

# X=`sed -rn '1,/^$/d;/^Address:\s+/s///p' vk.txt `

а потом

A=( $X )

всё.

# i=0; while [ "${A[$i]}" ]; do echo "${A[i]}"; (( i++ )); done
93.186.224.240
93.186.224.241
93.186.224.242
93.186.224.243
87.240.188.249
87.240.188.250
87.240.188.252
87.240.188.254

т.е. обычный массив с нужными ipшниками

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

40 (02.06.2011 18:18:57 отредактировано zenon)

drBatty,  Это короче что получается: nslookup в цикле натравливаем на blacklist.url - дальше прикручиваем твой парсер - чтобф в итоге получить blacklist.ip - файло со списком IP для блокировки.
Ну и потом загоняем в цепочку для iptables.
Вроде красиво должно получиться....  wink
Правда манипуляций не многовато?
ы. - ну и в cron всю конструкцию.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

41

А я вот хочу своей девушке отключить её долбаный Вконтакте ag

42 (02.06.2011 19:07:38 отредактировано Kettler)

newzenon пишет:

drBatty,  Это короче что получается: nslookup в цикле натравливаем на blacklist.url - дальше прикручиваем твой парсер - чтобф в итоге получить blacklist.ip - файло со списком IP для блокировки.
Ну и потом загоняем в цепочку для iptables.
Вроде красиво должно получиться....  wink
Правда манипуляций не многовато?
ы. - ну и в cron всю конструкцию.

Не много ток осталось настроить скрипт и поставить пакет с nslookup.
Во время скрипта не надо всякие там файлы > Можно циклы ab Которые подставляют ип.
Это уже всё изобретенно но в коммерческих делах.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

43 (02.06.2011 19:52:31 отредактировано zenon)

drBatty пишет:

без проблем. Имеем

# cat vk.txt 
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    vkontakte.ru
Address: 93.186.224.240
Name:    vkontakte.ru
Address: 93.186.224.241
Name:    vkontakte.ru
Address: 93.186.224.242
Name:    vkontakte.ru
Address: 93.186.224.243
Name:    vkontakte.ru
Address: 87.240.188.249
Name:    vkontakte.ru
Address: 87.240.188.250
Name:    vkontakte.ru
Address: 87.240.188.252
Name:    vkontakte.ru
Address: 87.240.188.254

Выполняем

# X=`sed -rn '1,/^$/d;/^Address:\s+/s///p' vk.txt `

а потом

A=( $X )

всё.

# i=0; while [ "${A[$i]}" ]; do echo "${A[i]}"; (( i++ )); done
93.186.224.240
93.186.224.241
93.186.224.242
93.186.224.243
87.240.188.249
87.240.188.250
87.240.188.252
87.240.188.254

т.е. обычный массив с нужными ipшниками

Ещё раз - не получается у меня:

A=( $X )

это как?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

44

drBatty, вот это в одну строку как?

# удаляем все пробелы, табуляцию и пустые строки
sed -i '
s/^[ \t]*//
s/[ \t]*$//
/./!d
' $BLACKLIST
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

45

newzenon пишет:

Это короче что получается: nslookup в цикле натравливаем на blacklist.url

это отдельная задача. Её можно выполнять скажем раз в неделю.

Kettler пишет:

Во время скрипта не надо всякие там файлы >

почему?

newzenon пишет:

Ещё раз - не получается у меня:

newzenon пишет:

это как?

а это точно /bin/bash, или всё-же /bin/sh ?

newzenon пишет:

вот это в одну строку как?

зачем? чтоб никто не понял?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

46

drBatty пишет:

а это точно /bin/bash, или всё-же /bin/sh ?

Да тут мой косяк, щаз попробую .....

Галиматья получаеццо.

if [ -f $BLACKLIST ]; then
    # удаляем все пробелы, табуляцию и пустые строки
    sed -i '
    s/^[ \t]*//
    s/[ \t]*$//
    /./!d
    ' $BLACKLIST
    while read line
    do
        rm /tmp/nslookup.tmp
        nslookup ${line} > /tmp/nslookup.tmp
        TMP=`sed -rn '1,/^$/d;/^Address:\s+/s///p' /tmp/nslookup.tmp`
           sed -i '
           s/^[ \t]*//
           s/[ \t]*$//
           /./!d
           ' /tmp/nslookup.tmp
        echo $TMP
        # echo "${line}"
        # iptables -t nat -A PREROUTING -d ${line} -j DNAT --to-destination 127.0.0.1
    done < $BLACKLIST
fi

exit
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

47 (02.06.2011 20:46:26 отредактировано zenon)

Всё сделал:     Забирает обычные url-ы из /var/blacklist.url и создаёт распарсенный /var/blacklist.ip с IP адресами.

#!/bin/bash
BLACKLIST="/var/blacklist.url"

if [ -f $BLACKLIST ]; then
    # удаляем все пробелы, табуляцию и пустые строки
    sed -i '
    s/^[ \t]*//
    s/[ \t]*$//
    /./!d
    ' $BLACKLIST
    while read line
    do
     nslookup ${line} > /tmp/nslookup.tmp
     X=`sed -rn '1,/^$/d;/^Address:\s+/s///p' /tmp/nslookup.tmp`
     A=( $X )
     i=0; while [ "${A[$i]}" ]; do echo "${A[i]}"; (( i++ )); done >> /tmp/blacklist.ip
   done < $BLACKLIST
fi
mv /tmp/blacklist.ip /var/blacklist.ip
rm /tmp/blacklist.ip

cat /var/blacklist.ip

запускать

$ bash _наш_скрипт_.bash
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

48

newzenon пишет:

запускать

$ bash _наш_скрипт_.bash

дык можно просто

 Консоль:
# chmod 0700 hosts2ip.bash
# ./hosts2ip.bash

не?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

49 (03.06.2011 11:15:57 отредактировано Kettler)

В итоге думаю для шлюза остановиться на таком.

#!/bin/bash
BLACKLIST="/var/blacklist.url"
n=1;

if [ -f $BLACKLIST ]; then
    # удаляем все пробелы, табуляцию и пустые строки
    sed -i '
    s/^[ \t]*//
    s/[ \t]*$//
    /./!d
    ' $BLACKLIST
    while read line
    do
     nslookup ${line} > /tmp/nslookup.tmp
     X=`sed -rn '1,/^$/d;/^Address:\s+/s///p' /tmp/nslookup.tmp`
     A=( $X )
     i=0; while [ "${A[$i]}" ]; do echo "${A[i]}"; (( i++ )); done >> /tmp/blacklist.ip
   done < $BLACKLIST
fi
mv /tmp/blacklist.ip /var/blacklist.ip


if [ -f /var/blacklist.ip ] ;
then
cat /var/blacklist.ip | while read line
do
    echo "${line}"
    iptables -I FORWARD $n -d ${line} -j DROP
let n=n+1;
echo $n;
done
fi

Правильнее
iptables -I FORWARD $n -d ${line} -j DROP
let n=n+1;

Иначе правило могут не сработать.
Например так не сработают.

iptables -P FORWARD -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -j ACCEPT
#или даже так
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d ${line} -j DROP

Почему курим man iptables а точнее прохождение пакетов.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

50

Ну мастера велосипедов то а  ag
да анимайзеров чуть больше чем до хрена =)

It is good day to die ...
MS Windows 10
Заметки о главном...

51

i2ks пишет:

Ну мастера велосипедов то а  ag
да анимайзеров чуть больше чем до хрена =)

второй этап) демон проверяющий пакеты на слова.
типо
ngrep porno port 80

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

52

i2ks пишет:

Ну мастера велосипедов то а  ag
да анимайзеров чуть больше чем до хрена =)

Однака это не мешает многим коммерческим продуктам делать  свои фильтры, да и вообще на на каждую хитрую **** есть болт с обратной резьбой - и действует это правило в обе стороны.  :lol:
Так что без таких велосипедов прогресс встанет.

drBatty пишет:

дык можно просто

 Консоль:
# chmod 0700 hosts2ip.bash
# ./hosts2ip.bash

не?

Да. да. да.

Kettler пишет:

Правильнее
iptables -I FORWARD $n -d ${line} -j DROP
let n=n+1;
Иначе правило могут не сработать.
Например так не сработают.

iptables -P FORWARD -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -j ACCEPT
#или даже так
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d ${line} -j DROP

Тут уже на вкус и цвет, мне с PREROUTING нравиться, вообще лучше пользовательскую цепочку создать.
И я так думаю парсер этот должен быть отдельным скриптом, а в фаерволле только забор ip и блокировка.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

53

Тогда так
iptables -t nat -I PREROUTING $n -d ${line} -j DNAT --to-destination 127.0.0.1

Просто в конец добавлять не есть правильно. Данные правила должны быть в начале.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

54 (03.06.2011 12:06:52 отредактировано Kettler)

Блин даже лучше не I а R тогда или делать сначала F

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

55

Решил сам всё таки разобраться вот что получилось.

    #!/bin/bash
    BLACKLIST="/var/blacklist.url"
    n=1;

    if [ -f $BLACKLIST ]; then
    while read line
    do
    nslookup ${line} >> /tmp/nslookup.tmp;
    done < $BLACKLIST
    fi

    awk '/Address:/ {if($2=="127.0.0.1#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp

    if [ -f /var/blacklist.ip ] ;
    then
    cat /var/blacklist.ip | while read line
    do
    echo "${line}"
    iptables -R FORWARD $n -d ${line} -j DROP
    let n=n+1;
    echo $n;
    done
    fi
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

56

Kettler, а зачем n=1 и  let n=n+1;?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

57

Чтоб правило вставить по порядку
После повторного запуска мы просто заменим старые.
iptables -R FORWARD $n -d ${line} -j DROP

Если делать
iptables -A FORWARD  -d ${line} -j DROP
то правила раздуются

Тут конечно есть нюанс щас думаю над этим.
Первый запуск надо
iptables -I FORWARD $n -d ${line} -j DROP

А дальнейшии
iptables -R FORWARD $n -d ${line} -j DROP

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

58 (04.06.2011 14:43:21 отредактировано Kettler)

Для меня идеальный вариант
в сам firewall вставляем 2 строки
iptables -N check_ip # Создаем цепь для соц сетей
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip #отправляем на проверку на наличие запрещённых сетей

Скрипт будет таким.

   #!/bin/bash
    BLACKLIST="/var/blacklist.url"
    n=1;
    iptables -F check_ip
    if [ -f $BLACKLIST ]; then
    while read line
    do
    nslookup ${line} >> /tmp/nslookup.tmp;
    done < $BLACKLIST
    fi

    awk '/Address:/ {if($2=="127.0.0.1#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp

    if [ -f /var/blacklist.ip ] ;
    then
    cat /var/blacklist.ip | while read line
    do
    echo "${line}"
    iptables -I check_ip $n -d ${line} -j DROP # дропаем
    let n=n+1;
    echo $n;
    done
    fi
    iptables -A check_ip -j RETURN #отправляем дальше на проверку
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

59 (04.06.2011 14:48:22 отредактировано zenon)

Kettler, не имхо нагородил огород, ну если нравиться...

if [ -f $BLACKLISTIP ] ;
then
    cat $BLACKLISTIP | while read line
do
    echo -en "${line}"
    iptables -D _правило_
    iptables -A _правило_
done
fi

При первом запуске правда ошибок навыдаёт.. if прикрутить.

Я себе вообще прописал в основной скрипт правил три строки:

if [ -f $BLACKLISTIP ] ;then cat $BLACKLISTIP | while read line; do  echo -en "${line} | ";
iptables -A _правило_ 
done; fi
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

60 (04.06.2011 14:57:47 отредактировано Kettler)

ненравиться iptables -D и iptables -A.

Правила будут пухнуть. Или остатки.

Пример первый раз добавил 20 ип а второй раз 10. Куда денутся остальные?

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.