Показаны сообщения с ярлыком shorewall. Показать все сообщения
Показаны сообщения с ярлыком shorewall. Показать все сообщения

понедельник, 20 июля 2009 г.

Еще про интернет: VPN

Все описанное (ну кроме squid-а там и деталей каких-то) я делал в течение практ. 2-х лет, пока был клиентом Укртелекома и его интернета по ADSL "ОГО" (к слову сказать ушел только из-за соотношения скорость/цена, работал он у меня на "отлично")
Но заметив "халяву" в виде интернета от билайна я тут же присел ее попробовать (благо подключение бесплатное, отключится тоже ничто не мешает, оборудования никакого не надо), а распробовав перешел полностью (держать "резервного" провайдера для меня и слишком дорого, и смысла нет)
Правда с настройкой на убунту (когда монтажники шнурок завели и все там включили, они попробовали на Win7, показали, что все работает; но меня то интересовало, как все приладить к уже настроенному шлюзу) пришлось повозится достаточно долго.. Хотя больше потому, что а) мало понимал (и понимаю) все эти впн-ы и вообще суть настройки сети, б) потому что мануалы, тоннами находимые в инете, или тупо предлагают "дважды щелкнуть по иконке сети около часов", или милиард раз перекопи-пасченные и неработающие в принципе.. Как бы там ни было - на всякий случай рассказ, как настроить наш шлюз, если к провайдеру надо соединятся по впн; проверить с нуля на связке двух виртуальных машин не получится, так что все настройки будут с моего домашнего шлюза. Не знаю, как там у всех, но "Домашний интернет" от билайна предполагает, что в квартиру затягивается витая пара, которая где-то там на чердаке идет в домовой маршрутизатор (или как эти фигни называются), дома между собой соединяются оптоволокном; есть понятие "внутрисеть" и собственно "интернет", внутри сети 100 мбит/сек скорость, в интернет - сколько купил. Внутри сети есть несколько неплохих ресурсов, в т.ч. неск. торент-трекеров, так что кино можно вытянуть за пару минут Внутри сети автоматически выдается адрес из сетки 10.*.*.* (не помню там уж точно), чтобы выйти в интернет, надо установить VPN соединение, при этом будет динамически выдан реальный ip-адрес (который к примеру можно использовать на dyndns). Поднятое соединение с точки зрения операционки выглядит как и 2 других (eth0, eth1) и обзывается ppp0 - так что чтобы все заработало, надо сообщить правилам shorewall-а о нем. После такого длинного вступления собственно надо сделать это и все остальное (все в консольке - гуя у меня нету; это я к тому, что пока гуглил много читал о каких-то проблемах Network Manager-а с впн-ом - ничего про это не знаю)

четверг, 16 июля 2009 г.

Домашний сервер (11): squid

Итак, вчера я поставил squid, после чего скорость серфинга значительно возросла, причину чему я внятно сформулировать не могу, но факт остается фактом..

Установка и настройка оказались очень просты (ну это потому, что ничего "вычурного" я не делал):
sudo apt-get install squid
sudo pico /etc/squid/squid.conf
В конфиг-файле надо сделать несколько правок: сначала надо найти строчку http_port и изменить ее:
# Squid normally listens to port 3128<br />http_port 192.168.5.1:3128 transparent
Адрес указывается для секурности, опция transparent говорит прокси-серверу, что он "прозрачный" - компьютеры в локальной сети не придется настраивать для использования прокси-сервера, он будет использоваться автоматически (при этом могут применятся разные правила фильтрации трафика, типа блокирование нежелательных сайтов и т.д.)
Дальше надо найти строки
# Example rule allowing access from your local networks.<br /># Adapt localnet in the ACL section to list your (internal) IP networks<br /># from where browsing should be allowed<br />#http_access allow localnet<br />http_access allow localhost<br />
и добавить правило, разрешающее использование прокси компьютерами локальной сети
acl our_network src 192.168.5.0/24<br />http_access allow our_network
Интуитивно понятно, что разрешается доступ компьютерам с указанными ip-адресами
Это все настройки прокси-сервера собственно! Но работать еще ничего не будет :) потому что он "слушает" порт 3128, а обычно бровзеры работают через 80-й порт - поэтому в shorewall надо добавить новые правила-исключения: откроем /etc/shorewall/rules и изменим:
ACCEPT          $FW             net  tcp www<br />REDIRECT        loc             3128 tcp www  -
Т.е. файрвол сам перенаправит все с 80-го порта на 3128-й
Поисправляли, поперезапускали серверы
sudo shorewall check<br />sudo shorewall restart<br />sudo /etc/init.d/squid restart

Идем проверять - все работает (должно :) )Можно еще набрать
sudo tail -f /var/log/squid/access.log
будет видно активность

среда, 15 июля 2009 г.

Домашний сервер (8); webmin

