121

#!/bin/sh

### Определяем переменные
lan="eth0"
lanrange="192.168.10.0/24"

wan="eth1"
wanip="10.107.10.22"

lo="127.0.0.1"

# Очищаем все правила в таблицах filter, nat и mangle
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F

# Задаем политики по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Разрешаем прохождение любого траффика по петлевому интерфейсу
iptables -A INPUT -i $lo -j ACCEPT
iptables -A OUTPUT -o $lo -j ACCEPT

# Пропускаем пакеты уже установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешаем серверу
#80
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 80 -j ACCEPT

#8080
iptables -A INPUT -i eth1 -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 8080 -j ACCEPT

#443
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 443 -j ACCEPT

#DNS
iptables -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 53 -j ACCEPT

# пинги-винги
iptables -t filter -A INPUT -i eth1 -p icmp --icmp-type 8 -j ACCEPT
iptables -t filter -A OUTPUT -0 eth1 -p icmp --icmp-type 8 -j ACCEPT

#Разрешаем пользователям

#http
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 80 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 8080 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 8080 -j ACCEPT

#https
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 443-j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 443 -j ACCEPT

#POP3
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 993 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 993 -j ACCEPT

#IMAP
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 995 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 995 -j ACCEPT

#SMTP
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 587 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 587 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 465 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 465 -j ACCEPT

#ICQ
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 5190 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 5190 -j ACCEPT

#FTP
iptables -A FORWARD -i eth0 -o eth1  -p tcp --dport 21 -j ACCEPT 
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 21 -j ACCEPT

#Перенаправляем на SQUID
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Включаем NAT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 10.107.10.22

не раздает интернет хоть убей.

Когда ставлю:
iptables -P OUTPUT  ACCEPT

интернет на сервере появляется

в чем проблема?

122 (29.03.2011 19:49:47 отредактировано XliN)

Вот начал набрасывать... дошел до TC и решил отдохнуть. Посмотрите, все ли верно
Куда и что надо дописать что бы я с дома имел доступ к серверу?

+ открыть спойлер
#!/bin/bash

IPT="/sbin/iptables"

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

echo "Starting IPv4 Firewall..."

# Скидываем все цепочки iptables
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Загружаем модули
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Интерфейс смотрящий в интернет
INET="ppp0"

# Разрешаем траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#Закрываем все цепочки
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Маскардинг в инет и локалку
$IPT --table nat --append POSTROUTING --out-interface vlan3 -j MASQUERADE
$IPT --table nat --append POSTROUTING --out-interface vlan4 -j MASQUERADE
$IPT --table nat --append POSTROUTING --out-interface ${INET} -j MASQUERADE

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Разрешаем локальный траффик для локальной сети
$IPT -A INPUT -i vlan3 -j ACCEPT
$IPT -A OUTPUT -o vlan3 -j ACCEPT

$IPT -A INPUT -i vlan4 -j ACCEPT
$IPT -A OUTPUT -o vlan4 -j ACCEPT

# ICMP Разрешаем пинг с интернета до сервера
$IPT -A INPUT -i ${INET} -p icmp -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p icmp -j ACCEPT

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем серверу DNS (tcp/udp)

$IPT -A INPUT -i ${INET} -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p udp --dport 53 -j ACCEPT

$IPT -A INPUT -i ${INET} -p tcp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p tcp --dport 53 -j ACCEPT


# Разрешаем серверу http, https, ssh, ftp (открываем порты 80,443,21,22)
$IPT -A INPUT -i ${INET} -p tcp --destination-port 80 -j ACCEPT
$IPT -A INPUT -o ${INET} -p tcp --destination-port 443 -j ACCEPT
$IPT -A INPUT -i ${INET} -p tcp --destination-port 21 -j ACCEPT
$IPT -A INPUT -i ${INET} -p tcp --destination-port 22 -j ACCEPT

#Разрешаем гулять всем подсетям
$IPT -A FORWARD -i vlan4 -o vlan3 -j ACCEPT
$IPT -A FORWARD -i vlan3 -o vlan4 -j ACCEPT

#Разрешаем ICMP пакеты из vlan3, vlan4 в интернет
$IPT -A FORWARD -i ${INET} -o vlan3 -p icmp -j ACCEPT
$IPT -A FORWARD -i vlan3 -o ${INET} -p icmp -j ACCEPT

$IPT -A FORWARD -i ${INET} -o vlan4 -p icmp -j ACCEPT
$IPT -A FORWARD -i vlan4 -o ${INET} -p icmp -j ACCEPT

##############################################################################
#####################  Разрешаем  доступ в инет и в локалку ##################
##############################################################################

##############################################################################
##################### 192.168.1.0/24 #########################################
#### 50225 - АРМ ПФР
#### 50110,50025 - АРМ Страхователь
#### 3389 - Парус 8
#############################################################################

$IPT -A FORWARD -s 192.168.1.177 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.177 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.178 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.178 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.179 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.179 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.180 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.180 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.186 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.186 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.190 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.190 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

################## Компьютеры админов #######################################

$IPT -A FORWARD -s 192.168.1.173 -o ${INET} -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.173 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.173 -o ${INET} -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.173 -j ACCEPT

##############################################################################

##############################################################################
##################### 192.168.3.0/24 #########################################
##############################################################################

$IPT -A FORWARD -s 192.168.3.10 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.10 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s 192.168.3.123 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.123 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.249 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.249 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.250 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.250 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.253 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.253 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.246 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.246 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.245 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.245 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.244 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.244 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

###############################################################################
MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

123 (29.03.2011 19:48:16 отредактировано XliN)

funky,

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

Не поможет?

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

124

--=XliN=-- пишет:

funky,

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

Не поможет?

неа, глухо

125 (29.03.2011 20:23:21 отредактировано Kettler)

--=XliN=-- а где mark  wink
funky
http://pastebin.com/K9r1kY5q
Будут вопросы задавай

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

126

Kettler пишет:

--=XliN=-- а где mark  wink

Еще не делал.. А можно туда же дописать MARK?
например

$IPT -A FORWARD -s 192.168.3.10 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j MARK --set-mark 90 ACCEPT 

И ты хотел помочь с этим... )) Я выше писал как мне нужно.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

127 (30.03.2011 17:51:32 отредактировано Kettler)

--=XliN=-- пишет:

Еще не делал.. А можно туда же дописать MARK?

