Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Настрока NAT.  (Прочитано 21382 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
alexey
Участник

ua
Offline Offline
Пол: Мужской

« : 03-10-2010 22:21 » 

Вот такая на первый взляд простая проблема:
Надо насторить NAT на сервере, который имеет выход в инет, чтобы клиенты сети тоже получили выход в инет.
На сервере есть сетевая карта через которую сервер соеденён с локальной сетью и usb-модем для выхода в инетернет.
Всего получается два интерфейса:

eth0 - локальная сеть. Статический адресс.
eth1 - интернет. Имеет динамический адресс выдаваемый провайдером через DHCP.

Находил много блогов как настроить NAT под Linux, но не для статического адресса.
Как мне проще поступить? Вообще ли решаемая моя проблема?
Записан
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #1 : 03-10-2010 22:36 » 

Ой опечатался. НЕ для статического, а для динамического.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 04-10-2010 03:34 » 

Для начала, открой секрет — с чем мы имеем дело? Треба полное название дистрибутива.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #3 : 04-10-2010 11:08 » 

Дистрибутив Ubuntu 10.04. А разве есть разница?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 04-10-2010 13:57 » 

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

Могу предложить дефолтовый конфиг для RH (RHEL 5 и FC 10-13). Нужен?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #5 : 04-10-2010 16:51 » 

Ну не помешает)

Если подойдёт под Ubuntu(в моём случае) так вообще замечательно.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 04-10-2010 17:47 » 

Вот такой пример, немного подправленный мной (оригинал не сохранился):

Код:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
#-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Тут и файрвол для Линукс-роутера, и исходящий NAT для локальной сети. Я исходил из предположений, что eth0 - внешний интерфейс, eth1 - внутренний, 192.168.0.0/24 - локальная сеть.

Обрати внимание на закомментированную строку - такой строкой можно открыть наружу отдельные порты на роутере, если необходимо.

Разрешение форвардинга пакетов между интерфейсами - см. как настраивается твой дистрибутив - я с Убунтой не работал. Единовременно (без сохранения состояния между перезагрузками) это можно сделать так:

echo 1 > /proc/sys/net/ipv4/ip_forward
« Последнее редактирование: 04-10-2010 17:50 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 04-10-2010 17:54 » 

В убунте наверно нужно будет чуть доработать данный скрипт и в скрипты поднятия сети добавить строчку
Код:
iptables-restore <this_file.conf

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

PS. Посмотрел как я сделал. В каталог /etc/network/if-up.d добавил скриптовый файл iptables
Код:
#!/bin/sh
iptables-restore </etc/firewall.conf

А уже в сам файл /etc/firewall.conf можно записать те настройки, что RXL привел.
« Последнее редактирование: 04-10-2010 22:58 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #8 : 04-10-2010 21:27 » new

спасибо за скрипт и за спасибо за исчерпывающие объяснения.

сейчас попробую это применить.
Записан
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #9 : 04-10-2010 23:11 » 

чё то так просто работать не хочет. под рутом сделал как всё выше сказано.

чё мудрил в конфиге на один моент азработало, кодга подключил в место роутера один колмпьютер.
потом перестало...

я не до конца понимаю как работает NAT...
В сетевых настроках компьютеров что подключены к роутеру надо явно указывать адресса или DHCP хватит?
Записан
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #10 : 04-10-2010 23:23 » 

Получилось на Ура когда я подключаю только один компьютер на прямую к серверу и задаю вручную  ip-адреса.
А если подключить через роутер чёто не чего не происходит.
По умолчанию компьютеры получают адрес по DHCP.

Может дело в этом?
Записан
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #11 : 05-10-2010 00:07 » 

всё заработало!
аж самому не верится Действовать надо быстро
в качестве шлюза явно указал серев а не роутер и все клиенты сети получили доступ в инет.

спасибо ещё за толковую помощь.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 05-10-2010 03:16 » 

alexey, логически надо рассуждать, а не гадать на кофейной гуще. Тогда таких казусов не будет. DHCP можно и на Linux поднять - вполне хорошо работает - проверено.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #13 : 05-10-2010 13:32 » 

RXL, ну в моём случае не подойдет. сервер это просто десктоп раздающий интернет и его надо будет тоже надо будет перезагружать.
тут функции DHCP может выполнять только роутер.
я поступил чуть иначе и настроил DHCP сервер роутера так что бі он в качестве основного шлюза указывал сервер с ubuntu.
Вроде пока всё работает коректно...
Записан
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #14 : 05-10-2010 13:35 » 

alexey, забэкапь конфиги!
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
alexey
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #15 : 05-10-2010 15:28 » 

ну это понятное дело.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines