Перейти до

Рекомендованные сообщения

Опубликовано:

Вот никак не могу понять как сделать правило такого вида:

 

iptables -A FORWARD -s 10.10.0.55 -d !"UA-IX" -j REJECT

 

где "UA-IX" - адресса подсетей UA-IX

 

(просто их много).

 

Может кто-то с примерами обяснить как делаеться правило такого рода?

Т.е. может как-то можно считівать с файла в котором введено какое-то количество групп адрессов, или может как то алиас создать...

Опубліковано:

вот так вот можно сделать:

iptables -N UA_IX

потом скриптом или как-нть ещё загнать в эту цепочку правила для всех сетей входящих UA_IX:

iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j RETURN

 

и в конце добавить iptables -A UA_IX -j REJECT

 

теперь пакеты прошедшую эту цепочку направленные не в UA_IX будут отброшены, а входящие в UA_IX пойдут проверяться по цепочке filter дальше.

удобство в том что если нужно поменять список сетей нужно всего лишь изменить одну цепочку UA_IX

 

а в в цепочке filter писать

iptables -A FORWARD -s 10.10.0.55 -j UA_IX

 

это бывает не всегда удобно, но вам думаю подойдет.

 

Может кто знает метод лучше? Поделитесь плиз.

Опубліковано:

А можно сделать такой файлик:

ips.txt

в каждой строке пишем IP

и создаем файлик iptables.cpp с таким содержанием:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
   char *stroka,line[100],ip[255];
   char *s,str[255];
   FILE *f;
   
   f=fopen("ips.txt", "r");
while (stroka=fgets(line,100,f))
    {
 if (strcmp(stroka,"\n")!=0)
     {
 	strcpy(str,stroka);
 	s=strtok(str,"\n\t\r");
 	sprintf(ip,"iptables -t filter -A INPUT -s %s -j DROP",s);
 	system(ip);
     }
    }
   fclose(f);
}

 

думаю там понятно, что можно поменять :) Там где sprintf - правило iptables

потом компилируем его: gcc iptables.cpp

и запускаем - ./a.out

a.out и ips.txt должны быть в одной папке

 

Проще конечно в шелле делать, но я сним не дружу :)

Опубліковано:

Вот еще Maikl подкинул идейку.

Создается файл например ipt.sh

имеет вот такое содержание:

#!/bin/sh

IPFILE="ips.txt"

grep "^" $IPFILE | while read ip;
do
   if [ $ip <> NULL ]
       then /sbin/iptables -t filter -A INPUT -s $ip -j DROP
   fi
done

делаем файл исполняемым:

chmod +x ipt.sh

 

Понятно, что в файле ips.txt хранятся айпишники - каждый с новой строки

вот и все

  • 1 month later...
Опубліковано:

Поднимим данную тему вверх. Я думаю этот вопрос больше будет касатся Quarcelа.

В общем ситуация такова:

Сделал я новую цепочку UA_IX

загнал в нее украинскую зону (colocall.net/ua/?list)

И решил открыть только украину для одного пользователя. Делал так:

 

iptables -t filter -A FORWARD -s 192.168.0.1 -j UA_IX

iptables -t filter -A FORWARD -d 192.168.0.1 -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.1 -j MASQUERADE

iptables -t nat -A POSTROUTING -o eth0 -d 192.168.0.1 -j MASQUERADE

И получаю, что к некоторой украине доступ есть, к другой нет :(

Тоесть. Когда сделал, получил, что открывалась Украина с IP<196.xxx.xxx.xxx

Потом сервак ребутнул, и увидел, что открываются сайты у которых IP<68.xxx.xxx.xxx

В чем глюк? В цепочку UA_IX загружены все адресса. Специально сидел и 40 мин ждал, пока всю цепочку выведет.

З.Ы. Правда, что iptables должен долго выводить цепочку? У меня он показываеьт по одной записи/пару сек, если цепочка становится обьемной....

Опубліковано:

Скорее всего у тебя некоторые сетки с неправильной маской прошли.

Список, кот. формаруется на UA-IX в связи с обоенностями выдечей кисками информации надо доводить до ума.

Если в коце нет маски, то это значит, что на самом деле что это сетка класса С, 256 адресов или /24.

Опубліковано:

Маска там есть везде. Это проверил в первую очередь....

Вообще правила открытия таким способом только украины правельные? У кого-то работает? Аль предложите другой способ, сам пока ничего не могу придумать

Опубліковано:
Маска там есть везде. Это проверил в первую очередь....

Вообще правила открытия таким способом только украины правельные? У кого-то работает? Аль предложите другой способ, сам пока ничего не могу придумать

ну у меня собственно работает..... проблем не встречал...

Опубліковано:

Своими правилами поделится можеш? Т.к. обнаружил следующею вещь:

iptables -L -v

......

Chain FORWARD (policy DROP 4218 packets, 253K bytes)

pkts bytes target prot opt in out source destination

54 3559 UA_IX all -- any any 192.168.0.1 anywhere

0 0 ACCEPT all -- any any anywhere 192.168.0.1

.......

Тоесть пакеты передаются, но не принимаются..... :(

Опубліковано:

Может это кто-то (некоторые провайдеры, например укртелеком) дропает пакеты на революционные сайты типа .5TV

Опубліковано:

Да нет. Я даже незнаю почему, но все заработало :(. Суть в следующем.

Сначало в цепочку я добавлял как

iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j RETURN

и не работало, а когда сделал

iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j ACCEPT

то все стало ОК. МИР не пускает, пускает только украину. В чем тут был глюк?

Опубліковано:
Да нет. Я даже незнаю почему, но все заработало :(. Суть в следующем.

Сначало в цепочку я добавлял как

iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j RETURN

и не работало, а когда сделал

iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j ACCEPT

то все стало ОК. МИР не пускает, пускает только украину. В чем тут был глюк?

Суть как раз была в том что бы пакетик отсеялся в цепочке ЮА_ИКС и вернулся в формард обратно если он бежит на украину, попутно добежав до своего логического ACCEPT или REJECT дополнительно фильтровался.

 

У меня написано RETURN и всё ок.

Опубліковано:

глюка никакого нет, просто вы похоже не поняли разницы между RETURN и ACCEPT

Какую из этих целей использовать зависит от конкретного случая и от того как построена фильтрация пакетов.

 

Вот например, если в UA_IX используется RETURN то правила могут выглядеть примерно так:

iiptables -A FORWARD -j UA_IX

iiptables -A FORWARD -j ACCEPT

 

А вот если используется ACCEPT то правило: iptables -A FORWARD -j ACCEPT не нужно

 

RETURN возвращает проверку в предыдующую цепочку(в данном случае пакет пойдет проверятся дальше по цепочке FORWARD)

 

ACCEPT дает пакету зеленый свет и пакет уже не проверяется по другим правилам - идет в сеть

  • 1 year later...
Опубліковано:

Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок?

В частности, я хочу, чтобы на SQUID попадал только иностранный трафик. Прокси работает в прозрачном виде.

Я создаю цепочку UAIX в таблице nat. Из цепочки PREROUTING загоняю в UAIX адрес, если он удовлетворяет одной из этих 1222 проверок. Последним в PREROUTING делаю REDIRECT на порт 3128, а в UAIX создаю только

iptables -t nat -A UAIX -j ACCEPT.

Можно это как-то сделать красивее? И сильно ли снижает такая большая проверка

производительность канала?

Спасибо.

Опубліковано:

иначе это как? не файрволом? думаю нет при данных условиях.

не нагружает совсем..... хотя смотря какойтазик стоит шлюзом...

но целерон 600 вполне нормально себя чувствует....

А чем некрасиво собственно?

 

а если у вас в онлайне 1000 пользователей к примеру и на каждого по 2 как минимум правила в файрволе - вас не смущает нагрузка??

Опубліковано:
Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок?

1222 правила это явно излишне. Агрегация списка дает его сокращение примерно в два раза (у меня 662 подсети).

Опубліковано:
Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок?

1222 правила это явно излишне. Агрегация списка дает его сокращение примерно в два раза (у меня 662 подсети).

Простите за темноту, но не подскажете ли на примере, как эту агрегацию UA-IX сетей делать?

Опубліковано: (відредаговано)
маской наверное

Это типа, если есть

212.42.64.0/22

212.42.68.0/22

212.42.70.0/24

212.42.72.0/23

212.42.74.0/23

212.42.76.0/23

212.42.78.0/23

212.42.80.0/23,

то написать 212.42.0.0/16? Разве это корректно?

Відредаговано fufnf
Опубліковано: (відредаговано)

ЭЭЭ, а где вы 48 единиц возьмете, если их максимум может быть 32 :) ?

 

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

Відредаговано N.Leiten
Опубліковано:
Тогда может кто поделится где брать уже "агрегированные" списки или подкинет скрипт для агрегации?

Мои списки можно брать здесь. Основа - список UA-IX от DG с исключением нескольких небольших диапазонов (VPN провайдеры).

 

Для аггрегирования списков в свое время нашел утилиту:

 

файл 1 (20 кБ)

файл 2 (1 кБ)

 

Вроде нужен только первый, но мало ли...

Опубліковано:
маской наверное

Это типа, если есть

212.42.64.0/22

212.42.68.0/22

212.42.70.0/24

212.42.72.0/23

212.42.74.0/23

212.42.76.0/23

212.42.78.0/23

212.42.80.0/23,

то написать 212.42.0.0/16? Разве это корректно?

писать 212.42.0.0/16 некорректно, а вот заменить вышеприведенный список вот этим:

212.42.64.0/20
212.42.80.0/23

очень даже корректно. А два правила это меньше чем 8 :(

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Створити нове...