Нет
По твою душу

    #!/bin/bash
    inet="ppp0"
    
    #Кому необходим интернет на скорости 400 - 600
    NUMBERS_S="192.168.1.175 192.168.1.176 192.168.1.177"
    
    #Кому необходим интернет на скорости 200 - 300
    NUMBERS_MIN="192.168.1.180 192.168.1.179"

    #Кому дать весь канал (зависит от того на скоко забит)
    NUMBERS_OST="192.168.1.180 192.168.1.179"

    #Админы насальника (не забываем про бухгалтера а то тоже зп подрежут)!
    NUMBERS_MAX="192.168.1.180 192.168.1.179"
    
    #Кто будет качать торренты
    NUMBERS_TOR=""
    
    echo "1" > /proc/sys/net/ipv4/ip_forward
    echo 1 > /proc/sys/net/ipv4/ip_dynaddr
    modprobe iptable_nat
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    iptables -F
    iptables -F -t nat
    iptables -F -t mangle

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    #Маскардинг в инет и локалку
    iptables --table nat --append POSTROUTING --out-interface vlan3 -j MASQUERADE
    iptables --table nat --append POSTROUTING --out-interface vlan4 -j MASQUERADE
    iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE

    #Выравниваем MTU
    iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    #############Firewall#############
    # Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP

    # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
    # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
    iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
    iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
   
    #разрешаем локальный траффик для локальной сети
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    iptables -A INPUT -i vlan3 -j ACCEPT
    iptables -A OUTPUT -o vlan3 -j ACCEPT
    iptables -A INPUT -i vlan4 -j ACCEPT
    iptables -A OUTPUT -o vlan4 -j ACCEPT

    #Разрешаем гулять всем подсетям
    iptables -A FORWARD -i vlan4 -o vlan3 -j ACCEPT
    iptables -A FORWARD -i vlan3 -o vlan4 -j ACCEPT
    
    # Разрешаем серверу http, https, ssh, ftp (открываем порты 80,443,21,22)
    iptables -A INPUT -i $inet -p tcp --sport 443 -j ACCEPT
    iptables -A OUTPUT -o $inet -p tcp --dport  443 -j ACCEPT
    iptables -A INPUT -i $inet -p tcp --sport 80 -j ACCEPT
    iptables -A OUTPUT -o $inet -p tcp --dport  80 -j ACCEPT
    iptables -A INPUT -i $inet -p tcp --sport 22 -j ACCEPT
    iptables -A OUTPUT -o $inet -p tcp --dport  22 -j ACCEPT
    iptables -A INPUT -i $inet -p tcp --sport 21 -j ACCEPT
    iptables -A OUTPUT -o $inet -p tcp --dport  21 -j ACCEPT
    iptables -A INPUT -i $inet -p udp --sport 53 -j ACCEPT
    iptables -A OUTPUT -o $inet -p udp --dport  53 -j ACCEPT
    
    #############Шейпер#############
    
    #Режем входящую
    NUMBERS_VLAN="vlan3 vlan4"
    for number_vl in `echo $NUMBERS_VLAN`
    do
    echo $number_vl
     
    tc qdisc del dev $number_vl root
    tc qdisc add dev $number_vl root handle 1: htb
    tc class add dev $number_vl parent 1: classid 1:1 htb rate 100Mbit
    
    tc class add dev $number_vl parent 1:1 classid 1:100 htb rate 100Mbit ceil 100Mbit burst 15k
    tc class add dev $number_vl parent 1:1 classid 1:90 htb rate 3Mbit ceil 4Mbit burst 15k
    tc class add dev $number_vl parent 1:1 classid 1:80 htb rate 512Kbit ceil 4Mbit burst 15k
    tc class add dev $number_vl parent 1:1 classid 1:70 htb rate 400Kbit ceil 600Kbit burst 15k
    tc class add dev $number_vl parent 1:1 classid 1:60 htb rate 200Kbit ceil 300Kbit burst 15k
    tc class add dev $number_vl parent 1:1 classid 1:50 htb rate 10Kbit ceil 4Mbit burst 15k

    tc qdisc add dev $number_vl parent 1:100 handle 100: sfq perturb 10
    tc qdisc add dev $number_vl parent 1:90 handle 90: sfq perturb 10
    tc qdisc add dev $number_vl parent 1:80 handle 80: sfq perturb 10
    tc qdisc add dev $number_vl parent 1:70 handle 70: sfq perturb 10
    tc qdisc add dev $number_vl parent 1:60 handle 60: sfq perturb 10
    tc qdisc add dev $number_vl parent 1:50 handle 50: sfq perturb 10
    
    tc filter add dev $number_vl parent 1:0 protocol ip prio 7 handle 100 fw classid 1:100
    tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
    tc filter add dev $number_vl parent 1:0 protocol ip prio 2 handle 80 fw classid 1:80
    tc filter add dev $number_vl parent 1:0 protocol ip prio 3 handle 70 fw classid 1:70
    tc filter add dev $number_vl parent 1:0 protocol ip prio 4 handle 60 fw classid 1:60
    tc filter add dev $number_vl parent 1:0 protocol ip prio 6 handle 50 fw classid 1:50    
    done
    
   
    #512-4000 Это всем нашим юзерам
    for number_ost in `echo $NUMBERS_OST`
    do
    iptables -t mangle -A FORWARD -s $number_ost -o $inet -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 80
    iptables -t mangle -A FORWARD -i $inet -d $number_ost -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 80
    iptables -A FORWARD -s $number_ost -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_ost -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT
    #icmp
    iptables -A FORWARD -s $number_ost -o $inet -p icmp -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_ost -p icmp -j ACCEPT    

    #Между подсетями на 100
    iptables -t mangle -A FORWARD -i vlan3 -o vlan4 -j MARK --set-mark 100
    iptables -t mangle -A FORWARD -i vlan4 -o vlan3 -j MARK --set-mark 100
    
    #400-600
    for number_s in `echo $NUMBERS_S`
    do
    iptables -t mangle -A FORWARD -s $number_s -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 70
    iptables -t mangle -A FORWARD -i $inet -d $number_s -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 70
    iptables -A FORWARD -s $number_s -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_s -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -s $number_s -o $inet -p icmp -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_s -p icmp -j ACCEPT    
    done
     
    #200-300
    for number_min in `echo $NUMBERS_MIN`
    do
    iptables -t mangle -A FORWARD -s $number_min -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 60
    iptables -t mangle -A FORWARD -d $number_min -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 60
    iptables -A FORWARD -s $number_min -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_min -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -s $number_min -o $inet -p icmp -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_min -p icmp -j ACCEPT    
    done

    #3000-4000
    for number_max in `echo $NUMBERS_MAX`
    do
    iptables -t mangle -A FORWARD -s $number_max -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 90
    iptables -t mangle -A FORWARD -d $number_max -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 90
    iptables -A FORWARD -s $number_max -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_max -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT
    iptables -A FORWARD -s $number_max -o $inet -p icmp -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_max -p icmp -j ACCEPT    
    done

    #торрент юзеры
    for number_tor in `echo $NUMBERS_TOR`
    do
    iptables -t mangle -A FORWARD -s $number_tor -o $inet -j MARK --set-mark 50
    iptables -t mangle -A FORWARD -i $inet -d $number_tor -j MARK --set-mark 50
    iptables -A FORWARD -s $number_tor -o $inet -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_tor -j ACCEPT
    done
    
    #Режем исходящую
    tc qdisc del dev $inet root
    tc qdisc add dev $inet root handle 1: htb
    tc class add dev $inet parent 1: classid 1:1 htb rate 100Mbit
     
    tc class add dev $inet parent 1:1 classid 1:90 htb rate 3Mbit ceil 4Mbit burst 15k
    tc class add dev $inet parent 1:1 classid 1:80 htb rate 100Kbit ceil 4Mbit burst 15k
    tc class add dev $inet parent 1:1 classid 1:70 htb rate 400Kbit ceil 600Kbit burst 15k
    tc class add dev $inet parent 1:1 classid 1:60 htb rate 200Kbit ceil 300Kbit burst 15k
    tc class add dev $inet parent 1:1 classid 1:50 htb rate 10Kbit ceil 4Mbit burst 15k
    
    tc qdisc add dev $inet parent 1:80 handle 90: sfq perturb 10
    tc qdisc add dev $inet parent 1:80 handle 80: sfq perturb 10
    tc qdisc add dev $inet parent 1:70 handle 70: sfq perturb 10
    tc qdisc add dev $inet parent 1:60 handle 60: sfq perturb 10
    tc qdisc add dev $inet parent 1:50 handle 50: sfq perturb 10
    
    tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
    tc filter add dev $inet parent 1:0 protocol ip prio 2 handle 80 fw classid 1:80
    tc filter add dev $inet parent 1:0 protocol ip prio 3 handle 70 fw classid 1:70
    tc filter add dev $inet parent 1:0 protocol ip prio 4 handle 60 fw classid 1:60
    tc filter add dev $inet parent 1:0 protocol ip prio 6 handle 50 fw classid 1:50
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

