<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.permlug.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>шлюз</title>
 <link>http://www.permlug.org/taxonomy/term/287/</link>
 <description>The taxonomy view with a depth of 0.</description>
 <language>ru</language>
<item>
 <title>Настройка шлюза для дома или малого офиса (SOHO)</title>
 <link>http://www.permlug.org/node/3905/</link>
 <description>&lt;p&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;Попросили меня написать статью про настройку домашнего шлюза, исполняю. Оговорюсь сразу, я винду загружаю крайне редко, поэтому в качестве шлюза буду использовать свой домашний компьютер. Никакими железячными решениями меня не заманишь, даже если прошивать их линуксом (об этом просите других, на сайте есть такие). В компе 2 сетевые карты и 1 WIFI. К одной подключен dsl-модем, вторая с WIFI объединены мостом, образуя локальную сеть. Поднят прокси и фаервол. Дистрибутив slamd64-current. Если вы найдёте ошибки, неточности или сочтёте нужным что-то добавить, пишите.&lt;br /&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;http://www.permlug.org/files/scheme.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
Итак, что же нам требуется для такой конфигурации:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;свежее ядро (начиная с 2.6.25 старый стек IEEE 802.11 был отмечен, как устаревший, поэтому мы используем новый);&lt;/li&gt;&lt;li&gt;драйвер madwifi (для моей сетевой карты D-Link DWL-G520 H/W B3 на чипе Atheros), который позволяет работать сетевой карте в режиме точки доступа, в отличие от того, который в ядре;&lt;/li&gt;&lt;li&gt;hostapd (демон, управляющий авторизацией беспроводной сети);&lt;/li&gt;&lt;li&gt;bridge-utils&lt;/li&gt;&lt;li&gt;dhcpd (для автоматической настройки клиентов)&lt;/li&gt;&lt;li&gt;DNS-сервер bind 9-ой версии&lt;/li&gt;&lt;li&gt;squid&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
Возможно тем, кто использует более распространённые дистрибутивы многое можно пропустить, по скольку это уже сделано разработчиками. Ознакомьтесь с документацией по своему дистрибутиву.&lt;/div&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Конфигурация ядра.&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# cd /usr/src
# tar xf /path/to/linux-2.6.25.tar.bz2
# cd linux-2.6.25
# make menuconfig (oldconfig, xconfig и т.д.)&lt;/pre&gt;&lt;br /&gt;
отмечаем опции:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;   
   [*] Enable loadable module support  ---&amp;gt;
     [*]   Automatic kernel module loading
   Networking  ---&amp;gt;
     [*] Networking support
     Networking options  ---&amp;gt;
       [*] TCP/IP networking
       [*] Network packet filtering framework (Netfilter)  ---&amp;gt;
        802.1d Ethernet Bridging
     Wireless  ---&amp;gt;
       &amp;lt;*&amp;gt; Generic IEEE 802.11 Networking Stack (mac80211)
   Device Drivers  ---&amp;gt;
     [*] Network device support  ---&amp;gt;
       Wireless LAN  ---&amp;gt;
         [*] Wireless LAN (IEEE 802.11)
   -*- Cryptographic API  ---&amp;gt;
     -*-   AES cipher algorithms&lt;/pre&gt;&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# make&lt;/code&gt;&lt;br /&gt;
Устанавливаем.(make modules_install &amp;amp;&amp;amp; make install)&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Сборка и установка драйвера:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# cd /usr/src
# tar xf /path/to/madwifi-0.9.4.tar.gz
# cd madwifi-0.9.4
# make KERNELPATH=/usr/src/linux-2.6.25
# make install
# echo &#039;options ath_pci autocreate=none&#039; &amp;gt;&amp;gt; /etc/modprobe.conf&lt;/pre&gt;&lt;br /&gt;
&lt;div style=&quot;text-align:justify;&quot;&gt;Последняя строка отключает создание устройства при загрузке драйвера. Теперь уже можно перезагрузить систему с новым ядром. Создаём интерфейс в режиме точки доступа:&lt;/div&gt;&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;/code&gt;&lt;br /&gt;
Если всё прошло успешно, то появится интерфейс ath0.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Дальше установим защиту беспроводной части сети. Для этого понадобится hostapd.&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# cd /usr/src
# tar xf /path/to/hostapd-0.5.10.tar.gz
# cd hostapd-0.5.10&lt;/pre&gt;&lt;br /&gt;
Создаём файл .config:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
CONFIG_DRIVER_HOSTAP=y
CONFIG_DRIVER_MADWIFI=y
CFLAGS += -I../madwifi-0.9.4
CONFIG_IAPP=y
CONFIG_RSN_PREAUTH=y
CONFIG_PEERKEY=y
CONFIG_IEEE80211W=y
CONFIG_EAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_TLS=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_GTC=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_SIM=y
CONFIG_EAP_AKA=y
CONFIG_EAP_PAX=y
CONFIG_EAP_PSK=y
CONFIG_EAP_SAKE=y
CONFIG_EAP_GPSK=y
CONFIG_EAP_GPSK_SHA256=y
CONFIG_PKCS12=y
CONFIG_RADIUS_SERVER=y
&lt;/pre&gt;&lt;br /&gt;
Компилируем и устанавливаем:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# make &amp;amp;&amp;amp; make install
# cp madwifi.conf /etc/hostapd.conf&lt;/pre&gt;&lt;br /&gt;
Редактируем файл /etc/hostapd.conf (в нём много параметров, вот важные):&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;interface=ath0
bridge=lan
driver=madwifi
# Network name:
ssid=MYNET
# стандарт IEEE 802.11g. Скорость до 54 MB/s
hw_mode=g
wpa=1
wpa_passphrase=secret password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;Теперь займёмся локальной сетью. Для определённости, пусть будет eth0 - интерфейс, подсоеденённый к dsl-модему, eth1 - интерфейс локальной сети. Для объединения сетевых интерфейсов используется пакет bridge-utils. В его состав входит утилита brctl, управляющая сетевыми мостами.&lt;/div&gt;&lt;br /&gt;
Соединяем сети командами&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# brctl addbr lan
# brctl addif lan eth1
# brctl addif lan ath0
# ifconfig eth1 0.0.0.0 promisc up
# ifconfig ath0 0.0.0.0 promisc up
# ifconfig lan 192.168.0.1 netmask 255.255.255.0 up
# hostapd -B /etc/hostapd.conf&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Как компилировать dhcpd я писать не буду, потому что он есть, наверно, уже в любом дистрибутиве и не требует модификации.&lt;br /&gt;
Редактируем /etc/dhcpd.conf&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;default-lease-time 86400;
ddns-update-style none;

authoritative;

# 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;

option domain-name &quot;localnet&quot;;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.2 192.168.0.254;
  option subnet-mask 255.255.255.0;
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  option domain-name-servers 192.168.0.1;
}&lt;/pre&gt;&lt;br /&gt;
Запускаем:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# dhcpd&lt;/code&gt;&lt;br /&gt;
Или так:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# service dhcpd start&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align:justify;&quot;&gt;На этом этапе у нас уже есть локальная сеть. Осталось обеспечить её Интернетом. Это не должно быть проблемой и зависит от провайдера.&lt;/div&gt;&lt;br /&gt;
Включим маршрутизацию пакетов:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/code&gt;&lt;br /&gt;
Включаю трансляцию адресов. Тип подключения к моему провайдеру - pppoe, поэтому:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE&lt;/code&gt;&lt;br /&gt;
Если адрес постоянный, то можно вместо предыдущей комады использовать:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# iptables -t nat -A POSTROUTING -o интерфейс -j SNAT --to-source адрес&lt;/code&gt;&lt;br /&gt;
Запрещаем входящие соединения (кроме локальных и исходящих):&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -i lan -j ACCEPT
# iptables -A INPUT -j REJECT
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -i lan -j ACCEPT
# iptables -P FORWARD DROP&lt;/pre&gt;&lt;br /&gt;
Получилась очень простая защита а-ля &quot;антихакер&quot; в виндовых брэндмаурах.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;bind - ещё один пакет, который есть в любом дистрибутиве, поэтому сразу перейдём к конфигурационному файлу, как правило, /etc/named.conf&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;options {
        directory &quot;/var/named&quot;;
        forward first;
        forwarders {
          /* как правило, это единственное, что нужно изменить */
          адреса серверов DNS;
        };
};

zone &quot;.&quot; IN {
        type hint;
        file &quot;caching-example/named.ca&quot;;
};

zone &quot;localhost&quot; IN {
        type master;
        file &quot;caching-example/localhost.zone&quot;;
        allow-update { none; };
};

zone &quot;0.0.127.in-addr.arpa&quot; IN {
        type master;
        file &quot;caching-example/named.local&quot;;
        allow-update { none; };
};&lt;/pre&gt;&lt;br /&gt;
Запускаем:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# named&lt;/code&gt;&lt;br /&gt;
Или&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;# service named start&lt;/code&gt;&lt;br /&gt;
В /etc/resolv.conf пропишем первой строкой:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;nameserver 127.0.0.1&lt;/code&gt;&lt;br /&gt;
Тестируем:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;dig @127.0.0.1 ya.ru&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;div style=&quot;text-align:justify;&quot;&gt;Ну вот и всё, теперь мы можем пользоваться как проводной, так и беспроводной связью, не боясь остаться без Интернета, играть в сетевые игры и много чего другого...&lt;/p&gt;

&lt;p&gt;Установку, конфигурирование squid я описывать не буду, по скольку это достойно отдельной статьи, коих написано не мало.&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-weight:bold&quot;&gt;В заключение&lt;/span&gt; хочу отметить, что если использовать другие дистрибутивы Linux, например, Debian, Ubuntu, FedoraCore и т.п. установку из исходного кода можно избежать.&lt;/div&gt;&lt;br /&gt;
Для Debian достаточно выполнить&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;aptitude install madwifi-tools hostapd bridge-utils dhcp bind9 squid&lt;/code&gt;&lt;br /&gt;
Для FedoraCore:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;yum install madwifi hostapd bridge-utils bind dhcp squid&lt;/code&gt;&lt;br /&gt;
Так же немного отличается запуск служб:&lt;br /&gt;
Debian&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;/etc/init.d/bind9 start&lt;/code&gt;&lt;br /&gt;
FedoraCore&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;service named start&lt;/code&gt;&lt;br /&gt;
Вот так выглядит работа с телефона:&lt;br /&gt;
Поиск&lt;br /&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;http://www.permlug.org/files/capture0000.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
Добавление&lt;br /&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;http://www.permlug.org/files/capture0001.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
Прокси:&lt;br /&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;http://www.permlug.org/files/capture0002.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
Интернет:&lt;br /&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;http://www.permlug.org/files/capture0003.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;/p&gt;</description>
 <comments>http://www.permlug.org/node/3905/#comments</comments>
 <category domain="http://www.permlug.org/taxonomy/term/289/">dhcp</category>
 <category domain="http://www.permlug.org/taxonomy/term/288/">soho</category>
 <category domain="http://www.permlug.org/taxonomy/term/71/">Документация</category>
 <category domain="http://www.permlug.org/taxonomy/term/287/">шлюз</category>
 <enclosure url="http://www.permlug.org/files/capture0000.png" length="57722" type="image/png" />
 <pubDate>Fri, 02 May 2008 12:08:23 +0400</pubDate>
 <dc:creator>Grifon</dc:creator>
 <guid isPermaLink="false">3905 at http://www.permlug.org</guid>
</item>
</channel>
</rss>
