Перейти до

STG + QUEUE не идёт трафик


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

доброго времени суток!

 

дано:

сеть состоит из нескольких общежитий. траф внутри общаг перенаправляется без тарификации, учитывать нужно только траф "в мир".

CentOS 5.3, STG 2.405, молодой одмин (я).

 

в общем:

правила в цепочке FORWARD: всё, что не является трафом между общагами, перемещается в цепочку billing. нижнее правило в цепочке billing DROP. скрипты OnConnect/OnDisconnect добавляют в billing для каждого конкретного IP два правила, вытаскивающие пакеты из billing в QUEUE. в конфиге СТГ модуль перехвата указал cap_ipq. в логах старгайзера тихо, загрузка проходит без проблем, авторизаторы у клиентов подключаются без проблем, скрипты выполняются, правила в цепочку billing добавляются... инета нет(

 

сразу отвечу на пару ваших вопросов:

1 modprobe ip_queue выполняю в rc.local до запуска старгайзера

2 скрипт фаервола работает однозначно правильно: если без запуска билинга сделать iptables -I FORWARD -j ACCEPT то у всех клиентов будет инет-анлим)

 

такое ощущение, что СТГ не получает пакеты из очереди.

замена

iptables -I billing -s $ip -j QUEUE

iptables -I billing -d $ip -j QUEUE

в скрипте OnConnect на ACCEPT (т.е. в обход биллинга)

iptables -I billing -s $ip -j ACCEPT

iptables -I billing -d $ip -j ACCEPT

опять же даёт клиентам инет-анлим (теперь правда не всем, а тем, кто запустил inetaccess)

 

друзья, подскажите, в какую сторону смотреть? стг не берёт пакеты из очереди? нужно дополнительно конфигурировать ОС? чем отличается ip_queue в CentOS 4.2 и 5.3? есть ли отличия в работе cap_ipq в таргайзере 2.405 по сравнению с очень старыми версиями (около 2006 года)? (потому что конфиги и скрипты мне достались в наследство от старого админа)

я уже которую ночь ломаю глаза об эти конфиги... а у меня вся общага без инета))

Ссылка на сообщение
Поделиться на других сайтах

2 скрипт фаервола работает однозначно правильно: если без запуска билинга сделать iptables -I FORWARD -j ACCEPT то у всех клиентов будет инет-анлим)

 

 

И все же покажите скрипт фаерволла, а так же вывод расширенной информации о нем (iptables -L -n -v).

Ссылка на сообщение
Поделиться на других сайтах

я сейчас на работе, поэтому никаких iptables -L вам предоставить не могу.

 

скрипт для фаера (не содержит правил по доступу к самому серверу и ещё немного мелочей выкинул):

#! /bin/sh

LOOPBACK_IPADDR="127.0.0.1"		# looopback
LOOPBACK_NETMASK="255.0.0.0"		# loopback netmask
LOOPBACK_NETWORK="127.0.0.0/8"		# loopback network

EXT_IPADDR="xx.xx.xx.xx"		# external IP address
EXT_NETMASK="255.255.254.0"		# external netmask
EXT_NETWORK="xx.xx.xx.xx"		# external network
EXT_BROADCAST="xx.xx.xx.xx"		# external broadcast
EXT_GATEWAY="xx.xx.xx.xx"   		# external gateway address
EXT_IFACE="eth1"			# external interface

LOCAL_IPADDR="192.168.7.1"	   	# local IP address
LOCAL_NETMASK="255.255.255.0"		# local netmask
LOCAL_NETWORK="192.168.7.0/24"		# local network
LOCAL_BROADCAST="192.168.7.255"		# local broadcast address
LOCAL_IFACE="eth0"			# local interface

INT_SERVER_IPADDR="192.168.7.3"		# internal network server

PRIVATE_LANS1="192.168.0.0/16"

COMMUN2_NETWORK="192.168.2.0/24"
COMMUN3_NETWORK="192.168.3.0/24"
COMMUN4_NETWORK="192.168.4.0/24"
COMMUN6_NETWORK="192.168.6.0/24"
COMMUN5_NETWORK="192.168.5.0/24"

COMMUN6_IPADDR="xx.xx.xx.xx"
COMMUN5_IPADDR="xx.xx.xx.xx"
COMMUN4_IPADDR="xx.xx.xx.xx"
COMMUN3_IPADDR="xx.xx.xx.xx"
COMMUN2_IPADDR="xx.xx.xx.xx"

COMMUN_GWIPADDR="xx.xx.xx.xx"
COMMUN_GWEXTIPADDR="xx.xx.xx.xx"