128

--=XliN=-- пишет:

Вот начал набрасывать... дошел до TC и решил отдохнуть. Посмотрите, все ли верно
Куда и что надо дописать что бы я с дома имел доступ к серверу?

+ открыть спойлер
#!/bin/bash

IPT="/sbin/iptables"

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

echo "Starting IPv4 Firewall..."

# Скидываем все цепочки iptables
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Загружаем модули
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Интерфейс смотрящий в интернет
INET="ppp0"

# Разрешаем траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#Закрываем все цепочки
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Маскардинг в инет и локалку
$IPT --table nat --append POSTROUTING --out-interface vlan3 -j MASQUERADE
$IPT --table nat --append POSTROUTING --out-interface vlan4 -j MASQUERADE
$IPT --table nat --append POSTROUTING --out-interface ${INET} -j MASQUERADE

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Разрешаем локальный траффик для локальной сети
$IPT -A INPUT -i vlan3 -j ACCEPT
$IPT -A OUTPUT -o vlan3 -j ACCEPT

$IPT -A INPUT -i vlan4 -j ACCEPT
$IPT -A OUTPUT -o vlan4 -j ACCEPT

# ICMP Разрешаем пинг с интернета до сервера
$IPT -A INPUT -i ${INET} -p icmp -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p icmp -j ACCEPT

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем серверу DNS (tcp/udp)

$IPT -A INPUT -i ${INET} -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p udp --dport 53 -j ACCEPT

$IPT -A INPUT -i ${INET} -p tcp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o ${INET} -p tcp --dport 53 -j ACCEPT


