[ЧСВ]python биндинг для ipfw бацаю

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

[ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 11:13:25

пока работает для табличек

Код: Выделить всё

>sudo python
Python 2.6.2 (r262:71600, Sep 14 2009, 11:40:55) 
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd7
Type "help", "copyright", "credits" or "license" for more information.
>>> from ipfw import table_add, table_del, table_length, table_list
>>> table_length(35)
2
>>> table_list(35)
(('192.168.0.1', 32, 0), ('192.168.0.2', 32, 0))
>>> table_del(35,'192.168.0.1')
>>> table_list(35)
(('192.168.0.2', 32, 0),)
>>> table_add(35,'192.168.0.10')
>>> table_list(35)
(('192.168.0.2', 32, 0), ('192.168.0.10', 32, 0))
>>> quit()

Код: Выделить всё

>sudo ipfw table 35 list
192.168.0.2/32 0
192.168.0.10/32 0
perl биндинги не осилил :)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-24 11:19:42

а чем он лучше будет?

вот этот типо http://search.cpan.org/~muir/BSD-Ipfwge ... pfwgen.pod ?

http://search.cpan.org/search?query=ipfw&mode=all

Код: Выделить всё

    #/usr/local/bin/perl -w

        use strict;
        use BSD::Ipfwgen;
        use IO::Handle;

        outside 'fxp0';
        leaf 'etha32';
        consolidate '209.66.121.128/25';
        us qw(
                140.174.82.0/24 
                207.33.232.0/22 
                207.33.184.0/22 
                207.33.240.0/21 
                209.157.64.0/19 
                140.174.154.0/24 
                207.33.66.0/24 
                209.66.121.0/24
            );
        not_us qw(
                209.66.121.0/29
        );
        symmetric qw(
                209.66.121.0/27
            );


        count_by_interface();
        count_by_tcp qw(80 119 21 53 25 871 513 23 6667);
        count_by_address qw();
        drop_unwanted qw(
                192.168.0.0:255.255.0.0
                172.16.0.0:255.240.0.0
                10.0.0.0:255.0.0.0
            );

        no_looping();
        no_spoofing_us();
        no_spoofing_by_us();
        no_leaf_spoofing();

        to_me_rules <<'';
                =deny udp from not 140.174.82.0/26 to any 111,2049 # portmap, NFS
                =deny tcp from not 140.174.82.0/26 to any 111 # portmap

        from_me_rules <<'';
                =deny udp from any 111,2049 to not 140.174.82.0/26 # portmap, NFS
                =deny tcp from any 111 to not 140.174.82.0/26 # portmap

        to_net_rules ('=host:mac84', <<'');
                =skiprule tcp from 140.174.82.32/27 to =host:mac84 6000 # mac84
                =deny tcp from any to =host:mac84 6000

        generate qw(INSECURE DEFAULT-ACCEPT); 
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 11:24:25

pfwgen generates commands that work with FreeBSD 2.2.5's firewall program: ipfw.
а моему биндингу не нужен ipfw узерлендовский, он напрямую работает

Код: Выделить всё

static PyObject *
ipfw_table_add(PyObject *self, PyObject *args)
{
    int table,mask=32,value=0;
    char *ip_str;
    int i,s=-1;
    ipfw_table_entry ent;

    if (!PyArg_ParseTuple(args,"is|ii",&table,&ip_str,&mask,&value))
        return NULL;
    // Table add entry
    if(table<MIN_TABLE){ 
        PyErr_SetString(IPFWError, "m..");
        return NULL;
    }

    ent.value = value;
    ent.tbl = table;
    ent.masklen = mask;
    if(!inet_aton(ip_str, (struct in_addr*)&ent.addr)){
        PyErr_SetString(IPFWError, "ip address bad");
        return NULL;
    }
    s=socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
    if(s<0){ 
        PyErr_SetString(IPFWError, "socket fail");
        return NULL;
    }
    i = setsockopt(s, IPPROTO_IP, IP_FW_TABLE_ADD, &ent, sizeof(ent));
    if(i && errno != EEXIST){ // Allow add existent entry
        PyErr_SetString(IPFWError, "setsocket fail");
        return NULL;
    }

    Py_INCREF(Py_None);
    return Py_None;
}
как та так
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-24 12:22:18

