Роутер на Linux

Автор: kils Дата: 30.08.2007 14:36 Здраствуйте всем!
Для начала скажу я полный чайник в этом вопросе но очень хочу разобраться и понять что к чему!
установил дистрибутив fedora core 4 и хачу настроить роутер, купил книгу, но про роутинг мало что написано, а своими силами ничего не выходит!
подскажите пожалуйста что и где прописать чтобы подать интернет на компьютеры и настроить DHCP.

внутряняя сеть - 192.168.1.1
внешняя сеть - 192.168.0.1

буду очень благодарен за помощь или ссылку на нужный материал!
и ещё не знаю как прописать прописать route в автозапуск ((
Re: Роутер на Linux 31.08.2007 07:33INF[SZ] Данная тема с минимальными вариациями поднимается ежемесячно.

Воспользуйтесь поиском.
Re: Роутер на Linux 31.08.2007 07:34Seryi Выдалась свободная минута и для информации предлагаю следующий скрипт который реализует простейший роутер. Рассказал-бы и про настройку DHCP, Но боюсь увлечься темой и забыть что скоро пора домой Улыбка


# указываем где искать iptables
IPT="/sbin/iptables"
# в принципе разрешаем маршрутизацию
echo "1">/proc/sys/net/ipv4/ip_forward
# адрес интерфейса смотрящего внутрь Вашей сети
VNUTRADR="192.168.1.1"
# адрес интерфейса смотрящего наружу
VNESHADR="192.168.0.1"
# имя интерфейса смотрящего внутрь Вашей сети (у Вас может быть другое имя)
VNUTRIF="eth1"
# имя интерфейса смотрящего наружу (у Вас может быть другое имя)
VNESHIF="eth0"
# политики по умолчанию (ничего не пропускаем)
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
#
# разрешаем внутреннюю петлю
#
$IPT -A INPUT -d 127.0.0.1 -j ACCEPT
$IPT -A OUTPUT -s 127.0.0.1 -j ACCEPT
#
# разрешаем вход со стороны внутренней сети (потребуется для отправки запроса к DHCP)
#
$IPT -A INPUT -i $VNUTRIF -j ACCEPT
#
# разрешаем выход во внутреннюю сеть (потребуется для получения ответа от DHCP)
#
$IPT -A OUTPUT -o $VNUTRIF -j ACCEPT
#
# разрешаем продвижение пакетов предназначенных для выхода во внешнюю сеть
#
$IPT -A FORWARD -i $VNUTRIF -j ACCEPT
#
# разрешаем продвижение пакетов пришедших из внешней сети в ответ на запросы из внутренней сети
#
$IPT -A FORWARD -i $VNESHIF -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# делаем трансляцию исходящего адреса (если хотите, то можете использовать маскарадинг)
#
$IPT -t nat -A POSTROUTING -o $VNESHIF -j SNAT --to-source $VNESHADR

Дальше DHCP настраивается через конфигурационный файл.
Re: Роутер на Linux 31.08.2007 10:10kils # политики по умолчанию (ничего не пропускаем)
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

я может ступил где-то но на эти команды пишет не существует файла или директории !
Re: Роутер на Linux 01.09.2007 19:33Bircoph А эту команду вы указали:
IPT="/sbin/iptables"
?
Если да, тогда iptables у вас не установлен (что странно).
Да, и выполнять это всё нужно от рута.
Re: Роутер на Linux 04.09.2007 11:48kils от рута и выполняю! команду нет не писал!
делал все вроде по ткниге шаг за шагом но ничего не работает, внешка и внутренаая сеть друг друга не видят, а роут видит обе !
Re: Роутер на Linux 04.09.2007 13:08wusup >я может ступил где-то но на эти команды пишет не существует файла или директории !

Где-то ошибка, скорее всего в этой строке лишние пробелы IPT="/sbin/iptables".
Попробуйте писать без переменных:

---
sudo /sbin/iptables -P INPUT DROP
sudo /sbin/iptables -P OUTPUT DROP
sudo /sbin/iptables -P FORWARD DROP
---
, и т.д.
Re: Роутер на Linux 04.09.2007 13:41kils ура проходит пинг с внутренней сети на внешку (( но почему то роутер перестал видеть интернет ресурсы и с внутренней сети хоть пинг есть на внешку, но неполучается открыть папки на серверах внешней сети!

подскажете что к чему?
Re: Роутер на Linux 04.09.2007 13:51wusup А правила то какие?
Re: Роутер на Linux 04.09.2007 13:55kils IPT="/sbin/iptables"
echo "1">/proc/sys/net/ipv4/ip_forward
VNUTRADR="192.168.1.1"
VNESHADR="192.168.0.1"
VNUTRIF="eth1"
VNESHIF="eth0"
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -A INPUT -d 127.0.0.1 -j ACCEPT
$IPT -A OUTPUT -s 127.0.0.1 -j ACCEPT
$IPT -A INPUT -i $VNUTRIF -j ACCEPT
$IPT -A OUTPUT -o $VNUTRIF -j ACCEPT
$IPT -A FORWARD -i $VNUTRIF -j ACCEPT
$IPT -A FORWARD -i $VNESHIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A POSTROUTING -o $VNESHIF -j SNAT --to-source $VNESHADR

это правила какие прописывал!
и ещё не подскажете как мне все это поставить в автозапуск? или iptables не обнуляются при ребуте ?
Re: Роутер на Linux 06.09.2007 05:27Seryi Этот скрипт набросал я исходя из предположения что роутер это только роутер и не рабочая станция для выхода с него в интернет - поэтому политики по умолчанию для INPUT и OUTPUT прописаны как DROP.

Если очень хочется чтобы и роутер был как рабочая станция, то модифицируйте правила для OUTPUT и INPUT примерно следующим образом:

IPT="/sbin/iptables"
echo "1">/proc/sys/net/ipv4/ip_forward
VNUTRADR="192.168.1.1"
VNESHADR="192.168.0.1"
VNUTRIF="eth1"
VNESHIF="eth0"
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -A INPUT -d 127.0.0.1 -j ACCEPT
$IPT -A OUTPUT -s 127.0.0.1 -j ACCEPT
#
# это правило разрешает отправлять запросы в интернет от локальных процессов (например от браузера)
$IPT -A OUTPUT -o $VNESHIF -j ACCEPT
#
#
$IPT -A INPUT -i $VNUTRIF -j ACCEPT
#
# это правило разрешает локальным процессам (например браузеру) принимать из интернета ответы на отправленные запросы
$IPT -A INPUT -i $VNESHIF -m state --state ESTABLISHED,RELATED -j ACCEPT
#
#
$IPT -A OUTPUT -o $VNUTRIF -j ACCEPT
$IPT -A FORWARD -i $VNUTRIF -j ACCEPT
$IPT -A FORWARD -i $VNESHIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A POSTROUTING -o $VNESHIF -j SNAT --to-source $VNESHADR



Чтобы правила были в автозапуске введите после запуска всех правил следующую команду:

service iptables save
Re: Роутер на Linux 06.09.2007 17:22kils немножко не так! Роутер у меня не как рабочая станция, на нем я хочу настроить выход во внешнюю сеть, которая в свою очередь имеет gateway для выхода в интернет! Просто когда-что-то не работает я пингую все адреса (внутренние, внешние и на всякий случай интернет) с компьютеров внещней сети, внутренней и роутера.

С первого варианта настроек я получил пинг из внутренней сети к внешней, но никакого доступа к общим ресурсам мне это не дало! Я незнаю пока iptables до такой степени чтобы нормально настроить роутер, н омне бы пока хотябы без настроек безопасности сделать так, чтобы сети(внутреняя и внешняя) могли обмениваться данными и чтобы на внутренней сети у меня был интернет, через внешнюю ( точно могу сказать:
роутер внешней сети (он же дает интернет): 192.168.0.1
роутер внутренней сети: 192.168.0.148 (внешний ip); 192.168.5.1 (внутренний ip)

помогите нубу пожалуйста!
Re: Роутер на Linux 07.09.2007 05:42Seryi У вас такая сеть как я нарисовал?

(внутренняя сеть)-->(внутренний роутер)-->(внешняя сеть)-->(внешний роутер)-->(интернет)
Re: Роутер на Linux 07.09.2007 10:57kils да именно такая ))
Re: Роутер на Linux 10.09.2007 16:20kils возможно я что-то лишнего прописал или ещё чего, но почему-то нет доступа на ftp-сервер внешней сети(192.168.0.0) и к файлам выложенным в обищий доступ, если иду с внутренней(192.168.5.0), по началу небыло и доступа в интернет, но после включения маскарадинга интернет появился, а ftp до сих пор молчит!!

код такой:
*nat
:-PREROUTING ACCEPT [0:0]
:-POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Apr 26 13:03:17 2003
# Generated by iptables-save v1.2.7a on Sat Apr 26 13:03:17 2003

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j LOG --log-level 7
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT
-A FORWARD -s 168.192.1.0/24 -p icmp -i eth1 -j ACCEPT
-A FORWARD -d 168.192.1.0/24 -p icmp -o eth1 -j ACCEPT
-A FORWARD -s 168.192.1.0/24 -p udp -m udp --dport 53 -i eth1 -j ACCEPT
-A FORWARD -d 168.192.1.0/24 -p udp -m udp --sport 53 -o eth1 -j ACCEPT
-A FORWARD -s 168.192.1.0/24 -p tcp -m multiport --dports 20,21,25,80,110,8080 -i eth1 -j ACCEPT
-A FORWARD -d 168.192.1.0/24 -p tcp -m multiport --sports 20,21,25,80,110,8080 -o eth1 -j ACCEPT
-A FORWARD -s 168.192.1.0/24 -p ! icmp -m state --state INVALID -i eth1 -j DROP
-A FORWARD -d 168.192.1.0/24 -p ! icmp -m state --state INVALID -o eth1 -j DROP
-A FORWARD -s 168.192.1.0/24 -d 192.168.5.0/24 -i eth1 -j ACCEPT
-A FORWARD -d 168.192.1.0/24 -s 192.168.5.0/24 -o eth1 -j ACCEPT
-A FORWARD -d 168.192.1.0/24 -s 192.168.5.0/24 -i eth0 -j ACCEPT
-A FORWARD -s 168.192.1.0/24 -d 192.168.5.0/24 -o eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
COMMIT
Re: Роутер на Linux 13.09.2007 12:05Eraserus Почитайте про принципы работы ФТП...
самый простой вариант попробовать работать с ФТП в пассивном режиме, или подцеплять модули ядра для работы в активном режиме через маскарад... названия забыл но поиск рулит...
кажется так: ip_conntrack_ftp, ip_nat_ftp, если ошибся поправьте кто нибудь...
Re: Роутер на Linux 13.09.2007 12:08kils Eraserus писал(а):

> Почитайте про принципы работы ФТП...
> самый простой вариант попробовать работать с ФТП в пассивном
> режиме, или подцеплять модули ядра для работы в активном режиме
> через маскарад... названия забыл но поиск рулит...
> кажется так: ip_conntrack_ftp, ip_nat_ftp, если ошибся
> поправьте кто нибудь...

модули в системе активированы ! сперва ставил оба, пока оставил только ip_nat_ftp
Re: Роутер на Linux 13.09.2007 13:10anthony2005 Мне тоже нужно сделать на линуксе роутер.
Конфигурация такова:
внутренняя сеть - "серая", защищена программо-аппаратным криптошлюзом
два провайдера. разница в тарифных планах (ТП) и полосе пропускания.
ТП1: анлим, 256 кбит/с, + диапазон нетарифицируемых адресов.
ТП2: 10Гиг/мес предоплаченного трафика, 2048 кбит/с, все адреса тарифицирутся.
Необходимо, чтобы роутер "гнал" всё через ТП1 по "исчерпании" трафика в ТП2 и, разумеется, в любом случае, направленные на "нетарифицируемые" сети. Также необходимо, чтобы про "отключении" любого из каналов весь трафик направлялся в оставшуюся дырку.
Чем/как это реализовать под линукс?
Re: Роутер на Linux 13.09.2007 13:20BigAndy Скорее всего, вам подойдет iproute2, в частности tc.
Re: Роутер на Linux 13.09.2007 13:24anthony2005 BigAndy писал(а):
> Скорее всего, вам подойдет iproute2, в частности tc.
А где про него можно почитать по-русски?
RSS-материал