XoRe 0 Опубліковано: 2004-11-02 11:17:56 Share Опубліковано: 2004-11-02 11:17:56 DNS rabotaet na udp - prot Она работает и на tcp и на udp. Ссылка на сообщение Поделиться на других сайтах
Wapr-Old 0 Опубліковано: 2004-11-04 14:18:40 Share Опубліковано: 2004-11-04 14:18:40 Она работает и на tcp и на udp. ИМХО она работает всё-же по UDP, а по TCP она _может_ работать, если её попросить специально :tongue: и по теме: вот моё творчество в плане правил (это переходный вариант к роутингу на несколько инет каналов, поэтому там кое-что лишнее. Не смущайтесь... всё равно я пока не понял, как это настраивать :loop: --------------------------------------------- #!/bin/bash # Script to control packet filtering. # (adapting for 2-3 inet routers) # subnets tamnet="10.100.0.0/16" goldnet="10.2.0.0/16" ornet="10.1.0.0/16" modem0net="10.0.0.0/29" modem1net="10.0.51.0/29" modem2net="" # hosts/routers modem0_ip="10.0.0.1" # modem0_gw="10.0.0.2" # my modem modem0_bk="10.0.0.7" # modem1_ip="10.0.51.2" # modem1_gw="10.0.51.1" # Danek modem modem1_bk="10.0.51.7" # main_gw="10.100.100.115" prideland_gw="10.100.151.21" # router to other network # interfaces LAN="eth0" WAN0="eth1" #WAN1="eth0" WAN1="eth0:1" IPT=/usr/local/sbin/iptables IP=/sbin/ip action=$1 #Turn on source address verification in kernel function kernel_setup () { if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f done fi } function clear () { echo "Clear iptables chains..." echo 0 > /proc/sys/net/ipv4/ip_forward $IPT -F; $IPT -X; $IPT -Z $IPT -t nat -F; $IPT -t nat -X; $IPT -t nat -Z $IPT -t mangle -F; $IPT -t mangle -X; $IPT -t mangle -Z $IPT -P INPUT ACCEPT $IPT -P FORWARD ACCEPT $IPT -P OUTPUT ACCEPT echo "Clear route table..." route del -net $ornet gw $prideland_gw route del -net $goldnet gw $prideland_gw route del -host $prideland_gw gw $main_gw route del -net $modem0net dev $WAN0 route del -net $modem1net dev $WAN1 route del gw $modem0_ip $IP route flush all # srazu vosstalovit' loopback route add -net 127.0.0.0 netmask 255.0.0.0 lo # esli nado, podnyat' alias if [ -z `ifconfig|grep eth0:1` ]; then ifconfig $WAN1 $modem1_ip netmask 255.255.255.248 broadcast $modem1_bk fi echo "---------- Done ----------" echo } function start () { clear kernel_setup ####################### #Creating custom chains. # Logging chains $IPT -N LDROP $IPT -A LDROP -p tcp -j LOG --log-level info --log-prefix "DROP " $IPT -A LDROP -p udp -j LOG --log-level info --log-prefix "DROP " $IPT -A LDROP -p icmp -j LOG --log-level info --log-prefix "DROP " $IPT -A LDROP -f -j LOG --log-level warning --log-prefix "DROP " $IPT -A LDROP -j DROP $IPT -N LREJECT $IPT -A LREJECT -p tcp -j LOG --log-level info --log-prefix "REJECT " $IPT -A LREJECT -p udp -j LOG --log-level info --log-prefix "REJECT " $IPT -A LREJECT -p icmp -j LOG --log-level info --log-prefix "REJECT " $IPT -A LREJECT -f -j LOG --log-level warning --log-prefix "REJECT " $IPT -A LREJECT -j REJECT $IPT -N LACCEPT $IPT -A LACCEPT -p tcp -j LOG --log-level info --log-prefix "ACCEPT " $IPT -A LACCEPT -p udp -j LOG --log-level info --log-prefix "ACCEPT " $IPT -A LACCEPT -p icmp -j LOG --log-level info --log-prefix "ACCEPT " $IPT -A LACCEPT -f -j LOG --log-level warning --log-prefix "ACCEPT " $IPT -A LACCEPT -j ACCEPT # Reject and close tcp connect $IPT -N TREJECT $IPT -A TREJECT -p tcp -j REJECT --reject-with tcp-reset $IPT -A TREJECT -p ! tcp -j REJECT --reject-with icmp-port-unreachable $IPT -A TREJECT -j REJECT # OTHER NET # Дропать пакеты, предназначенные для форварда в GOLDNET/ORNET # Пропускать только тех, кто заплатил за доступ к серверу $IPT -N OTHERNET $IPT -A OTHERNET -j DROP # billing chain # через эту цепочку проходят все пакеты из/в интернет $IPT -N BILL $IPT -A BILL -j DROP # Examples for billing accept/deny rules # Пример того, что работает в скриптах вкл/выкл инет # $IPT -I BILL -d $ip -j RETURN # turn on internet # $IPT -I BILL -s $ip -j RETURN # turn on internet # $IPT -D BILL -d $ip -j RETURN # turn off internet # $IPT -D BILL -s $ip -j RETURN # turn off internet # limit icmp chain $IPT -N ICMP $IPT -A ICMP -p icmp -m limit --limit 3/s -j ACCEPT $IPT -A ICMP -j DROP ####################################################### # Main chains ####################################################### # PREROUTING ################ echo "Createing tables: PREROUTING..." # подготовка к извратной маршрутизации iptables -t mangle -I PREROUTING -p tcp -s 10.100.0.0/16 --dport 20:21 -j MARK --set-mark 0x10 iptables -t mangle -I PREROUTING -p tcp -s 10.100.0.0/16 --dport 22 -j MARK --set-mark 0x10 iptables -t mangle -I PREROUTING -p tcp -s 10.100.0.0/16 --dport 25 -j MARK --set-mark 0x10 iptables -t mangle -I PREROUTING -p tcp -s 10.100.0.0/16 --dport 110 -j MARK --set-mark 0x10 # INPUT ##################### echo " INPUT..." $IPT -A INPUT -i lo -j ACCEPT #Block nonroutable IPs $IPT -A INPUT -s 10.0.0.0/8 -i $WAN0 -j DROP $IPT -A INPUT -s 127.0.0.0/8 -i $WAN0 -j DROP $IPT -A INPUT -s 172.16.0.0/12 -i $WAN0 -j DROP $IPT -A INPUT -s 192.168.0.0/16 -i $WAN0 -j DROP #Block Back Orifice $IPT -A INPUT -p tcp -i $WAN0 --dport 31337 -j LDROP $IPT -A INPUT -p udp -i $WAN0 --dport 31337 -j LDROP #Block NetBus $IPT -A INPUT -p tcp -i $WAN0 --dport 12345:12346 -j LDROP $IPT -A INPUT -p udp -i $WAN0 --dport 12345:12346 -j LDROP #Block Trin00 $IPT -A INPUT -p tcp -i $WAN0 --dport 1524 -j LDROP $IPT -A INPUT -p tcp -i $WAN0 --dport 27665 -j LDROP $IPT -A INPUT -p udp -i $WAN0 --dport 27444 -j LDROP $IPT -A INPUT -p udp -i $WAN0 --dport 31335 -j LDROP #Block Multicast #$IPT -A INPUT -s 224.0.0.0/8 -d 0/0 -j DROP #$IPT -A INPUT -s 0/0 -d 224.0.0.0/8 -j DROP #Rejecting (not denying) ident requests. $IPT -A INPUT -p tcp -i $WAN0 --dport 113 -j TREJECT $IPT -A INPUT -p udp -i $WAN0 --dport 113 -j TREJECT $IPT -A INPUT -p tcp --dport 3128 -i $LAN -j BILL $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -p icmp -j ICMP $IPT -A INPUT -p tcp --dport 22 -i $WAN0 -j DROP # Wapr Old - SSH blocked $IPT -A INPUT -p tcp --dport 80 -i $WAN0 -j DROP # Wapr Old - HTTP blocked $IPT -A INPUT -p udp --dport 111 -i $WAN0 -j DROP # Wapr Old - sunrpc $IPT -A INPUT -p tcp --dport 111 -i $WAN0 -j DROP # Wapr Old - sunrpc $IPT -A INPUT -p udp --dport 135:138 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p udp --dport 445 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p tcp --dport 135 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p tcp --dport 139 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p tcp --dport 143 -i $WAN0 -j DROP # Wapr Old - IMAP blocked $IPT -A INPUT -p tcp --dport 445 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p tcp --dport 593 -i $WAN0 -j DROP # Wapr Old - NetBIOS blocked $IPT -A INPUT -p tcp --dport 5555:5556 -i $WAN0 -j DROP # Wapr Old - Stargazer blocked $IPT -A INPUT -p udp --dport 5554:5556 -i $WAN0 -j DROP # Wapr Old - Stargazer blocked $IPT -A INPUT -p tcp -s ! $tamnet --dport 1114 -j DROP # close all nonlocal query to MiniSQL $IPT -A INPUT -p tcp -s ! $tamnet --dport 3306 -j DROP # close all nonlocal query to MySQL $IPT -A INPUT -i $LAN -s $tamnet -j ACCEPT # open local net # FORWARD echo " FORWARD..." $IPT -A FORWARD -i lo -j ACCEPT $IPT -A FORWARD -i $WAN1 -o $LAN # -l BILL # free inet $IPT -A FORWARD -i $LAN -o $WAN1 # -l BILL # free inet $IPT -A FORWARD -i $WAN0 -o $LAN -j BILL $IPT -A FORWARD -i $LAN -o $WAN0 -j BILL $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -p icmp -j ICMP # OUTPUT echo " OUTPUT..." $IPT -A OUTPUT -p tcp --sport 3128 -o $LAN -j BILL # query trough squid # POSTROUTING echo " POSTROUTING..." $IPT -t nat -A POSTROUTING -d $goldnet -j SNAT --to-source $main_gw $IPT -t nat -A POSTROUTING -d $ornet -j SNAT --to-source $main_gw $IPT -t nat -A POSTROUTING -o $WAN0 -j SNAT --to-source $modem0_ip # for test two link #$IPT -t nat -A POSTROUTING -o $WAN1 -j SNAT --to-source $modem1_ip $IPT -t nat -A POSTROUTING -s $tamnet -d $modem1net -j SNAT --to-source $modem1_ip echo "Done" # ROUTING TABLE echo "Creating routing: to networks" route add -net $tamnet dev $LAN route add -net $modem0net dev $WAN0 route add -net $modem1net dev $WAN1 route add -net $goldnet gw $prideland_gw route add -net $ornet gw $prideland_gw echo " to hosts" #route add -host $prideland_gw gw $main_gw echo " default gw" route add default gw $modem0_ip dev $WAN0 #сам не понял, но без этого не работает route add default gw $modem0_gw dev $WAN0 route del default gw $modem0_ip dev $WAN0 # for test two link route add default gw $modem1_ip dev $WAN1 echo "Done" echo 1 > /proc/sys/net/ipv4/ip_forward } function stop () { clear } case $action in start) start;; stop) stop;; restart) stop; start;; *) echo "Please, use this script with start/stop/restart option." esac ----------------------------- Тут видимо надо добавить схему соединений... | | +---------+ +---------+ | Router1 | | Router0 | +---------+ +---------+ |10.0.51.1 10.0.51.2/29 | 10.0.0.2 | eth0:1 +-------------+ | ====================================| Server MAIN |--------+ | | | eth0 +-------------+ eth1 | | | 10.100.100.115/16 10.0.0.1/24 User User User Кстати, если кто мне покажет, как сбалансировать трафик при этой схеме, моя благодарность не будет иметь границ... но в разумных пределах Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2004-11-20 08:38:27 Share Опубліковано: 2004-11-20 08:38:27 Что-то я перепробовал все варианты скриптов, а основную проблемму не решил. подскажите плиз, как убивать открытые соединения. Я закрываю FORWARD и выключаю маскарад для клиента, но если качал что-то то оно и продолжает качать. RH9.0, iptables...... Ссылка на сообщение Поделиться на других сайтах
nn 7 Опубліковано: 2004-11-20 10:09:49 Share Опубліковано: 2004-11-20 10:09:49 Что-то я перепробовал все варианты скриптов, а основную проблемму не решил. подскажите плиз, как убивать открытые соединения. Я закрываю FORWARD и выключаю маскарад для клиента, но если качал что-то то оно и продолжает качать. RH9.0, iptables...... По умолчанию какая у тя политика на форвард? Какая цепочка используется? FILTER? Как ни крути, стандарт подойдет только в идентичной ситуации. Всегда приходится что-то по месту править. Проверять. Править.... Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2004-11-20 13:31:35 Share Опубліковано: 2004-11-20 13:31:35 По умолчанию какая у тя политика на форвард? DROP Какая цепочка используется? FILTER? да Ссылка на сообщение Поделиться на других сайтах
nn 7 Опубліковано: 2004-11-20 21:00:55 Share Опубліковано: 2004-11-20 21:00:55 По умолчанию какая у тя политика на форвард? DROP Какая цепочка используется? FILTER? да Я опытным путем шел, пока закрыл эту дыру. Все-таки системы разные, версии, настройки разные, вот и разный результат. На другом сервере я настраивал людям, так что-то добавлял еще, не так как у себя. Это все-таки не мастдайка, тут несколько вариантов решения может быть. Есть тулзы для просмотра проходящего трафика, надо смотреть, вносить изменения, пробовать. Нет панацеи. Ссылка на сообщение Поделиться на других сайтах
Wapr-Old 0 Опубліковано: 2004-11-20 22:31:58 Share Опубліковано: 2004-11-20 22:31:58 Может я чего не понимаю в этой материи, но попробуй правило на ESTABLISHED и RELATED пакеты поставить ПОСЛЕ правил, добавляемых биллингом. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2004-11-21 00:30:23 Share Опубліковано: 2004-11-21 00:30:23 Я не знаю iptables, но думаю, что и там есть правило, запрещающее не сессии, а ПАКЕТЫ. Может попробовать использовать его? Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас