LinuxForum.Fans
Тема

прошу помощи со скриптом iptables для шлюза

Автор: Me_Shock 182 сообщений 27882 просмотров
#309193

kisil написал:
Мистика.
в Пн.(25.03.13) по результатам тщательной проверки отпишу. Спасибо огромное!
#309200

Лады. Будем ждать - будем посмотреть *YES*

#309929

kisil, перепутал даты(в этот Пн.), сегодня докопался до сути: Похоже что нельзя запускать выполнения этого скрипта удаленно (у меня через putty). т.е. он не весь выполняется. Запускаю непосредственно локально. Все норм.)

Попытался максимально упростить скрипт, сейчас он такой:

Показать
[console]#!/bin/bash
# ******************************************************************
#
TRUSTED_HOSTS="80.247.XX.XXX,109.202.X.XXX,192.168.0.65" # 1.imex 2.avantel 3.debug
MY_NETWORK="192.168.1.0/24" # My NetWork (eth1)
THIS_GW_IP="192.168.0.254" # this GateWay IP
DEFAULT_GW="192.168.0.210" # default gateway
EXT_PORTS="22,80,3389" # accessible WAN port
INT_PORTS="80,3128" # accessible LAN ports
IPT="/sbin/iptables" # iptables location
EXT_IF="eth0" # external WAN interface
INT_IF="eth1" # internal LAN interface
#
# *****************************************************************
$IPT -F # CLEAR ALL RULES
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP # SET POLICY TO DROP ALL
$IPT -P FORWARD DROP

# Accepts ALL established inbound connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Accepts ALL outbound traffic
$IPT -A OUTPUT -j ACCEPT

# ALLOW REMOTE CONNECT FOR TRUSTED HOSTS TO ALLOWED PORTS
$IPT -A INPUT -i $EXT_IF -p tcp -s $TRUSTED_HOSTS -m multiport --dport $EXT_PORTS -j ACCEPT


# AllOW PING
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
ip r a default via $DEFAULT_GW # addin default route
service networking stop && service networking start # restarting network
[/console]
но проблемы еще остались: из ЛС не идет пинг на дефолтный шлюз и нет интернетов. Сношу все через iptables -F и пинги и интернеты появляются.. Не пойму что не так..

#309934

Всё верно локалка не имеет доступ к шлюзу. Нужно типа так, но я просто не уверен что верно понял что где!

text
$IPT -A INPUT -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT
#309945

"kisil⇓" написал:
Всё верно локална не имеет доступ к шлюзу. Нужно типа так, но я просто не уверен что верно понял что где!
Похоже Вы все правильно поняли. Добавил
text
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT

и вдруг(думаю все-таки совпадение) появилась какая то странность: Ооооочень долгий отклик на команды пинг ~ 5 сек и отмена пинга ~ 3 сек. (сами задержки обычные), типа сеть стала тормозить, запускал утилиту top - проц. 99% idle. Не знаете что может быть?

#309947

Пробовал все -F и перезагружать, но тормоза остались.. fak! кажется я никуда не лез и все-равно что-то сломал.. *WALL*

#309959

Отсутствие доступа к ДНС серверу.

#309960

Так зелейте тот конфиг который у вас есть с тем правилом что я писал и сюда выложите

text
iptables -S
iptables -t nat -S
ifconfig
#309963
"kisil⇓" написал:
Так зелейте тот конфиг который у вас есть с тем правилом что я  писал и сюда выложите

/root/iptables.rotor.rules

Показать
text
#!/bin/bash
# ******************************************************************
#
TRUSTED_HOSTS="80.247.XX.XXX,109.202.X.XXX,192.168.0.65"        # 1.imex 2.avantel 3.debug
MY_NETWORK="192.168.1.0/24"     # My NetWork (eth1)
THIS_GW_IP="192.168.0.254"      # this GateWay IP
DEFAULT_GW="192.168.0.210"      # default gateway
EXT_PORTS="22,80,3389"          # accessible WAN port
INT_PORTS="80,3128"             # accessible LAN ports
IPT="/sbin/iptables"            # iptables location
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
#
# *****************************************************************
$IPT -F                         # CLEAR ALL RULES
#
$IPT -P INPUT   DROP
$IPT -P OUTPUT  DROP            # SET POLICY TO DROP ALL
$IPT -P FORWARD DROP
#
# Accepts ALL established inbound connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Accepts ALL outbound traffic
$IPT -A OUTPUT -j ACCEPT
#
# ALLOW REMOTE CONNECT FOR TRUSTED HOSTS TO ALLOWED PORTS
$IPT -A INPUT -i $EXT_IF -p tcp -s $TRUSTED_HOSTS -m multiport --dport $EXT_PORTS -j ACCEPT
#
# ALLOW LOCAL CONNECT FOR TO ALLOWED INTERNAL PORTS
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT
#
# AllOW PING
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
ip r a default via $DEFAULT_GW                          # addin default route
service networking stop && service networking start     # restarting network

