Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Ubuntu маршрутизатор  (Прочитано 17514 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Ubuntu маршрутизатор
« : 08 Марта 2010, 21:01:04 »
Еще 2 дня назад вообще не пользовался линуксом, теперь приперло. 2 суток читал различные статьи и мануалы так ничего и не помогло, думаю из-за не знания линукса. Распишите, пожалуйста, подробно прям с самого начала как организовать маршрутизатор на ubuntu. За 2 дня получилось сделать чтобы инет был на самом сервере, но из локальной сети так и не получилось попасть в инет. Собственно есть системник, на котором стоит ubuntu 9.10 server и 2 сетевухи. DHCP сервер мне не нужен, на локальных компах пока вручную буду прописывать настройки. Я так понимаю мне теперь NAT осталось организовать, но при install bind9 пишет, что такого нет дистрибутива. В общем чем дальше заняться то?

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #2 : 08 Марта 2010, 21:19:34 »
У меня подключение не через PPPoE, а просто вручную прописанные Ip и шлюз с DNS... и что именно поменять для моего случая я не знаю. К тому же постоянно пишет, что не получается найти пакеты для установки. Так понимаю дистрибутивы на диске должны быть, но их нет, но могу из инета сразу поставить наверно если подскажите как, раз инет то уже есть.
« Последнее редактирование: 08 Марта 2010, 21:26:27 от konst_rzn »

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #3 : 08 Марта 2010, 21:41:22 »
Какая разница -- какой интерфейс? В чем конкретно проблема то?

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #4 : 08 Марта 2010, 22:40:26 »
В общем чем дальше заняться то?
Написать какие даны исходные данные. (провайдер, способ выхода в инет, локальная сеть)
Что уже сделано (с листингом настроек)
На чем конкретно застряли?

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #5 : 08 Марта 2010, 22:41:07 »
1. не могу установить firestarter
2. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE здесь вместо ppp0 надо поставить eth1?

eth0 смотрит в инет, там для работы всего лишь шлюз и dns надо было прописать. инет работает. eth1 в локалку, а что дальше сделать просто не знаю
« Последнее редактирование: 08 Марта 2010, 22:43:28 от konst_rzn »

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #6 : 08 Марта 2010, 22:42:35 »
1. не нужен
2. здесь твой интерфейс, который смотрит в инет

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #7 : 08 Марта 2010, 22:44:14 »
если он не нужен, то как мне сделать инет на локальных машинах?

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #8 : 08 Марта 2010, 22:44:24 »
1. не могу установить firestarter
sudo apt-get update & sudo apt-get install firestartet
Цитировать
2. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE здесь вместо ppp0 надо поставить eth1?
Не корректно задан вопрос. Если по eth1 получаете инет, то да.

Пользователь решил продолжить мысль 08 Марта 2010, 22:46:08:
если он не нужен, то как мне сделать инет на локальных машинах?
Телепатствую кашу у вас в голове после прочтения кучи инструкций.
Сами пишете что NAT поднять хотите. зачем firestarter еще?
« Последнее редактирование: 08 Марта 2010, 22:46:08 от sht0rm »

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #9 : 08 Марта 2010, 22:54:18 »
потому что посоветовали прочитать https://help.ubuntu.ru/wiki/раздача_интернета_в_локалную_сеть а там про firestarter говорят... в голове и каша и черт знает что уже... поэтому и прошу помочь подробно рассказав как настроить этот маршрутизатор... полагаю, что лучше сначала, хотя инет уже работает через eth0
Насоздавал уже кучу всяких скриптов, полагаю уже пора переустановить эту ubuntu и поспать... и так, как с самого начала мой системник превратить в роутер с шейпером? что скачать, что установить и как настроить? Инет начинает работать если прописать ip 172.16.16.10 маска 255.255.255.0 шлюз 172.16.16.1 и dns 172.16.16.1 на eth0... к eth1 подключены локальные компьютеры, для которых необходимо организовать выход в инет через этот маршрутизатор с шейпером. Локальные адреса прописываются в ручную 172.16.34.1-172.16.34.254 в качестве шлюза и dns должен быть 172.16.34.1 (это будет мой маршрутизатор). На маршрутизаторе должен быть nat, а не proxy
« Последнее редактирование: 08 Марта 2010, 23:15:26 от konst_rzn »

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Ubuntu маршрутизатор
« Ответ #10 : 09 Марта 2010, 09:46:04 »
формально маршрутизатор - некое устройство, отвечающее за определение пути передачи данных и непосредственно передачу данных по этому пути. Маршрутизация может быть статическая - задается администратором, и динамическая - на базе какого либо протокола маршрутизации - rip, ospf, bgp и т.д. Для того что бы в сети устройство работало в сети, у него должны быть сконфигурированы сетевые интерфейсы, настроена таблица маршрутизации и сконфигурированы сетевые службы - dns, dhcp клиенты и т.д.

этапы построения Интернет шлюза:
настройка сетевых интерфейсов и указание DNS сервера
$ sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback

# Wan
auto eth0
iface eth0 inet static
address 172.16.16.10
netmask 255.255.0.0
gateway 172.16.16.1

#LAN
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

$ sudo nano /etc/resolv.conf
nameserver 172.16.16.1
применение изменений:
$ sudo /etc/init.d/networking restart

Включение ip forwarding и настройка сетевой трансляции адресов (представляет собой изменение ip адресов транзитных пакетов, к маршрутизации отношения не имеет)

$ sudo nano /etc/fw
#!/bin/bash
#cat /etc/fw

# Required to enable IPv4 forwarding.
# Redhat users can try setting FORWARD_IPV4 in /etc/sysconfig/network to true
# Alternatively, it can be set in /etc/sysctl.conf
echo "1" > /proc/sys/net/ipv4/ip_forward

# This enables dynamic address hacking.
# This may help if you have a dynamic IP address \(e.g. slip, ppp, dhcp\).
# echo "1" > /proc/sys/net/ipv4/ip_dynaddr

# This enables SYN flood protection.
# The SYN cookies activation allows your system to accept an unlimited
# number of TCP connections while still trying to give reasonable
# service during a denial of service attack.
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#
# flush all the rules in the filter and nat tables.
#
iptables  -F -v
iptables  -t nat -F -v
iptables  -t mangle -F -v
#
# erase all chains that's not default in filter and nat table.
#
iptables -X -v
iptables -t nat -X -v
iptables -t mangle -X -v
#rc.flush-iprables end

#Интерфейсы
WAN=eth0
#WAN_VPN=ppp999
#VPN_IP="`ifconfig $WAN_VPN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $8}' | sed -e 's/addr://'`"
LAN=eth1

WAN_IP="`ifconfig $WAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"
LAN_IP="`ifconfig $LAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"

#SQUID_IP=$LAN_IP
#SQUID_PORT="`grep transparent /etc/squid/squid.conf | awk '{print $2}'`"

#INT_NET=192.168.1.0/24
INT_NET="`ip addr show $LAN | grep inet | awk '{print $2}'`"

#Virtual Server - примеры DNAT
#http web server
# iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $WAN -j ACCEPT -v
# iptables -A PREROUTING -t nat -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 -v

#DC
# iptables -t nat -A PREROUTING -p tcp --dport 2000 -j DNAT --to-destination 192.168.1.3
# iptables -t nat -A PREROUTING -p udp --dport 2000 -j DNAT --to-destination 192.168.1.3

# google dns
# iptables -A PREROUTING -s $INT_NET -t nat -i $LAN -p tcp --dport 53 -j DNAT --to 8.8.8.8:53 -v
# iptables -A PREROUTING -s $INT_NET -t nat -i $LAN -p udp --dport 53 -j DNAT --to 8.8.8.8:53 -v #

#transparent proxy
# echo "[+] Transparent proxy"
# iptables -t nat -A PREROUTING -i $LAN -d ! $INT_NET -m iprange --src-range 192.168.1.2-192.168.1.254 \
# -p tcp -m multiport --dport 80,8080 -j DNAT --to $SQUID_IP:$SQUID_PORT -v

# Защита цепочки  Forward
iptables -P FORWARD DROP -v
iptables -F FORWARD -v
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -v
iptables -A FORWARD -m conntrack --ctstate NEW -i $LAN -j ACCEPT -v
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT -v

# выбираем SNAT или MASQUERADE
iptables -t nat -F POSTROUTING -v
#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN -j MASQUERADE -v
iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN -j SNAT --to-source $WAN_IP -v

# Если используется  VPN для доступа в Интернет
#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN_VPN -j SNAT --to-source $VPN_IP -v
#или
#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN_VPN -j MASQUERADE -v

# Incorrect MTU Value
iptables -A FORWARD -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Скрипту право на исполнение
$ sudo chmod +x /etc/fw

добавление /etc/fw в автозагрузку, 3 варианта

1) добавить в /etc/rc.local до exit 0
/etc/fw
2) написать скрипт инициализации

