Это часть руководства для общественного пользования, но будут элементы понятные для меня.
Имея настроенный wi-fi модуль, переходим к созданию домашнего сервера. И начнем с настройки сети, пусть хотя бы интернет для начала будет на самом сервере, а потом уже будем его раздавать по воздуху на квартиру.
Настройка локальной сети со статическим ip
Честно сказать, я изначально ступил, можно было ничего и не настраивать через консоль, а воспользоваться NetworkManager’ом (NM), стандартная утилита для работы с сетью в ubuntu. Но я почему-то решил, что когда я отключу GUI (Graphic User Interface), то NM не заработает. Не могу ответить, прав ли я, но уже не хочется проверять, когда все настроил.
В общем, манула по настройке сети я нашел сразу. Дальше вы можете не читать, потому что дальше будут настройки, которые можно изучить по ссылке.
Для начала надо определить как называются наши интерфейсы.
$ ifconfig eth0 Link encap:Ethernet HWaddr 50:af:73:21:d9:f4 inet addr:172.17.2.10 Bcast:172.17.2.255 Mask:255.255.255.0 inet6 addr: fe8t::52af:73ff:fe21:d9f4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1616233 errors:0 dropped:7775 overruns:0 frame:0 TX packets:1354868 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1470698712 (1.4 GB) TX bytes:235363703 (235.3 MB) lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:28 errors:0 dropped:0 overruns:0 frame:0 TX packets:28 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2435 (2.4 KB) TX bytes:2435 (2.4 KB) wlan0 Link encap:Ethernet HWaddr 20:16:d8:c3:44:47 inet6 addr: fe8t::2216:d8ff:fec3:4447/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1032995 errors:0 dropped:0 overruns:0 frame:0 TX packets:1297336 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:182483781 (182.4 MB) TX bytes:1431685634 (1.4 GB)
Примерно так оно должно выглядеть, хотя может и eth1 и wlan1. Но нас интересует eth0, wi-fi пока не трогаем. Идем к файлу конфигурации сети.
sudo nano /etc/network/interfaces
Там мы увидим 2 строки или ничего, это как повезет. Вот туда надо добавить необходимые параметры конфигурации, в моем случае это
#iface eth0 inet dhcp iface eth0 inet static address 172.17.2.10 netmask 255.255.255.0 gateway 172.17.2.1 dns-nameservers 172.22.0.1 auto eth0
Пояснять не буду, все слова должны быть понятны и так. У меня провайдер выдает статичный ip внутри сети, поэтому и все настройки мне надо производить по договору. Если ip динамический, то комментируем строки 2-5, и раскомментируем первую.
Собственно все, после этого вся локальная сеть ожила. Но нам же нужен интернет.
Настройка PPTP подключения
Руководствуясь все теми же инструкциями с по настройке сети, настроем vpn-подключение.
sudo nano /etc/ppp/peers/my_provider
И я вписал туда следующие параметры
# При разрыве соединения - переподключаться снова. persist # Максимальное количество неудачных попыток подключения. 0 - бесконечно. maxfail 0 # Значение MTU mtu 1476 # Ваш логин. name my_login # Не быть шлюзом по умолчанию #nodefaultroute # Быть шлюзом по умолчанию defaultroute # Заменить шлюз по умолчанию если он был replacedefaultroute # Имя удаленного сервера (для нас), может быть любым. remotename ttkvpn # Команда запуска pptp. # Адрес сервера - может быть как IP адресом, так и доменным именем, например vpn.foo.bar # Для стабильной работы отключим буферизацию и логирование pty "pptp 172.22.0.251 --nolaunchpppd --nobuffer --loglevel 0"
Далее идем к файлу /etc/ppp/chap-secrets, кстати, в мануале неправильно указан путь, chap-secrets лежит в директории /etc/ppp
sudo nano /etc/ppp/chap-secrets
И вписываем одну строку с информацией из договора, логин пароль (ага, так я и написал свой пароль =) )
# Secrets for authentication using CHAP # client server secret IP addresses my_login ttkvpn my_pass *
ttkvpn взят из предыдущего файла, это параметр remotename ttkvp. Мне провайдер выдает динамический внешний ip, если у вас статический, то можно дописать этот ip вместо звездочки.
Руководство обещает мне что теперь я смогу управлять VPN-соединение при помощи команд
sudo pon my_provider # запустит vpn sudo poff my_provider # остановит vpn
Но на практике оно почему-то не всегда работает, а жаль..
Кончечно ручной запуск соединения — это не плохо, но хотелось бы чтобы vpn поднимался сразу при включении сервера. Делается это достаточно просто. Нужно вернуться к файлу /etc/network/interfaces и добавить туда еще 3 строки к уже существующим. Должны получить что-то типа такого
auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 172.17.2.20 netmask 255.255.255.0 gateway 172.17.2.1 dns-nameservers 172.22.0.1 auto eth0 # Автостарт vpn(pptp) соединения auto pptp iface pptp inet ppp provider my_provider
На этом, в большинстве случаев, можно прекратить настройку, но мне хотелось бы, чтобы локальные ресурсы сети провайдера, оставались провайдера, я не жмусь по поводу внешнего трафика. Раньше была такая проблема, когда тарифы были на объем трафика, но хотелось посмотреть сайты провайдера и при этом не хотелось попасть на трафик. Вот в этом случае нам и помогала статическая маршрутизация. Но теперь такой проблемы нет, но чтобы мы мой сервер был доступен из всех сегментов сети провайдера, мне таки придется настроить маршрутизацию.
Дальше весь текст будет идти для провайдера Информтек в городе Муроме, но чтобы понять суть и методы прочесть стоит.
В папке /etc/ppp/ip-up.d/ создаем файлик, например my_route
sudo nano /etc/ppp/ip-up.d/my_route
И пишем туда маршруты в следующем формате
#! /bin/sh # route del default route add default ppp0 # Имя ppp-подключения. # тут - необходимые маршруты, например: #route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 # Все что идет ниже нужно только в моем случае!!! route add -net 172.16.0.0 netmask 255.240.0.0 gw 172.17.2.1 dev eth0 route add -net 195.20.194.22 netmask 255.255.255.255 gw 172.17.2.1 dev eth0 route add -net 195.20.194.6 netmask 255.255.255.255 gw 172.17.2.1 dev eth0 route add -net 195.20.195.94 netmask 255.255.255.255 gw 172.17.2.1 dev eth0 route add -net 192.168.0.0 netmask 255.255.0.0 gw 172.17.2.1 dev eth0 route add -net 195.20.195.27 netmask 255.255.255.255 gw 172.17.2.1 dev eth0 route add -net 195.20.194.7 netmask 255.255.255.255 gw 172.17.2.1 dev eth0
Кстати у информтека можно подсмотреть маршруты вот на этой страничке Настройка VPN в самом низу ссылка на routeadd.bat.
Что это такое? Как это понимаю я. Видимо, сначала удаляем предустановленный путь маршрутизации, затем говорим, что вся маршрутизация должна идти через интерфейс ppp0, и только потом приписываем сами маршруты в формате
route add -net куда netmask маска gw шлюз dev eth0
Одним словом — магия!
В следующей части я расскажу как сделать из wi-fi модуля точку доступа