61 (04.06.2011 15:01:16 отредактировано zenon)

iptables -F
iptables -X
и заново все правила, можно подумать у тебя правил over 10000...

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

62

Тогда приходиться запускать снова firewall
Проще просто отчистить 1 таблицу. Например поставить скрипт в cron а не весь firewall

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

63 (04.06.2011 15:12:53 отредактировано zenon)

Kettler пишет:

Тогда приходиться запускать снова firewall

И в чём проблема-то ещё раз говорю правил то не 10000. и IP адреса которые блокировать надо не ежеминутно изменяются.

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

64 (04.06.2011 15:16:04 отредактировано Kettler)

newzenon пишет:
Kettler пишет:

Тогда приходиться запускать снова firewall

И в чём проблема-то ещё раз говорю правил то не 10000.

Для моих  вещей это не подходит.
Да пару строк не особо много зато всё аккуратно. Чем делать это через полный firewall.

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

65 (04.06.2011 16:39:17 отредактировано XliN)

Я не стал заморачиваться и порезал по тупому

+ открыть спойлер

 Консоль:
[root@ldap ~]# cat /root/script/banned.sh
iptables -F check_ip
iptables -N check_ip

iptables -I FORWARD 10 -s 192.168.3.0/24 -o ppp0 -j check_ip

############## XHAMSTER.COM ################
iptables -A check_ip -d 88.208.24.47 -j DROP
iptables -A check_ip -d 88.208.24.43 -j DROP
iptables -A check_ip -d 88.208.24.44 -j DROP
iptables -A check_ip -d 88.208.24.45 -j DROP
############################################

############### VKONTAKTE.RU #################
iptables -A check_ip -d 87.240.188.253 -j DROP
iptables -A check_ip -d 87.240.188.248 -j DROP
iptables -A check_ip -d 93.186.224.242 -j DROP
iptables -A check_ip -d 93.186.224.243 -j DROP
iptables -A check_ip -d 87.240.188.249 -j DROP
iptables -A check_ip -d 87.240.188.250 -j DROP
iptables -A check_ip -d 87.240.188.252 -j DROP
iptables -A check_ip -d 87.240.188.254 -j DROP
iptables -A check_ip -d 93.186.224.240 -j DROP
iptables -A check_ip -d 93.186.224.241 -j DROP
##############################################

############## ODNOKLASSNIKI.RU ##############
iptables -A check_ip -d 217.20.144.66 -j DROP
iptables -A check_ip -d 217.20.144.146 -j DROP
iptables -A check_ip -d 217.20.144.162 -j DROP
iptables -A check_ip -d 217.20.144.178 -j DROP
iptables -A check_ip -d 217.20.144.194 -j DROP
iptables -A check_ip -d 217.20.144.210 -j DROP
iptables -A check_ip -d 217.20.144.226 -j DROP
iptables -A check_ip -d 217.20.144.242 -j DROP
iptables -A check_ip -d 217.20.145.36 -j DROP
iptables -A check_ip -d 217.20.145.50 -j DROP
iptables -A check_ip -d 217.20.145.66 -j DROP
iptables -A check_ip -d 217.20.145.98 -j DROP
iptables -A check_ip -d 217.20.145.158 -j DROP
iptables -A check_ip -d 217.20.145.206 -j DROP
iptables -A check_ip -d 217.20.149.164 -j DROP
iptables -A check_ip -d 217.20.149.179 -j DROP
iptables -A check_ip -d 217.20.144.2 -j DROP
iptables -A check_ip -d 217.20.144.19 -j DROP
iptables -A check_ip -d 217.20.144.34 -j DROP
iptables -A check_ip -d 217.20.144.50 -j DROP
##############################################
iptables -A check_ip -j RETURN

Режутся vkontakte.ru, vk.com, odnoklassniki.ru xhamster.com

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

66

--=XliN=--, ну минимально в цикле из файло сделай ...
во:

export BLACKLISTIP="/var/firewall/blacklist.ip"
iptables -F check_ip
iptables -N check_ip
if [ -f $BLACKLISTIP ] ;then cat $BLACKLISTIP | while read line; do  echo -e "${line}";
iptables -A check_ip -d  ${line} -j DROP
done; fi
iptables -A check_ip -j RETURN
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

67 (04.06.2011 16:56:57 отредактировано Kettler)

зачем это в скрипт ?
iptables -N check_ip

Я выше выкладывал проверенный.

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

68

Блин щас разжую

в firewall добавляем
iptables -N check_ip # Создаем цепь для соц сетей