#!/bin/bash
#cat /etc/init.d/iptables
IPT="/sbin/iptables"
START="/bin/bash"
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
NAME="$0"
N="/etc/init.d/$NAME"

if [ ! -f /etc/fw ]; then
echo "/etc/fw does not exist"
exit 0
fi

case "$1" in
start|restart)
echo -n "Starting up netfilter firewall..."

$START /etc/fw

echo "done."
;;
stop)
$IPT -t filter -F
$IPT -t filter -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
echo "done."
exit 0;
;;
*)
echo "Usage: $N {start|restart|stop}" >&2
exit 1
;;
esac

exit 0

и добавить в автозагрузку

$ sudo update-rc.d iptables defaults

3) добавить директиву в /etc/network/interfaces

Цитировать
#LAN
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
post-up /etc/fw

Установка DNS и DHCP серверов - по вкусу и задачам

$ sudo aptitude update && sudo aptitude  install dnsmasq

$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.bak
$ sudo nano /etc/dnsmasq.conf
Цитировать
interface=eth1
dhcp-range=192.168.1.2,192.168.1.254,12h
dhcp-option=3,192.168.1.1

$ sudo /etc/init.d/dnsmasq restart

Оффлайн konst_rzn

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Ubuntu маршрутизатор
« Ответ #11 : 09 Марта 2010, 12:37:43 »
ааааааааааааааааааааааааааа ))))) Заработало!!!! как насчет того, что пинги увеличились? с 2 мс до 7, это нормально???