вывод iptables (но я же сбросил на дефолтные..)

Показать
[console]root@gw5:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
root@gw5:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
root@gw5:~# iptables -t nat -S
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
root@gw5:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
#
auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.210
dns-nameservers 192.168.0.5 192.168.0.6
dns-search rotor.ru # эм, это не настоящий ротор.ру, просто кто-то не в курсе про TLD и где их применяют..
#
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
[/console]

#309989

И что при таком фаерволе, доступ к серваку из локалки есть

text
root@gw5:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
#310127

"kisil⇓" написал:
Отсутствие доступа к ДНС серверу.
DNS виделся, но внутри ЛС вывод пингов не лагал, а в глоб тормоза 5 сек на каждый вывод отвеа, при обычном норм. пинге. Сегодня оно само собой прошло.
#310129

"kisil⇓" написал:
И что при таком фаерволе, доступ к серваку из локалки есть
при таком отсутствии))) файрвола доступ к локалке есть, а вот из локалки - клиент не может пинговать ни dns-nameservers, ни default gw, ни Интернет! И при этом интернет таки есть, трафик сквидом таки считается и клиент отрубается при достижении квоты.. толилыжи не едут, толи я *WALL*
сеть этого шлюза gw5:
Показать
[console]root@gw5:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
#
auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.210 # этим шлюзом gw5 шлюз и инет днсы пингуется норм.
dns-nameservers 192.168.0.5 192.168.0.6
dns-search rotor.ru
#
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
root@gw5:~# ip r
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.254
default via 192.168.0.210 dev eth0
root@gw5:~# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
localnet * 255.255.255.0 U 0 0 0 eth0
default gw.thiscompany.ru 0.0.0.0 UG 0 0 0 eth0

[/console]виндовый клиент подключен в gw5 в eth1:


#310131

"kisil⇓" написал:
И что при таком фаерволе, доступ к серваку из локалки есть
при таком отсутствие))) файрвола со шлюза LAN и ее клиенты пингуются, а также пингуется шлюз_192.168.0.210 шлюза_gw5(тот что мы настраиваем) и dns-ы и интернеты т.е. с сетью 192.168.0.0/24 на eth0 проблем нет. можно обозвать ее WAN.
а вот в обратку от клиентов подключеных в сеть 192.168.1.0/24 (LAN) пинги в глоб не идут, и даже на default gw и dns-ы (((
#310158

Я совсем запуталса чесно говоря. Можете рисунок сварганить вашей сети, тогда может помогу.

#310180

"kisil⇓" написал:
Можете рисунок сварганить вашей сети
да я уже сам запутался! *CRAZY* *ROFL*
вобщем если коротко: Шлюз который мы тут нстраиваем - вообще не для этой сети. Его тут быть не должно, но приходится изголяться из-за невозможности на долго остановить эти ихние богадельни!
мое творчество:
Показать
#310186

Какую машыну настраиваем, соответственно рисунку.??

#310191

"kisil⇓" написал:
И что при таком фаерволе, доступ к серваку из локалки есть
нет, пинги не ходят. Интернеты есть пока сквид работает. гашу сквид, интернеты встают. в глоб. пинги не ходят и в сеть 192.168.0.0/24 тоже не ходят.( Мож что с маршрутизацией?)
вывод netstat -r и ip r a
Показать
text
root@gw5:~# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 eth1
localnet        *               255.255.255.0   U         0 0          0 eth0
default         gw.my_company.ru 0.0.0.0         UG        0 0          0 eth0
root@gw5:~# ip r
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.1
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.254
default via 192.168.0.210 dev eth0

Dzhoni Lohanta Esta Mu Loka What The Fuck?(

#310193

Так настраиваем машыну Gw5?

#310195

"kisil⇓" написал:
Так настраиваем машыну Gw5?
ДА ДА ДА, от локалки компании мне нужен только интернет и он в ней(GW5) есть. я как бы не акцентировал на этом внимание, т.к. во всех выводах команд консоли есть имя gw5)
зы: я уже всех достал с этим шлюзом и Вас тоже, скоро меня тут забанят xD
#310196

Вот теперь понятно.
1. На шлюзе Gw5 интернет есть. Так?
2. На нём ещё есть сквид? Значит сквид раздаёт инет.
3. И нужно чтобы кроме интернета клиенты из сети 192.168.1.0 ходили в 192.168.0.0?
4. Нужно также чтобы клиенти из 192.168.1.0 конектились к своему шлюзу gw5 по отдельных портах.
Покажыте ещё раз ваш конфиг iptables. И ещё форвардинг пакетов включён на gw5

text
echo 1 > /proc/sys/net/ipv4/ip_forward
Войдите или зарегистрируйтесь, чтобы ответить.