# Здесь мы указываем что это первое правило в FORWARD если например зделать A то работать вообще не будет ибо обязательно как ниже!!!
#$lan ваша подсеть например 192.168.0.0/24
#$inet интерфейс в интернет
$lan=192.168.0.0/24
$inet=ppp999
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip #отправляем на проверку на наличие запрещённых сетей
#Получаеться пакет попал в FORWARD и сразу на проверку в check_ip

Нижним скриптом берем айпи и загоем в таблицу  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 #отправляем дальше на проверку

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

69 (04.06.2011 17:50:22 отредактировано zenon)

О:

export BLACKLISTIP="/var/firewall/blacklist.ip"
# Проверка существования цепочки BLACKLIST_IP, если её нет - создаём. 
# для удаления цепочки полностью iptables -X BLACKLIST_IP
if [ -z "`iptables -n -L | grep -i "chain BLACKLIST_IP"`" ]; then iptables -N BLACKLIST_IP; fi

# Сброс блокировок
iptables -F BLACKLIST_IP

# Погнали наши городских :)
if [ -f $BLACKLISTIP ] ;then cat $BLACKLISTIP | while read line; do  echo -e "${line}";
iptables -A BLACKLIST_IP -d ${line} -m recent --set --name FUCKOFF -j DROP
iptables -A BLACKLIST_IP -j RETURN

Вот так может?

iptables -A BLACKLIST_IP -d  ${line} -m recent --set --name FUCKOFF -j REJECT
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

70

newzenon пишет:

Вот так может?

iptables -A BLACKLIST_IP -d  ${line} -m recent --set --name FUCKOFF -j REJECT

Как тебе больше нравиться. Основную мыслю понял.

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

71

Тут самое главное
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip

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

72 (04.06.2011 17:40:16 отредактировано Kettler)

А можно ещё это особенно Xlin

tc class add dev $inet parent 1:1 classid 1:50 htb rate 10Kbit ceil 10Kbit burst 15k
tc qdisc add dev $inet parent 1:50 handle 50: sfq perturb 10
tc filter add dev $inet parent 1:0 protocol ip prio 7 handle 50 fw classid 1:50
iptables -t mangle -I check_ip $n -d ${line} -j -j MARK --set-mark 50
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

73 (04.06.2011 17:41:36 отредактировано zenon)

Kettler, всё же советую преобразование url2ip сделать отдельным скриптом, то что у тебя - не годиться потому- что - выполняться может долго (из-за nslookup) - и в основной скрипт не запихнёшь.

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

74

newzenon пишет:

Kettler, всё же советую преобразование url2ip сделать отдельным скриптом, то что у тебя - не годиться потому- что - выполняться может долго - и в основной скрипт не запихнёшь.

? разжуй

Точто моё это 2 скрипта 1 блок в основной firewall. А второй в cron

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

75

nslookup - требует времени, если много урлов.

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

76 (04.06.2011 17:50:00 отредактировано Kettler)

Я слушаю дальше я не могу понять ход твоих мыслей.

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

77

Мои мысли... эмм это сложно.  smile

Я вот тут чё подумал, в документации сказано:

Источник пакета
Для фильтрации по источнику используется опция -s. Например запретим все входящие пакеты с узла 192.168.133.133:

iptables -A INPUT -s 192.168.133.133 -j DROP

Можно использовать доменное имя для указания адреса хоста. То есть:

iptables -A INPUT -s test.host.jp -j DROP

Также можно указать целую подсеть:

iptables -A INPUT -s 192.168.133.0/24 -j DROP

Также вы можете использовать отрицание (знак !). Например так - все пакеты с хостов отличных от 192.168.133.156 будут уничтожаться:

iptables -A INPUT ! -s 192.168.133.156 -j DROP

те. Не зря ли мы тут парсим nslookup? разве iptables по доменным именам сам этого не делает?
надо проверить вывод: iptables -L с доменным именем и с нашими выкрутасами сравнить.

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

78

ag  ag  ag  как проверишь отпиши но я всё таки жду чтоб разжевали где мои ошибки на счёт скриптов.

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

79

Вот как выглядит у меня с нашим парсером через nslookup одного адреса: vkontakte.ru:

 Консоль:
-A PREROUTING -d 93.186.224.242/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.243/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.249/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.250/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.252/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.254/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.240/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.241/32 -j DNAT --to-destination 127.0.0.1





Вот такие правила создаются с присутствием только одной строчки:

iptables -t nat -A PREROUTING -d vkontakte.ru -j DNAT --to-destination 127.0.0.1

 Консоль:
-A PREROUTING -d 87.240.188.254/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.240/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.241/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.242/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 93.186.224.243/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.249/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.250/32 -j DNAT --to-destination 127.0.0.1
-A PREROUTING -d 87.240.188.252/32 -j DNAT --to-destination 127.0.0.1