Поясните, пожалуйста, что делают регулярные выражения

WAN_IP="`ifconfig $WAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"
LAN_IP="`ifconfig $LAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"

INT_NET="`ip addr show $LAN | grep inet | awk '{print $2}'`"

#INT_NET=192.168.1.0/24 это 24 подсети создается или что?

А как теперь на это дело шейпер прикрутить какой-нить с фильтрованием по ip и mac адресам?

И после перезагрузки инет пропал. Прописал post-up /etc/fw в interfaces. Вообще инет запускается, но минут через 10...
« Последнее редактирование: 09 Марта 2010, 13:49:10 от konst_rzn »

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Ubuntu маршрутизатор
« Ответ #12 : 09 Марта 2010, 20:45:07 »
Цитировать
Написать какие даны исходные данные. (провайдер, способ выхода в инет, локальная сеть)
ответе на эти вопросы, без топологии сети можно только гадать
DHCP сервер у провайдера есть?

Цитировать
И после перезагрузки инет пропал. Прописал post-up /etc/fw в interfaces. Вообще инет запускается, но минут через 10...
c шлюза
sudo iptables -vnL && sudo iptables -vnL -t nat
sudo iptables-save
ip a
ip r
route -n
sudo aptitude search firestarter
sudo netstat -lpan|grep LISTEN|grep -v "^unix  2"

c клиента
ipconfig /all
netstat -r
tracert 172.16.16.1
nslookup ya.ru

WAN_IP="`ifconfig $WAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"присвоить WAN_IP текущий ip адрес интерфейса eth0, полученный из вывода ifconfig при помощи утилит sed и awk

LAN_IP="`ifconfig $LAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"присвоить LAN_IP текущий ip адрес интерфейса eth1, полученный из вывода ifconfig при помощи утилит sed и awk

INT_NET="`ip addr show $LAN | grep inet | awk '{print $2}'`"присвоить INT_NET подсеть интерфейса eth1, полученный из вывода iproute2 при помощи утилит grep и awk

Цитировать
#INT_NET=192.168.1.0/24 это 24 подсети создается или что?
# - символ комментария
http://lmgtfy.com/?q=%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F+%D0%BC%D0%B0%D1%81%D0%BA%D0%B0

 фильтрование MAC
iptables -A INPUT -m mac --mac-source 00:e0:4d:05:f5:af -j DROPдля mac 00:e0:4d:05:f5:af доступ запрещен

http://www.opennet.ru/docs/RUS/adv_route_qos/

шейпер
http://www.opennet.ru/docs/RUS/adv_route_qos/
http://habrahabr.ru/blogs/linux/60095/
http://lmgtfy.com/?q=+%D1%88%D0%B5%D0%B9%D0%BF%D0%B5%D1%80+linux

« Последнее редактирование: 09 Марта 2010, 23:17:42 от Unreg »

 

Страница сгенерирована за 0.083 секунд. Запросов: 23.