# Разрешаем серверу http, https, ssh, ftp (открываем порты 80,443,21,22)
$IPT -A INPUT -i ${INET} -p tcp --destination-port 80 -j ACCEPT
$IPT -A INPUT -o ${INET} -p tcp --destination-port 443 -j ACCEPT
$IPT -A INPUT -i ${INET} -p tcp --destination-port 21 -j ACCEPT
$IPT -A INPUT -i ${INET} -p tcp --destination-port 22 -j ACCEPT

#Разрешаем гулять всем подсетям
$IPT -A FORWARD -i vlan4 -o vlan3 -j ACCEPT
$IPT -A FORWARD -i vlan3 -o vlan4 -j ACCEPT

#Разрешаем ICMP пакеты из vlan3, vlan4 в интернет
$IPT -A FORWARD -i ${INET} -o vlan3 -p icmp -j ACCEPT
$IPT -A FORWARD -i vlan3 -o ${INET} -p icmp -j ACCEPT

$IPT -A FORWARD -i ${INET} -o vlan4 -p icmp -j ACCEPT
$IPT -A FORWARD -i vlan4 -o ${INET} -p icmp -j ACCEPT

##############################################################################
#####################  Разрешаем  доступ в инет и в локалку ##################
##############################################################################

##############################################################################
##################### 192.168.1.0/24 #########################################
#### 50225 - АРМ ПФР
#### 50110,50025 - АРМ Страхователь
#### 3389 - Парус 8
#############################################################################

$IPT -A FORWARD -s 192.168.1.177 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.177 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.178 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.178 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.179 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.179 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.180 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.180 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.186 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.186 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.190 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.190 -p tcp -m multiport --sport 80,443,110,25,143,5190,21,50225,50110,50025,3389 -j ACCEPT

################## Компьютеры админов #######################################

$IPT -A FORWARD -s 192.168.1.173 -o ${INET} -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.173 -j ACCEPT

$IPT -A FORWARD -s 192.168.1.173 -o ${INET} -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.1.173 -j ACCEPT

##############################################################################

##############################################################################
##################### 192.168.3.0/24 #########################################
##############################################################################

$IPT -A FORWARD -s 192.168.3.10 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.10 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s 192.168.3.123 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.123 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.249 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.249 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.250 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.250 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.253 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.253 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.246 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.246 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.245 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.245 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

$IPT -A FORWARD -s  192.168.3.244 -o ${INET} -p tcp -m multiport --dport 80,443,110,25,143,5190,21 -j ACCEPT
$IPT -A FORWARD -i ${INET} -d 192.168.3.244 -p tcp -m multiport --sport 80,443,110,25,143,5190,21 -j ACCEPT

###############################################################################

Забудь)

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

129

Спасибо. Пока поработает старый скрипт. С 1 числа протестирую этот. Kettler, как всегда молоток.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

130 (30.03.2011 13:57:42 отредактировано Kettler)

--=XliN=-- пишет:

Спасибо. Пока поработает старый скрипт. С 1 числа протестирую этот.

Подправил ещё разок)

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

131

Kettler, А инет раздается как и там? Только на те IP которые я указал? Меня смущает строчки

#100-4000 Это всем нашим юзерам
iptables -t mangle -A FORWARD -s 192.168.1.0/24 -o $inet -j MARK --set-mark 80
iptables -t mangle -A FORWARD -i $inet -d 192.168.1.0/24 -j MARK --set-mark 80
iptables -A FORWARD -s 192.168.1.0/24 -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
iptables -A FORWARD -i $inet -d 192.168.1.0/24 -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT

iptables -t mangle -A FORWARD -s 192.168.3.0/24 -o $inet -j MARK --set-mark 80
iptables -t mangle -A FORWARD -i $inet -d 192.168.3.0/24 -j MARK --set-mark 80
iptables -A FORWARD -s 192.168.3.0/24 -o $inet -p tcp  -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
iptables -A FORWARD -i $inet -d 192.168.3.0/24 -p tcp  -m multiport --sport 80,443,110,25,143,5190 -j ACCEPT

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

132 (30.03.2011 17:14:47 отредактировано Kettler)

А надо ток по ип?
P.S подправил

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

133 (30.03.2011 18:36:08 отредактировано Kettler)