Так что пострадали фигней и хватит.  :lol:  :lol:  :lol:

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

80 (06.06.2011 14:19:19 отредактировано XliN)

Подскажите в чем касяк. Скрипт отрабатывает, но IP повторяются (два, а то и три раза)

 Консоль:
#!/bin/bash
lan="192.168.3.0/24"
inet="ppp0"
BLACKLIST="/var/blacklist.url"

# Очищаем все старые на фиг ип
if [ -f $BLACKLIST ]; then
while read line
do
  nslookup ${line} >> /tmp/nslookup.tmp;
  done < $BLACKLIST
fi
  awk '/Address:/ {if($2=="192.168.1.77#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp

if [ -f /var/blacklist.ip ] ; then
    if [ ! -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then
          iptables -F check_ip;
          echo "Цепочка создана"
          iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
          cat /var/blacklist.ip | while read line
           do
              echo -e "${line}"
              iptables -A check_ip -d "${line}" -j DROP
          done
          iptables -A check_ip -j RETURN
          else
             iptables -N check_ip
     fi
fi

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

81

--=XliN=--, я выше уже сказал - не нужно это всё iptables сам преобразовывает имена в ip - так что все наши махинации с nslookup не нужны.

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

82

newzenon пишет:

я выше уже сказал - не нужно это всё iptables сам преобразовывает имена в ip - так что все наши махинации с nslookup не нужны.

Я это понял. Тоже проверял. Просто мне так удобнее и если по чесноку интереснее.  ag

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

83

iptables -F check_ip не вижу

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

84

Kettler пишет:

iptables -F check_ip не вижу

Он есть. Методом тыка выявил место ошибки. Проблема в блоке

 Консоль:
if [ -f $BLACKLIST ]; then
while read line
do
  nslookup ${line} >> /tmp/nslookup.tmp;
  done < $BLACKLIST
fi
  awk '/Address:/ {if($2=="192.168.1.77#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp

Он в nslookup.tmp запихивает все по нескольку раз.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

85

--=XliN=-- пишет:

Он в nslookup.tmp запихивает все по нескольку раз.

перед while допишите

: > $BLACKLIST

86 (07.06.2011 19:11:57 отредактировано XliN)

Сорри что лезу со своими скриптами, но все же.
Т.к. iptables cам умеет по доменному имени узнавать IP, то скрипт станет еще проще.

Создается файл с урлами тех кого дропаем.

 Консоль:

[root@ldap]# cat /var/blacklist.url
vk.com
facebook.com
vkontakte.ru
odnoklassniki.ru
xhamster.com

И собственно сам скрипт

#!/bin/bash
lan="192.168.3.0/24"
inet="ppp0"
BLACKLIST="/var/blacklist.url"

if [ ! -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then
  if [ -f $BLACKLIST ]; then
      iptables -F check_ip;
      iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
      iptables -A check_ip -s 192.168.3.254 -o ppp0 -j ACCEPT
      cat $BLACKLIST | while read line
      do
        echo -e "${line}"
        iptables -A check_ip -d "${line}" -j DROP
      done
  iptables -A check_ip -j RETURN
  else
     echo "Файла $BLACKLIST не существует!!"
  fi
else
    echo "Цепочка check_ip не создана"
    iptables -N check_ip
fi

И попутно вопрос, т.к. с башем только начал осваиваться.
Как в блоке

else
    echo "Цепочка check_ip не создана"
    iptables -N check_ip

сделать так, что было так: после проверки на наличие цепочки и выявления что ее нет, скрипт ее создает но в и выходит потом сразу. Как его заставить еще раз отработать? Типа гото нужно ))

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

87

Проще как-то так:

if [ -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then iptables -N check_ip; fi
if [ -f $BLACKLIST ]; 
   then
     iptables -F check_ip;
     iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
     iptables -A check_ip -s 192.168.3.254 -o ppp0 -j ACCEPT
     cat $BLACKLIST | while read line
     do
        echo -e "${line}"
        iptables -A check_ip -d "${line}" -j DROP
     done
     iptables -A check_ip -j RETURN
fi

По if http://eddnet.org/?p=1311

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

88

Все... разобрался.  ag Очень даже удобно для блокировки соц сетей и всяких трекеров.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

89

Извините за офф - касперский у меня до сих-пор блокирует вконтакте, однокласники - почему. Касперский хоть не на никсах сделанный? Сорь за офф.

90

neogotlic пишет:

Извините за офф - касперский у меня до сих-пор блокирует вконтакте, однокласники - почему. Касперский хоть не на никсах сделанный? Сорь за офф.

каспер тут не каким боком\

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