DNS_IPADDR="xx.xx.xx.xx"

   iptables --flush
   iptables -X
   iptables -t nat --flush
   iptables -t nat -X
   iptables -t mangle --flush
   iptables -t mangle -X

   iptables -P INPUT DROP
   iptables -P OUTPUT DROP
   iptables -P FORWARD DROP
   iptables -t nat -P PREROUTING ACCEPT
   iptables -t nat -P POSTROUTING ACCEPT

   iptables -N billing
   iptables -F billing

   echo "1" > /proc/sys/net/ipv4/ip_forward

   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s $COMMUN2_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s $COMMUN5_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s $COMMUN3_NETWORK -j ACCEPT        
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s $COMMUN4_NETWORK -j ACCEPT        
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s $COMMUN6_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -s 192.168.254.0/24 -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d $COMMUN2_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d $COMMUN5_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d $COMMUN3_NETWORK -j ACCEPT        
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d $COMMUN4_NETWORK -j ACCEPT        
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d $COMMUN6_NETWORK -j ACCEPT
   iptables -t mangle -A PREROUTING -i $EXT_IFACE -d 192.168.254.0/24 -j ACCEPT

   # localhost
   iptables -A INPUT -i "lo" -s $LOOPBACK_IPADDR -j ACCEPT
   iptables -A INPUT -i "lo" -s $LOCAL_IPADDR -j ACCEPT    
   iptables -A INPUT -i "lo" -s $EXT_IPADDR -j ACCEPT    
   iptables -A INPUT -i "lo" -d $LOCAL_IPADDR -j ACCEPT        

   iptables -A INPUT -s $LOCAL_NETWORK -j ACCEPT
   # from inet
   iptables -A INPUT -i $EXT_IFACE -d $EXT_IPADDR -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -i $EXT_IFACE -d $EXT_IPADDR -j inet_ext
   iptables -A INPUT -d $LOCAL_IPADDR -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -d $LOCAL_IPADDR -j inet_ext
   # other packets
   iptables -A INPUT -m limit --limit 1/minute --limit-burst 1 -j LOG --log-level DEBUG --log-prefix "INPUT packet drop: "
   iptables -A INPUT -j DROP

# RPC DCOM vul. shild
   iptables -A FORWARD -s $LOCAL_NETWORK -d 192.168.0.0/16 -p tcp --destination-port 135 -m limit --limit 5/second --limit-burst 5 -j DROP
   iptables -A FORWARD -s $LOCAL_NETWORK -d 192.168.0.0/16 -p udp --destination-port 135 -m limit --limit 5/second --limit-burst 5 -j DROP



   iptables -A FORWARD -s $LOCAL_NETWORK -d $COMMUN2_NETWORK -j ACCEPT
   iptables -A FORWARD -s $LOCAL_NETWORK -d $COMMUN3_NETWORK -j ACCEPT
   iptables -A FORWARD -s $LOCAL_NETWORK -d $COMMUN4_NETWORK -j ACCEPT
   iptables -A FORWARD -s $LOCAL_NETWORK -d $COMMUN6_NETWORK -j ACCEPT
   iptables -A FORWARD -s $LOCAL_NETWORK -d $COMMUN5_NETWORK -j ACCEPT

   iptables -A FORWARD -s $LOCAL_NETWORK   -d 10.6.0.0/24    -j ACCEPT
   iptables -A FORWARD -s $COMMUN2_NETWORK -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s $COMMUN3_NETWORK -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s $COMMUN4_NETWORK -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s $COMMUN5_NETWORK -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s $COMMUN6_NETWORK -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s 192.168.254.0/24 -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s 10.6.0.0/24      -d $LOCAL_NETWORK -j ACCEPT
   iptables -A FORWARD -s $LOCAL_NETWORK   -d 192.168.254.0/24 -j ACCEPT
   iptables -A FORWARD -s 192.168.0.0/16   -d $LOCAL_NETWORK -j DROP
   iptables -A FORWARD -s $LOCAL_NETWORK   -d 192.168.0.0/16 -j DROP

   iptables -A FORWARD -s $LOCAL_NETWORK -j billing
   iptables -A FORWARD -d $LOCAL_NETWORK -j billing

   iptables -A billing -j DROP


   iptables -A FORWARD -i $EXT_IFACE -m state --state NEW,INVALID -j REJECT
   iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "FORWARD packet drop: "        
   iptables -A FORWARD -j DROP

   iptables -A OUTPUT -s $LOOPBACK_IPADDR -j ACCEPT
   iptables -A OUTPUT -s $EXT_IPADDR -j ACCEPT
   iptables -A OUTPUT -s $LOCAL_IPADDR -j ACCEPT



   iptables -t nat -A POSTROUTING -s $LOCAL_IPADDR -d $LOCAL_NETWORK -j ACCEPT          

   iptables -t nat -A POSTROUTING -s $COMMUN2_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -d $COMMUN2_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -s $COMMUN3_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -d $COMMUN3_IPADDR -j ACCEPT    
   iptables -t nat -A POSTROUTING -s $COMMUN4_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -d $COMMUN4_IPADDR -j ACCEPT    
   iptables -t nat -A POSTROUTING -s $COMMUN5_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -d $COMMUN5_IPADDR -j ACCEPT    
   iptables -t nat -A POSTROUTING -s $COMMUN6_IPADDR -j ACCEPT
   iptables -t nat -A POSTROUTING -d $COMMUN6_IPADDR -j ACCEPT 
   iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -j ACCEPT
   iptables -t nat -A POSTROUTING -d 192.168.254.0/24 -j ACCEPT 

   iptables -t nat -A POSTROUTING -s xx.xx.xx.xx -j ACCEPT
   iptables -t nat -A POSTROUTING -d xx.xx.xx.xx -j ACCEPT 


   iptables -t nat -A POSTROUTING -s $LOCAL_NETWORK -d $PRIVATE_LANS1 -j ACCEPT
   iptables -t nat -A POSTROUTING -s $PRIVATE_LANS1 -d $LOCAL_NETWORK -j ACCEPT    

   iptables -t nat -A POSTROUTING -s $LOCAL_NETWORK -j SNAT --to-source $EXT_IPADDR    
   iptables -t nat -A POSTROUTING -o $EXT_IFACE -s $LOCAL_NETWORK -j SNAT --to-source $EXT_IPADDR