До сих пор все, что устанавливалось на сервер, устанавливалось очень просто - apt-get и все; но бывают и варианты - например, установим Webmin - утилиту для администрации сервера через web-интерфейс.. Сначала надо пойти на сайт webmin-а, посмотреть, какая версия последняя и скачать ее; нас интересует "Debian package suitable for Debian, Ubuntu or other derived Linux", качаем: # перейдем в домашний каталог и скачаем архив сюда wget http://prdownloads.sourceforge.net/webadmin/webmin_1.480_all.deb # через какое-то время (14 мегабайт все же) все готово, файл в нашей папке; вообще, # wget - это консольный downloader, поддерживает докачку и кучу фич, о которых можно # почитать по man wget #дальше просто - запустим установщик пакетов (так это кажется называется) sudo dpkg --install webmin_1.480_all.deb # да, я знаю, что можно сделать так, чтобы не вводить каждый раз sudo - # но имхо это то же самое, что отключить UAC в винде - чтоб не задалбывали # предупреждения - но система для того и придумана, чтобы я не глядя своими правами # пользователя чего-нибудь не накосячил # например, я вчера запустил sudo mc, а потом в нем создал папку у себя в домашнем # каталоге; потом (уже выйдя из mc) я в эту папку пытаюсь получить svn-ом # исходники - нет прав; то же самое с компиляцией.. начал думать, в чем косяк - # а папку то я создал, будучи супер-пользователем, соотв. и прав на нее как обычный # пользователь не имел.. так это мелкий косяк, а можно ж и по крупному что-то наворотить.. # так что надежнее понимать, чего делаешь и зачем, а не тупо su - и вперед.. Что нам показывает консоль? Не все в порядке: Unpacking webmin (from webmin_1.480_all.deb) ... dpkg: dependency problems prevent configuration of webmin: webmin depends on libnet-ssleay-perl; however: Package libnet-ssleay-perl is not installed. webmin depends on libauthen-pam-perl; however: Package libauthen-pam-perl is not installed. webmin depends on libio-pty-perl; however: Package libio-pty-perl is not installed. webmin depends on libmd5-perl; however: Package libmd5-perl is not installed. dpkg: error processing webmin (--install): dependency problems - leaving unconfigured Errors were encountered while processing: webmin Не хватает чего-то; надо доустановить: sudo apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl Что характерно - система умная; установив пакеты она увидела, что установка Webmin-а не закончена и закончила ее, предложив зайти на https://ubuntu:10000/ (ubuntu назвается мой шлюз).. Пробуем, но не тут то было - надо сначала сообщить shorewall, что у нас есть еще одно правило - открываем /etc/shorewall/rules: ACCEPT $FW net tcp www # тут мы разрешаем ходить из локальной сети на наш веб-сервер ACCEPT loc $FW tcp www # а тут добавляем порт 10000 для webmin-а ACCEPT loc $FW tcp 10000 Сохраняемся, перезапускаем shorewall (sudo shorewall check, sudo shorewall restart): Webmin-ом я немного ползовался, в основном пока не привык к командлайну и не узнал толком, где что лежит; а, еще шары на samba добавлял..

Настройка домашнего интернета (7): напильник и Shorewall, dhcp и прочие..

Нашел свой старый конфиг для shorewall; не скажу, что он идеальный, но должно быть как раз что-то такое..

В policy все просто, как в примере - все запрещено, ибо нефиг; а в rules понаписано такое:

# чтоб шлюз мог резолвить адреса на внешних серверах, а локальная сеть
# получать адреса у него
DNS/ACCEPT $FW net
DNS/ACCEPT loc $FW

# чтобы шлюз мог ходить в интернет
ACCEPT $FW net tcp www

# для удаленного доступа из локальной сети и из офиса (у него постоянный ip)
SSH/ACCEPT net:11.22.33.44 $FW
SSH/ACCEPT loc $FW

# в модеме закрыты все порты, кроме 60606 - для торентов
ACCEPT net $FW tcp 60606
ACCEPT net $FW udp 60606

# для "личных нужд" у меня есть свой svn
SVN/ACCEPT net:11.22.33.44 $FW

# разрешу доступ к своему веб-серверу только мне
# хотя позже я ослабил это правило, когда установил gallery
HTTP/ACCEPT net:11.22.33.44 $FW
HTTPS/ACCEPT net:11.22.33.44 $FW

# пинги (можно макросами, можно протоколами)
Ping/ACCEPT loc $FW
Ping/REJECT net $FW
ACCEPT $FW loc icmp
ACCEPT $FW net icmp

# для нормальной работы самбы надо открыть эти порты (еще раз - сейчас у меня в policy
# все запрещено - только loc -> net разрешено - так что все исключения надо перечислить)
ACCEPT loc $FW tcp 135
ACCEPT loc $FW udp 137
ACCEPT loc $FW udp 138
ACCEPT loc $FW tcp 139
ACCEPT loc $FW tcp 445
ACCEPT $FW loc udp 137
ACCEPT $FW loc udp 138

Хорошо бы, чтобы в сети надо было делать как можно меньше настроек; первый шаг к этому - установка своего dhcp-сервера: тогда клиентские компьютеры IP-адреса, сетевую маску, адреса шлюза по умолчанию и dns будут получать автоматически:

sudo apt-get install dhcp3-server
# надо настроить конфиг для dhcp-сервера
sudo pico /etc/default/dhcp3-server

# находим и меняем строку таким образом - указываем интерфейс локальной сети:
INTERFACES="eth1"

# настроим собственно параметры сервера
sudo pico /etc/dhcp3/dhcpd.conf

# можно посмотреть на пример, но остаться должно следующее:
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ubuntu;

default-lease-time 600;
max-lease-time 7200;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.10 192.168.5.200;
option routers 192.168.5.1;
option domain-name-servers 192.168.5.1;
option broadcast-address 192.168.5.255;
}

# сохраняем и запускаем сервер
sudo /etc/init.d/dhcp3-server start

# открываем /etc/shorewall/interfaces и в опции того интерфейса,
# для которого создает адреса dhcp, добавляем dhcp (иначе shorewall
# заблокирует порты 67/68 и клиенты не смогут получить ip):
loc eth1 detect dhcp,tcpflags,nosmurfs

Проверим, все ли нормально - на windows-компьютере в свойствах сетевой карты указываем - получать адреса автоматически:

Перед этим я отключил сетевую карту - теперь включаю и вижу:

Видим, что от dhcp получен новый адрес (раньше руками был установлен 192.168.5.2, новый адрес - первый из пула - 192.168.5.10); интернет продолжает работать, т.е. и с dns все нормально