Xlin ещё
Можно торрент подстроить ток знать нужные порты и настроить клиента

#торрент юзеры
for number_tor in `echo $NUMBERS_TOR`
do
    iptables -t mangle -A FORWARD -s $number_tor -o $inet -j MARK --set-mark 50
    iptables -t mangle -A FORWARD -i $inet -d $number_tor -j MARK --set-mark 50
    iptables -A FORWARD -s $number_tor -o $inet -j ACCEPT
    iptables -A FORWARD -i $inet -d $number_tor -j ACCEPT

done

Просто щас у них полный доступ в инет.
А так главное балансировка пашет  smile

Ещё можно добавить ограничение количество соединений

iptables -A FORWARD -s $number_tor -p tcp -m connlimit --connlimit-above 5 --connlimit-mask 0 -j DROP

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

134

Kettler пишет:

#торрент юзеры
for number_tor in `echo $NUMBERS_TOR`

э... согласитесь... не тестировали?

 Консоль:
root@ksu:~# n="1 2 3 4 5 6 7 8 9"
root@ksu:~# for x in $n; do echo $x; done
1
2
3
4
5
6
7
8
9

взлетит... но немного не так ab
давайте так:

 Консоль:
root@ksu:~# n=10
root@ksu:~# for x in `seq $n`; do echo $x; done
1
2
3
4
5
6
7
8
9
10

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

135

DrBatty это просто добавок выше скрипту  smile

 Консоль:

xxxx@xxxx:/home$ sh test
vlan3
vlan4
vlan5
vlan6

xxxx@xxxx:/home$ cat test
#!/bin/bash
NUMBERS_TOR="vlan3 vlan4 vlan5 vlan6"
for number_tor in `echo $NUMBERS_TOR`
do
echo $number_tor
done

За пример спс)

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

136 (30.03.2011 19:35:10 отредактировано XliN)

Kettler пишет:

Просто щас у них полный доступ в инет.
А так главное балансировка пашет

Торент в топку.  :lol: Им пользоваться буду только я.

Вопрос. Балансировка работает я так понимаю потому что приоритет у торрента 6, а например у "насяльников" 1? И скорость упадет до 10 т.к. эта цифра прописана в правиле tc?

tc class add dev $number_vl parent 1:1 classid 1:50 htb rate 10Kbit ceil 4Mbit burst 15k

Получается до минимум отъедает?

Еще
   

#Кому необходим интернет на скорости 400 - 600
NUMBERS_S="192.168.1.175 192.168.1.176 192.168.1.177"

Они будут делить общую дырку 400-600 на всех, или каждый будут себе забирать с общего канала?

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

137 (30.03.2011 19:46:34 отредактировано Kettler)

На счёт торрентов ды) на счёт второго поидее каждому
Можешь сам поиграть со значениями если что уменьшай rate а ceil оставляй

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

138

Короче. Прокатит такое.  Я rate поставлю по минимум. Тогда чуваки с большим приоритетом смогут у них отбирать если что. Верно? wink

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

139

Ну приоритет чем ниже тем больше  wink  запомни.
Лан ушол разбираться с фильтрами u32 и хеш таблицами меня снова ждёт геморой  ac

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

140

Kettler пишет:

это просто добавок выше скрипту

ну в любом случае `echo "$xxx"` эквивалентно просто $xxx

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

141 (30.03.2011 20:02:35 отредактировано Kettler)

И ещё всё таки расставь приоритет на классы!
Например
tc class add dev $number_vl parent 1:1 classid 1:80 htb rate 512Kbit ceil 4Mbit prio 2 burst 15k
И запомни чем ниже тем выше приоритет и prio как говорят ток от 0-7

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

142

drBatty пишет:

ну в любом случае `echo "$xxx"` эквивалентно просто $xxx

Может быть я не могу писать скрипты поэтому как проще так делаю)

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

143

Kettler пишет:

Может быть я не могу писать скрипты поэтому как проще так делаю)

это с непривычки. очевидно, что $X проще.  ae

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

144

Kettler, пытаюсь разобраться в твоем скрипте, подскажи.
eth1 - это что за интерфейс?
eth0 - это как я понял локалка
ppp0 - это выход в инет

145 (01.04.2011 11:23:43 отредактировано Kettler)

eth1 - наш провайдер
ppp0 он предоставляет инет.

Держи подправил

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Маскардинг в инет и локалку
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#Разрешаем порты для l2tp
iptables -A INPUT -i eth1 -p udp --dport 1701 --sport 1701 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 1701 --dport 1701 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 500 --sport 500 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 47 --sport 47 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 47 --dport 17 -j ACCEPT

# разрешаем локальный траффик для loopback и внутренней сети
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

# ICMP разрешаем пинг с локальной сети провайдера до сервера
iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p icmp -j ACCEPT

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем ssh серверу
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport  22 -j ACCEPT

# Разрешаем dns серверу
iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp --dport 53 -j ACCEPT

#Разрешаем пинговать узлы интернета
iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p icmp -j ACCEPT

#Разрешаем серверу http и dydns
iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -j ACCEPT

#Разрешаем серверу ftp
iptables -A INPUT -i ppp0 -p tcp --sport 21 --dport 21 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 21 --dport 21 -j ACCEPT

#Ну а тут разрешаем пользователям внутренней сети доступ в инет и в локалку
iptables -A FORWARD -i eth0 -o ppp0 -p tcp -m multiport --dport 80,443,110,25,143,5190,20,21 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp -m multiport --sport 80,110,443,25,143,5190,20,21 -j ACCEPT

#Разрешаем пинговать узлы интернета
iptables -A FORWARD -i eth0 -o ppp0 -p icmp -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p icmp -j ACCEPT

#Бхгалтерия
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --dport 1024 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --sport 1024 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -p udp --dport 55777 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p udp --sport 55777 -j ACCEPT

#Порт маппинг radmin
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 4889 -j DNAT --to-destination 192.168.0.7:4889

iptables -A FORWARD -p tcp -s 192.168.0.7 --sport 4889 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.0.7 --dport 4889 -j ACCEPT
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

146

Вот отличная статья, сам пользовался. Она для ubuntu, но в дебиане аналогично делается smile
http://forum.ubuntu.ru/index.php?PHPSES … c=107492.0

Да хранит вас Ctrl+S!

147 (06.05.2011 13:10:05 отредактировано jacuba)

Всем добрый день.
Имеется 2 ПК с езернетами и gsm-модемом.
ПК объединены в сеть, на пк имеется 2 интерфейса eht1 и eth0, которые объединены в мост br0, помимо них в сети есть и други пк. Оба компьютера пингуются и сеть работает отлично.

Теперь я звоню с одного модема на другой(читать "с клиента на сервер") сервер принимает звонок с помощью mgetty и авторизует меня.
Теперь компьютеры находятся в локалке, используя ethernet-интерфейсы, и объединены через gsm-линию по ppp-интерфейсу.

Теперь я выдергиваю провод из сетевой карты клиента, то есть сервер подключен к локальной сети через езернет, а к нему подключен клиент через ppp. Каким образом мне сделать так, что бы клиент мог получить доступ к ресурсам сети, то есть что бы он ходил "прозрачно" в сеть?
Прочитав эту тему, кое что попробовал, но успеха не добился:

~ #export IPTABLES=/usr/sbin/iptables
~ # $IPTABLES -P INPUT ACCEPT
~ # $IPTABLES -F INPUT
~ # $IPTABLES -P OUTPUT ACCEPT
~ # $IPTABLES -F OUTPUT
~ # $IPTABLES -P FORWARD DROP
~ # $IPTABLES -F FORWARD
~ # $IPTABLES -t nat -F
~ # $IPTABLES -A FORWARD -i br0 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
~ # $IPTABLES -A FORWARD -i ppp0 -o br0 -j ACCEPT
~ # $IPTABLES -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Прошу помощи.

148 (27.05.2011 21:02:09 отредактировано zenon)

В размышлениях я чего-то, в общем как лучше?

-P INPUT DROP

или

-A INPUT -j DROP

.......
Дальше - открытие портов,: при политике: -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Лучше так:

-A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT

или так:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -i eth -j ACCEPT

Т.е. в принципе правила и так и так работают, но как лучше?

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

149

я бы сделал так:

 Консоль:
-P INPUT DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

150

Vadimsky, то же самое

-A INPUT -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -i eth -j ACCEPT

Внешне вроде работает одинакого, в чём подвох?

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