iptables -A OUTPUT -d 192.168.6.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.10.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.4.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.3.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.2.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.254.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/16 -j DROP

   iptables -A tcp_ext -j DROP

# udp external source
   iptables -A udp_ext -p udp -d $EXT_IPADDR --source-port 53 -j ACCEPT    
   iptables -A udp_ext -p udp -s $LOCAL_NETWORK -j ACCEPT	# ALL
   iptables -A udp_ext -j DROP
   iptables -A tcp_int -p tcp -s $LOCAL_NETWORK -j ACCEPT 			# ALL
   iptables -A tcp_int -p tcp -s $LOCAL_NETWORK -m multiport --destination-port 20,21 -j ACCEPT
   iptables -A tcp_int -p tcp -d $LOCAL_NETWORK -m multiport --destination-port 20,21 -j ACCEPT
   iptables -A tcp_int -j DROP    
   iptables -A udp_int -p udp -s $LOCAL_NETWORK -j ACCEPT	# ALL
   iptables -A udp_int -j DROP

Ссылка на сообщение
Поделиться на других сайтах

ip_queue в CentOS 4.2 и 5.3 ничем существенным не отличается.

Я не помню какая была версия в 2006 году, но между ветками 2.0 и 2.4 есть много существенных отличий.

По поводу настройки скриптов OnConnect/OnDisconnet (а я уверен что проблема в них) можно почитать тут. Документация, правда, относится к ветке 2.0 но формат вызова скриптов с тех пор не менялся.

Ссылка на сообщение
Поделиться на других сайтах

скрипты я не тупо скопировал/вставил. с тех пор добавился ещё один параметр с маской подключенных направлений. скрипты выполняются точно, потому что результат можно сразу же посмотреть в iptables -L billing. да и замена QUEUE на ACCEPT, как я уже писал выше, доказывает, что в цепочку billing попадают пакеты именно из внешки и зависимость от состояния авторизаторя прямая.

Ссылка на сообщение
Поделиться на других сайтах

вот как-то так :lol:

 

OnConnect

#!/bin/bash

LOGIN=$1
IP=$2
CASH=$3
ID=$4
DIR=$5

iptables -I billing -s $IP -j QUEUE
iptables -I billing -d $IP -j QUEUE

 

OcDisconnect

#!/bin/bash

LOGIN=$1
IP=$2

iptables -D billing -s $IP -j QUEUE
iptables -D billing -d $IP -j QUEUE

Ссылка на сообщение
Поделиться на других сайтах

короче всё разрулилось :mellow: конфиги старгайзера и правила фаера оставил, только переставил сам стг с 405 на 406. и всё) вся общага теперь с инетом. всем спасибо!

Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Вхід

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

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...