Роутер из старого ПК
И так, у нас имеется "старый ПК", из которого нужно сделать роутер. Характеристики: Celeron 900 mhz, ОЗУ 384 mb, НЖМД 20 Гб, 2 сетевых интерфейса.
Ставить будем операционную систему Ubuntu Server, так как она первой попалась под руку. Я ставил версию 8.04, так как она LTS. Также не стоит пугаться консоли, обещаю у вас все получится :)
Установка ОС
Процесс установки детально описывать не буду.
Устанавливаем дистрибутив, в процессе установки разбиваем жесткий диск, так как вам нужно. Также не забудьте поставить OpenSSH (чтобы удаленно подключаться к роутеру), если вам нужен еще и веб-сервер устанавливаем LAMP и MySQL.
Настройка сетевых интерфейсов
Мы установили Ubuntu, логинимся. У нас имеются 2 сетевые карты, их нужно настроить.
eth0: 1 сетевая карта - локальная сеть Голден Телеком(Билайн) и VPN (PPTP).
eth1: 2 сетевая карта - внутренняя домашняя локальная сеть.
Запускаем консоль (Alt+F2) и пишем в консоле следующую команду:
Для поднятия VPN соединения, есть несколько различных способов. Я расскажу об одном из них. Для поднятия VPN соединения должен быть установлен пакет pptp-linux, но он не идет в комплекте с дистрибутивом.
Тут я пошел на хитрость, так как сеть у меня настроена, я поднимаю Cherokee server на втором ПК и размещаю на нем заранее подготовленный пакет, и скачиваю через wget на роутер.
Итог
В итоге имеет высокопроизводительный домашний маршрутизатор за минимальную цену. Далее можно к нашему роутеру прикрутить качалку торрентов, "файловую помойку", развернуть веб-сервер и т. д. Минусом для кого-то будет являться лишний шум в комнате + еще один потребитель электроэнергии. Такой роутер у меня проработал 2 года, сейчас за ненадобностью веб-сервера и прочих плюшек, а так же из-за незначительной поломки, я им не пользуюсь. Скажу одно, за 2 года НИ РАЗУ не перенастраивал, всё работает как часы.
И так, у нас имеется "старый ПК", из которого нужно сделать роутер. Характеристики: Celeron 900 mhz, ОЗУ 384 mb, НЖМД 20 Гб, 2 сетевых интерфейса.
Ставить будем операционную систему Ubuntu Server, так как она первой попалась под руку. Я ставил версию 8.04, так как она LTS. Также не стоит пугаться консоли, обещаю у вас все получится :)
Установка ОС
Процесс установки детально описывать не буду.
Устанавливаем дистрибутив, в процессе установки разбиваем жесткий диск, так как вам нужно. Также не забудьте поставить OpenSSH (чтобы удаленно подключаться к роутеру), если вам нужен еще и веб-сервер устанавливаем LAMP и MySQL.
Настройка сетевых интерфейсов
Мы установили Ubuntu, логинимся. У нас имеются 2 сетевые карты, их нужно настроить.
eth0: 1 сетевая карта - локальная сеть Голден Телеком(Билайн) и VPN (PPTP).
eth1: 2 сетевая карта - внутренняя домашняя локальная сеть.
Запускаем консоль (Alt+F2) и пишем в консоле следующую команду:
sudo nano /etc/network/interfaces
В открывшемся файле пишем следующее
auto lo
iface lo inet loopback
iface eth1 inet static
address 192.168.1.77
netmask 255.255.255.0
auto eth1
iface eth0 inet dhcp
up route add -net 10.0.0.0 netmask 255.0.0.0 gw ваш_шлюз
up route add -host 194.186.60.108 gw ваш_шлюз
up route add -host 194.186.60.107 gw ваш_шлюз
auto eth0
ваш_шлюз — его смотрим в свойствах подключения eth0, начинается с числа 10
Нажимаем Ctrl+X, далее Y и жмем Enter. Настройка сетевых интерфейсов закончена. Применим наши настройки:
sudo /etc/init.d/networking restart
*Командой ifconfig можно посмотреть активные подключения.
IPTABLES (NAT)
Данные настройки вводятся от пользователя root. Будь аккуратны при работе от root'a! Чтобы сменить пользователя, вводим:
sudo su
Теперь, самое интересное :) С правами root'a вводим:
iptables -t nat -A POSTROUTING -s $LOCALNET -d ! $LOCALNET -j MASQUERADE
где $LOCALNET - это наша локальная сеть, вводить нужно 192.168.1.0/24
Далее:
iptables -A INPUT -p tcp -s 127.0.0.0/8 -j ACCEPT
iptables -A INPUT -s $LOCALNET -j ACCEPT
iptables -A INPUT -s $EXTNET -j ACCEPT
$LOCALNET - это наша локальная сеть, вводить нужно 192.168.1.0/24
$EXTNET - сеть eth0 интерфейса, вводить нужно 10.0.0.0/8
$EXTNET - сеть eth0 интерфейса, вводить нужно 10.0.0.0/8
И последнее:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Правда эти правила не сохраняются, их нужно вводить при каждом включении/перезагрузке. Поэтому пропишем их в
rc.local:
sudo nano /etc/rc.local
И добавляем те две строчки описанные выше до слова exit 0
Теперь включим форвардинг:
sudo nano /etc/sysctl.conf
Найдите строчку net.ipv4.conf.default.forwarding=1 и раскомментируйте ее.
VPN соединение
Тут я пошел на хитрость, так как сеть у меня настроена, я поднимаю Cherokee server на втором ПК и размещаю на нем заранее подготовленный пакет, и скачиваю через wget на роутер.
wget http://192.168.1.55/pptp-linux.deb
sudo dpkg -i pptp-linux.deb
sudo dpkg -i pptp-linux.deb
Теперь настраиваем само подключение. Создаем файл golden в директории /etc/ppp/peers/
sudo nano /etc/ppp/peers/golden
И вписываем туда вот это:
Перезагружаемся.
pty «pptp fttb-vpn.voronezh.golden.ru –nolaunchpppd» #для Билайн адрес другой.
user Имя пользователя
password "Пароль!!!" #кавычки оставить
mtu 1452
nodeflate
nobsdcomp
noproxyarp
noauth
defaultroute
replacedefaultroute
Перезагружаемся.
Поднять VPN-соединение можно командой
sudo pppd call beeline debug nodetach
Отключить - Ctrl+C Данную команду, так же можно прописать в файл rc.local, что Интернет подключался сразу при включении роутера.
Проброс портов
Открываем порт для входящих подключений (например для μTorrent).
Осуществляется командой:
$YOUR_PORT - порт на котором работает клиент μTorrent
$PC_AFTER_NAT - IP адрес компьютера расположенного за NAT (второй ПК, например 192.168.1.5)
Вводить правило нужно после каждого выключения/перезагрузки, поэтому его можно поместить в файл rc.local
В итоге ваш rc.local может выглядеть так:
Проброс портов
Открываем порт для входящих подключений (например для μTorrent).
Осуществляется командой:
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport $YOUR_PORT -j DNAT –to-destination $PC_AFTER_NAT
$YOUR_PORT - порт на котором работает клиент μTorrent
$PC_AFTER_NAT - IP адрес компьютера расположенного за NAT (второй ПК, например 192.168.1.5)
Вводить правило нужно после каждого выключения/перезагрузки, поэтому его можно поместить в файл rc.local
В итоге ваш rc.local может выглядеть так:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport $YOUR_PORT -j DNAT –to-destination $PC_AFTER_NAT
sudo pppd call golden debug nodetach
exit 0
Итог
В итоге имеет высокопроизводительный домашний маршрутизатор за минимальную цену. Далее можно к нашему роутеру прикрутить качалку торрентов, "файловую помойку", развернуть веб-сервер и т. д. Минусом для кого-то будет являться лишний шум в комнате + еще один потребитель электроэнергии. Такой роутер у меня проработал 2 года, сейчас за ненадобностью веб-сервера и прочих плюшек, а так же из-за незначительной поломки, я им не пользуюсь. Скажу одно, за 2 года НИ РАЗУ не перенастраивал, всё работает как часы.
Хорошая статья.. мой старый комп лежит сейчас поломанный, а можно было бы попробовать..
ОтветитьУдалитьiptables -t nat -A POSTROUTING -s $LOCALNET -d ! $LOCALNET -j MASQUERADE
ОтветитьУдалитьпосле ввода этой строки он матерится на "!" (восклицательный знак)
че-то там пишет по вражески... вообщем прописывал NAT как здесь написано, но маршрутизация чего то не заработала, на beeline.ru локально доступный без PPTP доступа с других машин не было... DNS прописывал на тачках вручную билайновских два адреса... шлюз выставлял ИП компа-роутера... (либо надо было билайновский??)... мб у меня руки кривые))) тема интересная неплохо было бы ее развить... а то мало какой роутер тянет ППТП под сильной нагрузкой торентов...(
Постараюсь в ближайшее время перепроверить все команды. «Машинку» оживил, Ubuntu поставил. Результаты выложу и подкорректирую неясности.
ОтветитьУдалить