А где perl биндинг?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 12:27:12

perl биндинги не осилил :pardon:

ты видел как пишутся перл биндинги, там разрыв мозга сразу! :(
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-24 12:40:12

я не знаю что такое билдинги

http://www.google.com.ua/#hl=uk&q=perl+ ... 9b7f7c4055
не нашел

я так понял это libc? Glib?
http://search.cpan.org/search?query=Glib&mode=all

ну в общем Си библиотеку можно перевеси в perl XS называется, он приведет в какой-то свой вид эту библиотеку и будет динамически ее использовать...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 12:47:06

glibc для линупсоедов :evil:

кстати
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 12:50:12

пля я лох :(

http://docs.python.org/library/socket.h ... setsockopt
http://perldoc.perl.org/functions/setsockopt.html

можно было на чистом пистоне и перле написать :'(
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-24 12:51:52

обясни что такое биндинг?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 12:55:05

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 13:11:44

вот теперь вопрос или мне трахаца с биндинговыми нашлепками только пистон или трахаца с упаковкой и распаковкой структур в строку ммм зато perl+python
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-24 13:53:32

показывай уже что там такое.... :smile:
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-24 23:46:37

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-25 6:46:53

ты Сишняк оказывается? :-D

а на perl или python можно это было сделать?

и вообще смысл, т.е. абсолютно под ругому хочшеь сделать ipfw? а ошибки в безопасности не сделаешь?
может лучше стандартный фаервол использовать?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-25 10:48:30

можно написать, но придется трахацо с переводом структур в строку

мне например нужно добавить один ip в таблицу ipfw - это из пистона\перла запуск шела и из него запуск ipfw долго и ошибки фигово орабатываются, а через эту штуку открыть сокет и кинуть значение всё
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-25 10:58:59

это в pf делается быстро!

а в ipfw долго

как это запустить?

где-то написано как это настроить, как это написать? надо сищные исходники где-то посмотреть?
как мне наприсать на perl чтобы тоже быстро добавить в ipfw таблицу?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-25 11:13:33

а предкомпеляция тут не поможет

http://search.cpan.org/~sisyphus/Inline-0.45/C/C.pod
http://search.cpan.org/search?query=inl ... C&mode=all

Код: Выделить всё

    use Inline C;
    greet('Ingy');
    greet(42);
    __END__
    __C__
    void greet(SV* sv_name) {
      printf("Hello %s!\n", SvPV(sv_name, PL_na));
    }
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-25 11:15:11

с чего это в pf это делается быстро? там такие же накладные расходы на запуск из перал\пистона\etc. pfctl

исходники все в /usr/src ;)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-25 11:16:48

я имел ввиду, вроде бы, в pf в таблицу добавлять - быстрее будет...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение hizel » 2009-11-25 11:18:49

хз, я исходники pfctl не смотрел, очень сомневаюсь что быстрее ipfw :D

Код: Выделить всё

s=socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
i = setsockopt(s, IPPROTO_IP, IP_FW_TABLE_ADD, &ent, sizeof(ent));
грубо говоря вся последовательность действий ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-11-26 9:11:56

кстатети, кто знает есть ли решение, как вот это /usr/ports/multimedia/ffmpeg поставить куда нибудь на хостинг, чтобы можно было скопировать на хостинг и чтобы оно там работало?

на perl есть фишка, но она старая 2006 гоад и для lunux сборки, оно ругается на всё и не ставиться....
http://search.cpan.org/~allenday/FFmpeg-6036/FFmpeg.pm
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [ЧСВ]python биндинг для ipfw бацаю

Непрочитанное сообщение ProFTP » 2009-12-13 22:12:42

hizel писал(а):можно написать, но придется трахацо с переводом структур в строку

мне например нужно добавить один ip в таблицу ipfw - это из пистона\перла запуск шела и из него запуск ipfw долго и ошибки фигово орабатываются, а через эту штуку открыть сокет и кинуть значение всё
я вот переписал статью http://www.lissyara.su/articles/freebsd ... pfw_table/

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

раз в 3 часа запускать скрипт - будет добавляться не более чем пару сек.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение