Den_LocalNet 1,474 Posted 2004-10-16 09:05:49 Share Posted 2004-10-16 09:05:49 Вот никак не могу понять как сделать правило такого вида: iptables -A FORWARD -s 10.10.0.55 -d !"UA-IX" -j REJECT где "UA-IX" - адресса подсетей UA-IX (просто их много). Может кто-то с примерами обяснить как делаеться правило такого рода? Т.е. может как-то можно считівать с файла в котором введено какое-то количество групп адрессов, или может как то алиас создать... Link to post Share on other sites
Quarcel 0 Posted 2004-10-16 16:17:13 Share Posted 2004-10-16 16:17:13 вот так вот можно сделать: 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 это бывает не всегда удобно, но вам думаю подойдет. Может кто знает метод лучше? Поделитесь плиз. Link to post Share on other sites
Foster 0 Posted 2004-10-16 18:13:09 Share Posted 2004-10-16 18:13:09 А можно сделать такой файлик: 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 должны быть в одной папке Проще конечно в шелле делать, но я сним не дружу Link to post Share on other sites
Foster 0 Posted 2004-10-17 19:40:23 Share Posted 2004-10-17 19:40:23 Вот еще 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 хранятся айпишники - каждый с новой строки вот и все Link to post Share on other sites
Keen 10 Posted 2004-11-26 16:50:23 Share Posted 2004-11-26 16:50:23 Поднимим данную тему вверх. Я думаю этот вопрос больше будет касатся 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 должен долго выводить цепочку? У меня он показываеьт по одной записи/пару сек, если цепочка становится обьемной.... Link to post Share on other sites
nn 7 Posted 2004-11-26 20:18:48 Share Posted 2004-11-26 20:18:48 Скорее всего у тебя некоторые сетки с неправильной маской прошли. Список, кот. формаруется на UA-IX в связи с обоенностями выдечей кисками информации надо доводить до ума. Если в коце нет маски, то это значит, что на самом деле что это сетка класса С, 256 адресов или /24. Link to post Share on other sites
Keen 10 Posted 2004-11-26 20:49:30 Share Posted 2004-11-26 20:49:30 Маска там есть везде. Это проверил в первую очередь.... Вообще правила открытия таким способом только украины правельные? У кого-то работает? Аль предложите другой способ, сам пока ничего не могу придумать Link to post Share on other sites
Den_LocalNet 1,474 Posted 2004-11-26 20:54:50 Author Share Posted 2004-11-26 20:54:50 Маска там есть везде. Это проверил в первую очередь....Вообще правила открытия таким способом только украины правельные? У кого-то работает? Аль предложите другой способ, сам пока ничего не могу придумать ну у меня собственно работает..... проблем не встречал... Link to post Share on other sites
Keen 10 Posted 2004-11-26 21:21:22 Share Posted 2004-11-26 21:21:22 Своими правилами поделится можеш? Т.к. обнаружил следующею вещь: 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 ....... Тоесть пакеты передаются, но не принимаются..... Link to post Share on other sites
nn 7 Posted 2004-11-27 16:01:13 Share Posted 2004-11-27 16:01:13 Может это кто-то (некоторые провайдеры, например укртелеком) дропает пакеты на революционные сайты типа .5TV Link to post Share on other sites
Keen 10 Posted 2004-11-27 22:35:19 Share Posted 2004-11-27 22:35:19 Да нет. Я даже незнаю почему, но все заработало . Суть в следующем. Сначало в цепочку я добавлял как iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j RETURN и не работало, а когда сделал iptables -A UA_IX -d xxx.xxx.xxx.xxx/xx -j ACCEPT то все стало ОК. МИР не пускает, пускает только украину. В чем тут был глюк? Link to post Share on other sites
Den_LocalNet 1,474 Posted 2004-11-27 22:47:16 Author Share Posted 2004-11-27 22:47:16 Да нет. Я даже незнаю почему, но все заработало . Суть в следующем.Сначало в цепочку я добавлял как 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 и всё ок. Link to post Share on other sites
Quarcel 0 Posted 2004-11-28 12:39:08 Share Posted 2004-11-28 12:39:08 глюка никакого нет, просто вы похоже не поняли разницы между 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 дает пакету зеленый свет и пакет уже не проверяется по другим правилам - идет в сеть Link to post Share on other sites
fufnf 0 Posted 2006-01-09 12:57:26 Share Posted 2006-01-09 12:57:26 Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок? В частности, я хочу, чтобы на SQUID попадал только иностранный трафик. Прокси работает в прозрачном виде. Я создаю цепочку UAIX в таблице nat. Из цепочки PREROUTING загоняю в UAIX адрес, если он удовлетворяет одной из этих 1222 проверок. Последним в PREROUTING делаю REDIRECT на порт 3128, а в UAIX создаю только iptables -t nat -A UAIX -j ACCEPT. Можно это как-то сделать красивее? И сильно ли снижает такая большая проверка производительность канала? Спасибо. Link to post Share on other sites
Den_LocalNet 1,474 Posted 2006-01-09 14:39:20 Author Share Posted 2006-01-09 14:39:20 иначе это как? не файрволом? думаю нет при данных условиях. не нагружает совсем..... хотя смотря какойтазик стоит шлюзом... но целерон 600 вполне нормально себя чувствует.... А чем некрасиво собственно? а если у вас в онлайне 1000 пользователей к примеру и на каждого по 2 как минимум правила в файрволе - вас не смущает нагрузка?? Link to post Share on other sites
Civilizator 0 Posted 2006-01-09 17:31:16 Share Posted 2006-01-09 17:31:16 Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок? 1222 правила это явно излишне. Агрегация списка дает его сокращение примерно в два раза (у меня 662 подсети). Link to post Share on other sites
fufnf 0 Posted 2006-01-09 21:30:51 Share Posted 2006-01-09 21:30:51 Скажите, а нет ли более разумного способа, чем фильтровать пакет через 1222 (в моем файле УА-ИХ) проверок? 1222 правила это явно излишне. Агрегация списка дает его сокращение примерно в два раза (у меня 662 подсети). Простите за темноту, но не подскажете ли на примере, как эту агрегацию UA-IX сетей делать? Link to post Share on other sites
keshaLG 5 Posted 2006-01-09 21:53:45 Share Posted 2006-01-09 21:53:45 маской наверное Link to post Share on other sites
fufnf 0 Posted 2006-01-09 22:02:08 Share Posted 2006-01-09 22:02:08 (edited) маской наверное Это типа, если есть 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? Разве это корректно? Edited 2006-01-09 22:38:50 by fufnf Link to post Share on other sites
N.Leiten 89 Posted 2006-01-09 22:29:44 Share Posted 2006-01-09 22:29:44 (edited) ЭЭЭ, а где вы 48 единиц возьмете, если их максимум может быть 32 ? извиняюсь, что влез... в общем-то можно и так использовать ( маска 16) мот только захватываете лишние айпишники, которые не входят в список. Edited 2006-01-09 23:28:09 by N.Leiten Link to post Share on other sites
Den_LocalNet 1,474 Posted 2006-01-09 22:30:25 Author Share Posted 2006-01-09 22:30:25 Тогда может кто поделися где брать уже "агрегированные" списки или подкинет скрипт для агрегации? Link to post Share on other sites
Civilizator 0 Posted 2006-01-10 10:14:56 Share Posted 2006-01-10 10:14:56 Тогда может кто поделится где брать уже "агрегированные" списки или подкинет скрипт для агрегации? Мои списки можно брать здесь. Основа - список UA-IX от DG с исключением нескольких небольших диапазонов (VPN провайдеры). Для аггрегирования списков в свое время нашел утилиту: файл 1 (20 кБ) файл 2 (1 кБ) Вроде нужен только первый, но мало ли... Link to post Share on other sites
Civilizator 0 Posted 2006-01-10 10:20:46 Share Posted 2006-01-10 10:20:46 маской наверное Это типа, если есть 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 Link to post Share on other sites
XoRe 0 Posted 2006-01-10 12:02:05 Share Posted 2006-01-10 12:02:05 2Civilizator: заметил вот что. http://ip.proline.net.ua/cgi-bin/ipzones.cgi?host=localhost Имхо, надо в NULL какие-то сети выкидывать. И ещё небольшой прикол: http://ip.proline.net.ua/cgi-bin/ipzones.cgi?host=eblan.us =) Link to post Share on other sites
centre-lan 1 Posted 2006-01-10 12:40:51 Share Posted 2006-01-10 12:40:51 И ещё небольшой прикол:http://ip.proline.net.ua/cgi-bin/ipzones.cgi?host=eblan.us =) -) -) Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now