LINUX.ORG.RU
решено ФорумAdmin

живой шлюз centos

 ,


1

3

Всем привет. Поставили мне на днях задачку - собрать из старого хлама шлюз под линь, дабы поставить его в одной конторке. Со сборкой проблем особых не было - завелось без особых трудностей и плясок с бубном, но речь о другом. Дистру выбрал CentOS 6.6 и с установкой все прошло гладко :) В компе 2 сетевухи eth0 - получает от местного провайдера, ну и eth1 - пойдет на локалку. selinux - отключен. Конфиги для сетевух такие (ДХЦП убран сознательно):

DEVICE=eth0
HWADDR=48:02:2a:00:0b:9e
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
GATEWAY=192.168.1.1
IPADDR=192.168.1.3
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
DEVICE=eth1
HWADDR=00:50:22:a4:51:14
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.2
NETMASK=255.255.255.0
После долгих «мытарств» и ошибок, вернул конфиг iptables к дефолту:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Теперь собсно и проблема - опробовал уйму вариантов для iptables и конфигов сетевух, но вот заставить всё это работать как «транзит» для локалки - никак.... хотя понимаю, что «проблема» всего-то в 2 или 3 строчках... Вся эта конструкция будет прятать за собой виндовый серв (1С) и локалку из 30 машин... Кому не лень - помогите плиз разобраться с этим гемором

Для начала echo 1 > /proc/sys/net/ipv4/ip_forward

Black_Shadow ★★★★★
()

iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Black_Shadow ★★★★★
()

Пишу с телефона, работу правил проверить не могу.

Black_Shadow ★★★★★
()
Ответ на: комментарий от last_unit

Оно там так по дефолту в Centos и RedHat. Неразрешённые пакеты блокируются последним правилом

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

Спасибо за подсказки. echo 1 > /proc/sys/net/ipv4/ip_forward - было сделано в первую очередь. Пинги со шлюза «наружу» идут нормально. А вот такое - нет:

[root@192 sysconfig]# ping -I eth1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.10.2 eth2: 56(84) bytes of data.
From 192.168.10.2 icmp_seq=2 Destination Host Unreachable
From 192.168.10.2 icmp_seq=3 Destination Host Unreachable
From 192.168.10.2 icmp_seq=4 Destination Host Unreachable
From 192.168.10.2 icmp_seq=6 Destination Host Unreachable
From 192.168.10.2 icmp_seq=7 Destination Host Unreachable
From 192.168.10.2 icmp_seq=8 Destination Host Unreachable
.....
хотя:
[root@192 sysconfig]# ping -I eth0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.1.3 eth0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=47 time=86.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=47 time=85.9 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=47 time=85.3 ms
.....
Используя правила, что Вы дали, все должно работать, а нет... Наверное что-то с маршрутами....но выхлоп вроде нормальный
[root@192 sysconfig]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.10.0    *               255.255.255.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

WinFack
() автор топика
Ответ на: комментарий от WinFack

Замени

iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
на
iptables -I FORWARD -s 192.168.10.0/24 -j ACCEPT
Я перепутал сети.

Black_Shadow ★★★★★
()
Ответ на: комментарий от WinFack

И, да, тебе правильно сказали, ping -I eth0 8.8.8.8 работать не будет.

Black_Shadow ★★★★★
()

Это попробуй:

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.10.2 -j SNAT --to-source 192.168.1.3
INDIGO
()
Последнее исправление: INDIGO (всего исправлений: 1)

собрать <...> шлюз

Возможно, на софтороутере разумнее использовать не дистрибутив общего назначения, а спец. сборку. Например, http://vyos.net/wiki/User_Guide . Или какой-нибудь pfsense, если консоли боишься.

nbw ★★★
()
Ответ на: комментарий от nbw

За ссылку спасибо. Довольно-таки интересное решение.

WinFack
() автор топика

Что только не сделают, чтобы не юзать фряху.

sT331h0rs3 ★★★★★
()
Ответ на: Это попробуй: от INDIGO

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

DEVICE=eth0
HWADDR=48:02:2a:00:0b:9e
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
GATEWAY=192.168.1.1
IPADDR=192.168.1.3
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
DEVICE=eth1
HWADDR=00:50:22:a4:51:14
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
GATEWAY=192.168.1.3
IPADDR=192.168.10.2
NETMASK=255.255.255.0
конфиг iptables был приведен к следующему виду:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [15:1336]
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 53 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [8:687]
:POSTROUTING ACCEPT [4:476]
:OUTPUT ACCEPT [10:1999]
-A POSTROUTING -s 192.168.10.2 -j SNAT --to-source 192.168.1.3
COMMIT
Проблема в адресе шлюза для клиента?

WinFack
() автор топика
Ответ на: комментарий от WinFack

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [15:1336]

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

-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 53 -j ACCEPT

днс не только по tcp ходит

last_unit
()
Ответ на: комментарий от last_unit

Плюсую данного регистранта. Особенно насчет DNS - клиенты вообще как правило общаются с DNS-сервером по udp, а tcp используется для zone transfer

Pinkbyte ★★★★★
()
12 февраля 2015 г.
Ответ на: комментарий от Pinkbyte

Всем, кто откликнулся огромное спасибо! Оказалось, что и вторая карточка, которую я поставил для локалки - оказалась с глюками... заменил её + удалил и переделал файл с правилами и... моя связка заработала!! Еще раз спасибо за подсказки. Тему можно закрывать.

WinFack
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.