1 (26.02.2013 17:17:51 отредактировано tw1ns)

Здравствуйте. Столкнулся с такой проблемой:
На сервере настроен интернет шлюз, который раздает в локальную сеть. Доступ к интернету по eth0, локалка eth1 на роутер.  Интернет в локальную сеть при данной настройке раздается, но сам сервер без доступа в интернет. Никак не могу понять где копать...
Привожу данные:

/etc/network/interfaces

+ открыть спойлер

 Консоль:
root@Test:/home/test1# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# eth0
auto eth0
iface eth0 inet static
address 94.137.229.178
netmask 255.255.255.224
gateway 94.137.229.161

# eth1 смотрит в вашу домашнюю локалку
auto eth1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255

ifconfig

+ открыть спойлер

 Консоль:

root@Test:/home/test1# ifconfig
eth0      Link encap:Ethernet  HWaddr 64:70:02:04:91:dd
          inet addr:94.137.229.178  Bcast:94.137.229.191  Mask:255.255.255.224
          inet6 addr: fe80::6670:2ff:fe04:91dd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:39276 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21712 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:36993936 (35.2 MiB)  TX bytes:2257520 (2.1 MiB)
          Interrupt:19 Base address:0xec00

eth1      Link encap:Ethernet  HWaddr 48:5b:39:c4:e9:7c
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::4a5b:39ff:fec4:e97c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21031 errors:0 dropped:0 overruns:0 frame:0
          TX packets:38061 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2194738 (2.0 MiB)  TX bytes:36899254 (35.1 MiB)
          Interrupt:27 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:36085 (35.2 KiB)  TX bytes:36085 (35.2 KiB)

2 (26.02.2013 17:12:43 отредактировано Linux777)

у тебя два шлюза в LAN и WAN? по мне кажется шлюз должен быть только на интерфейсе, который смотрит в public (wan)? И еще уточнения, что используются в качестве прокси-сервера? squid?

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

3

Насчет шлюза - это просто я забыл удалить из eth1...там его нет. Прокси-сервер не используется. В iptables прописано только

iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

4 (26.02.2013 17:50:28 отредактировано Linux777)

tw1ns пишет:

асчет шлюза - это просто я забыл удалить из eth1...там его нет. Прокси-сервер не используется. В iptables прописано только

iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

это ты влючил нат. но этого недостаточно. надо разрешить ответы из внешней сети (wan) в локалку и обратно из локалки в наружу. надо такую команду вбить.
Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

и еще такую надо разрешить из сети наружу, чтобы пакеты ходили.
Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

еще разреши ходить пакетам на на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

попробуй сделай. и пропингуй например гугл днс. 8.8.8.8 с сервера. думаю должно помочь, потому что однозначно надо в iptables разрешить ответы из вне и обратно, а судя по всему у тебя этого нет.

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

5

Спасибо за ответ- но не заработало =) хотя днс гугла пингуется...

Route -n

+ открыть спойлер

 Консоль:

root@Test:/home/test# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
94.137.229.160  0.0.0.0         255.255.255.224 U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         94.137.229.161  0.0.0.0         UG    0      0        0 eth0

6 (26.02.2013 17:52:12 отредактировано Linux777)

я подправил пост. сделай обратные ответы. а вообще немного подумать надо, и понять полную структуру сети. есть сервер, выполняющий роль прокси, с одной стороны он смотрит в wan, с другой в локалку. и между ними нет никаких железок?

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

7 (26.02.2013 18:15:58 отредактировано tw1ns)

Iptables -l -n -v

+ открыть спойлер

 Консоль:

root@Test:/home/test# iptables -L -n -v
Chain INPUT (policy ACCEPT 378 packets, 37826 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
  608  132K ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0
  624  107K ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 323 packets, 37437 bytes)
pkts bytes target     prot opt in     out     source               destination


сам собственно

+ открыть спойлер

 Консоль:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# включаем nat:
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT


# Эту строчку удалять нельзя:
exit 0

Итог тот же- на сервере нет интернета, на раздаче -есть...не понимаю...
Железок нет- у сервера одна сетевая поднимает интернет, вторая раздаёт. Больше ничего нет. Интернет раздаётся- на самом сервере его нет.

8 (26.02.2013 18:39:56 отредактировано Linux777)

кажется нашел ошибку в таблице маршрутизации route -n. глянь адрес ты написал 160. а надо 161. а еще у тебя нет сети в /etc/network/interfaces для etho

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

9

Интерфейсы выложил в первом посте. Откуда взялся 160- реально понять не могу- нигде эту цифру не забивал. Проверил ша ещё раз- стоит 160. Как изменить её? и где?)

10

94.137.229.160 - это шлюз провайдера, судя по route -n и вашему ip.
Статью - читали?

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

11

Ох...почитал Ваши статьи- сделал всё по http://linuxforum.ru/viewtopic.php?pid=176106#p176106. Привожу всё, что есть сейчас- проблема осталась та же.

ip r

+ открыть спойлер

 Консоль:

root@Test:/home/test# ip r
94.137.229.160/27 dev eth0  proto kernel  scope link  src 94.137.229.178
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.1
default via 94.137.229.161 dev eth0


route -n

+ открыть спойлер

 Консоль:

root@Test:/home/test# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
94.137.229.160  0.0.0.0         255.255.255.224 U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         94.137.229.161  0.0.0.0         UG    0      0        0 eth0


ifconfig

+ открыть спойлер

 Консоль:

root@Test:/home/test# ifconfig
eth0      Link encap:Ethernet  HWaddr 64:70:02:04:91:dd
          inet addr:94.137.229.178  Bcast:94.137.229.191  Mask:255.255.255.224
          inet6 addr: fe80::6670:2ff:fe04:91dd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1551 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1498 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:335710 (327.8 KiB)  TX bytes:213688 (208.6 KiB)
          Interrupt:19 Base address:0xec00

eth1      Link encap:Ethernet  HWaddr 48:5b:39:c4:e9:7c
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::4a5b:39ff:fec4:e97c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1306 errors:0 dropped:0 overruns:0 frame:0
          TX packets:934 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:166356 (162.4 KiB)  TX bytes:224971 (219.6 KiB)
          Interrupt:27 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:178 errors:0 dropped:0 overruns:0 frame:0
          TX packets:178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:27405 (26.7 KiB)  TX bytes:27405 (26.7 KiB)


rc.local

+ открыть спойлер

 Консоль:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh /home/test/firewall.sh
# Эту строчку удалять нельзя:
exit 0


/home/test/firewall.sh

+ открыть спойлер

 Консоль:

#!/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

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth0

# Локальная сеть
export LAN=eth1
export LAN_IP_RANGE=192.168.10.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

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

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

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

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

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

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE
# Далее дано как пример открытие портов извне:
# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 49152:65535 -j ACCEPT

# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 80 -j ACCEPT

# Открытие портов для игровых серверов
$IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT

# Открытие порта для голосового сервера Team Speak
$IPT -A INPUT -i $WAN -p tcp --dport 9987 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 9987 -j ACCEPT
# **********************************************************************

# Вывод информации о состоянии таблиц.
route -n
$IPT -L
$IPT -L -v -n
$IPT -L -v -n -t nat

/etc/network/interfaces

+ открыть спойлер

 Консоль:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# eth0
auto eth0
iface eth0 inet static
address 94.137.229.178
netmask 255.255.255.224
gateway 94.137.229.161

# eth1 смотрит в вашу домашнюю локалку
auto eth1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255


Всё айпишники забиты верно.

12

Сервер без доступа в Инет?

Пинги с сервака до шлюза идут: ping 94.137.229.161?
Пинги с сервака до ДНС серваков идут: ping 8.8.8.8?
ДНС работает: ping ya.ru?

13

Всем спасибо- все извините. Просто поспешил- надо было нормально вчитываться. Поднял заного все интерфейсы, заного настроил iptables - всё сразу заработало. Ещё раз всем спасибо.

14

ну, вот. поздравляю! да читать надо внимательно.

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

15

tw1ns пишет:

Всем спасибо- все извините. Просто поспешил- надо было нормально вчитываться. Поднял заного все интерфейсы, заного настроил iptables - всё сразу заработало. Ещё раз всем спасибо.

Радует что мануал ещё в ходу, приму во внимание критику, если есть, только пожалуйста тут, чтобы не затерялось...

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