Резултати от 1 до 15 от общо 15

Добавяне на правила към iptables при стартиране

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #1

    Добавяне на правила към iptables при стартиране

    Опитвам се да стартирам два файла по време на стартиране на системата, които добавят правила към iptables. Вторият файл е daemon и го стартирам с -d параметър. Пиша в rc.local два реда:
    /usr/local/bin/ipt_rules install и /usr/local/bin/dsl_queue -d. Така мога да ги пускам през конзолата, но при рестартиране правилата не се добавят, а демона се стартира, според логовете, но не го виждам да добавя правила към iptables. Изглежда, че въобще не може по този начин. Видях на едно място при вече добавени правила, се пуска iptables save active и се съхраняват, като оставa само демона, но търся начин правилата да се добавят при рестартиране, без да се запомнят.

  2.  
     
  3. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #2

    Re: Добавяне на правила към iptables при стартиране

    Така и не разбрах всеки път искаш да зареждаш едни и същи правила, или тези който са били в действие преди рестарта?
    Ако искаш всеки път едни и същи правила, може би най-лесно е, след като заредиш прравилата, които искаш, да ги запазиш в текстов файл чрез:
    Код:
    iprables-save > /some/dir/saved-rules.txt
    За да се зареждат при стартиране в rc.local добавяш:
    Код:
    iptables-restore < /some/dir/saved-rules.txt

  4. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #3

    Re: Добавяне на правила към iptables при стартиране

    Правилата са във файла ipt_rules и са постоянни, като при рестартиране на компютъра, съдържанието на файла трябва да се добави към iptables, след което трябва да бъде стартиран демона.
    Това съдържа ipt_rules
    Код:
    #!/bin/bash
    # add MYSHAPER-OUT chain to the mangle table in iptables - this sets up the table we'll use
    #                           to filter and mark packets.
    
    DEV=eth0
    
    # Reset everything to a known state (cleared)
    iptables -t mangle -D POSTROUTING -o $DEV -j MYSHAPER-OUT 2> /dev/null > /dev/null
    iptables -t mangle -F MYSHAPER-OUT 2> /dev/null > /dev/null
    iptables -t mangle -X MYSHAPER-OUT 2> /dev/null > /dev/null
    
    if [ "$1" != "install" ] 
    then 
        exit
    fi
    
    iptables -t mangle -N MYSHAPER-OUT
    iptables -t mangle -I POSTROUTING -o $DEV -j MYSHAPER-OUT
    
    # add fwmark entries to classify different types of traffic - Set fwmark from 20-26 according to
    #                               desired class. 20 is highest prio.
    iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 0:1024 -j MARK --set-mark 23 # Default for low port traffic 
    iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 0:1024 -j MARK --set-mark 23 # "" 
    iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 20 -j MARK --set-mark 26   # ftp-data port, low prio
    iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 5190 -j MARK --set-mark 23  # aol instant messenger
    iptables -t mangle -A MYSHAPER-OUT -p icmp -j MARK --set-mark 20        # ICMP (ping) - high prio, impress friends
    iptables -t mangle -A MYSHAPER-OUT -p udp --dport 123 -j MARK --set-mark 20  # NTP should be low-lag
    iptables -t mangle -A MYSHAPER-OUT -p udp --dport 53 -j MARK --set-mark 21   # DNS name resolution (small packets)
    iptables -t mangle -A MYSHAPER-OUT -p tcp --dport ssh -j MARK --set-mark 22  # secure shell
    iptables -t mangle -A MYSHAPER-OUT -p tcp --sport ssh -j MARK --set-mark 22  # secure shell
    iptables -t mangle -A MYSHAPER-OUT -p tcp --dport telnet -j MARK --set-mark 22 # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT -p tcp --sport telnet -j MARK --set-mark 22 # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT -p ipv6-crypt -j MARK --set-mark 24     # IPSec - we dont know what the payload is though...
    iptables -t mangle -A MYSHAPER-OUT -p udp --dport 10000 -j MARK --set-mark 24 # IPSec (udp tunnel) - we dont know what the payload is though...
    
    iptables -t mangle -A MYSHAPER-OUT -p tcp --sport http -j MARK --set-mark 25  # Local web server
    iptables -t mangle -A MYSHAPER-OUT -p tcp -m length --length :64 -j MARK --set-mark 21 # small packets (probably just ACKs)
    iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 3389 -j MARK --set-mark 23  # windows remote computer connection
    iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 26   # redundant- mark any unmarked packets as 26 (low pri

  5. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #4

    Re: Добавяне на правила към iptables при стартиране

    В rc.local добавяш:

    Код:
    /path/to/ipt_rules && /path/to/daemond

  6. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #5

    Re: Добавяне на правила към iptables при стартиране

    Махнах няколко реда от ipt_rules и направих и това, което си дал и тръгна след рестарта, но след няколко минути правилата изчезват от iptables. Като направя проверка с iptables -t mangle -L са там и след малко като проверя пак ги няма.

  7. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #6

    Re: Добавяне на правила към iptables при стартиране

    Тук вече стрелям на посоки, но мисля, че най-вероятно този "daemond", който стартираш има пръст в пренаписването. Без допълнителна информация нищо конкретно не мога да кажа. Още нещо, което сега забелязвам:
    Код:
    if [ "$1" != "install" ] 
    then 
        exit
    fi
    Това ме навежда на мисъта, че трябва да се стартира така:
    Код:
    /path/to/ipt_rules install && /path/to/daemond
    Откъде си намерил този скрипт, няма ли някаква документация към него?

  8.  
     
  9. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #7

    Re: Добавяне на правила към iptables при стартиране

    Скрипна е от тук: http://www.sonicspike.net/software/
    http://www.sonicspike.net/software/d...e-0.9.3.tar.gz
    Идеята му е да дели ъплоад трафика в зависимост от даунлоад-а и така не се запушва линията т.е. не се пречи на даунлоад-а.
    Документацията му е вътре, но пише само как се инсталира, без да се казва как да се направи да се стартира автоматично. Използването му през конзолата няма проблем, но автоматичното не става.
    Този код "install" го махнах и се стартира без параметри. Пробвах още iptables-save/restore. Интересното е, че дори и да тръгне, като се рестартира и веднага проверя, всичко си е наред и си работи(правилата са сложени, демона е стартиран), но след няколко минути правилата изчезват и демона се изклюва, което си мисля, че е рестартиране на iptables по някаква причина.

  10. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #8

    Re: Добавяне на правила към iptables при стартиране

    Код:
    localhost# ./dsl_qos_queue -h
    -- dsl_qos_queue (v0.9.3) --
    Usage:
       dsl_qos_queue <options>
    
    Options:
       -h       Display this help message.
       -d       Run as daemon.
       -i <device>  Specify DSL device (ie eth0, ppp0) Default: eth0
       -r <caprate>  Specify outbound rate cap in bytes per second. Default: 15900
       -n <numbands> Specify number of bands. Default: 7
       -m <fwmark>  Specify fwmark of first band. Default: 20
       -l <qlen>   Specify max total queue length in packets. Default: 50
       -t <transport> Specify transport mode, RFC1483 or PPPoE. Default: RFC1483
    От което следва:
    Код:
    /path/to/ipt_rules install && /path/to/dsl_qos_queue -d

  11. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #9

    Re: Добавяне на правила към iptables при стартиране

    Понеже не използвам чист линукс, а модификация (clarkconnect) и за това не става както си мислех и това, което си дал ти. Правилата от ipt_rules файла ги сложиш в rc.firewall.local, обаче демона както и да го стартирам, след няколко минути изчезва от iptables(процеса остава активен, с PS го виждам, но като го няма в iptables не върши работа). Според това, което четох във форума на clarkconnect, системата е направена да не стартира допълнителни правила и програми към iptables и за това маха всичко. С правилата може да се каже, че вече няма проблем. Сега търся какво да променя, че да не изхвърля демона. Промених и правата на файла, но нямаше ефект. Има ли начин да му задам някакъв голям приоритет, че да може само с kill script-a при изключване да се спира.

  12. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #10

    Re: Добавяне на правила към iptables при стартиране

    По принцип ОС, които ползват System-V съвместим init, позволяват да накараш някоя програма да се стартира автоматично (в случай, че умре) чрез /etc/inittab.

    Форматът на файла е: id:runlevels:actionrocess

    Би могъл да пробваш:
    Код:
    50:235:respawn:/path/to/dsl_qos_queue -d

  13. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #11

    Re: Добавяне на правила към iptables при стартиране

    След като го напиша това и рестартирам, вместо само да се изключи демона, крашва firewall-а.

  14.  
     
  15. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #12

    Re: Добавяне на правила към iptables при стартиране

    Явно много неща са модифицирани в този clarkconnect и доста се различава от основните дистрибуции по начин на работа.
    Жалко, че не успях да ти помогна. Аз се предавам.
    ;-(

  16. Member
    Тук е от
    Jun 2002
    Мнения
    796
    #13

    Re: Добавяне на правила към iptables при стартиране


    Огледах го това clarkconect и така и не разбрах какви са му предимствата ?

  17. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #14

    Re: Добавяне на правила към iptables при стартиране

    И аз разгледах сайта и пакетите, които предлагат за сваляне. Пакетите са RPM (red hat), в "base system" пише, че пакетът е "base red hat system". Oт друга страна мярнах, че в "професионалната версия" има "apt-get" (debian). Понякога кръстоските излизат много сполучливи (например любимото ми gentoo ползва система за управление на пакетите, базирана на PORTS от *BSD).

    Предполагам, че предимството на този clarkconnect е едно - лесната употреба: лесно инсталиране + лесно конфигуриране. Недостатък - силно модифициран, поради което поведението му се отличава от това на основните дистрибуции.

  18. Member
    Тук е от
    Sep 2003
    Мнения
    349
    #15

    Re: Добавяне на правила към iptables при стартиране

    Най-накрая го реших проблема. Правилата от ipt_rules ги бях въвел в rc.firewall.local и нямаше проблем с тях и след като пробвах каквото се сетя за да пусна демона, днес ми хрумна(трябваше по-рано да го пробвам) да сложа и двете правила, които добавя демона към iptables в rc.firewall.local. С iptables-save и сорса ги видях кои са и след рестарта взе, че тръгна. Демона си се стартира от rc.local. Сега, след като изхвърли правилата на демона, остават тези от rc.firewall.local и работи нормално.
    @Ghost, благодаря за помощта.

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn

Подобни теми

  1. Nastroika na SQUID i IPTABLES
    От botse във форум Linux
    Отговори: 2
    Последно: 19-03-05, 00:09
  2. IPtables или ...
    От OvErRiD3 във форум Linux
    Отговори: 3
    Последно: 21-11-04, 07:36
  3. Филтър по ip precedence с iptables
    От fori във форум Linux
    Отговори: 3
    Последно: 01-04-04, 12:46
  4. iptables limit
    От alexandro във форум Linux
    Отговори: 9
    Последно: 27-05-03, 08:54
  5. Iptables version problem
    От alexandro във форум Мрежи
    Отговори: 8
    Последно: 14-03-03, 18:49

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе