Показать сообщение отдельно

  #3  
Старый 27.10.2007, 14:12
ShadOS
ы
Регистрация: 11.02.2007
Сообщений: 750
Провел на форуме:
1347723

Репутация: 1477


Отправить сообщение для ShadOS с помощью ICQ
По умолчанию

Автоматизируем запуск

После того, как мы благополучно убедились, что все работает, можно настроить автоматическое применение настроек беспроводной карты.

Настроим автоматическую загрузку модуля карты при старте системы:

Код:
# echo "ath_pci" >>/etc/modules.autoload.d/kernel-2.6
Настроим автоматическое создание виртуального интерфейса при загрузке модуля:

Код:
# echo “options ath_pci autocreate=ap” >>/etc/modules.d/ath_pci
Параметры для утилиты iwconfig укажем в файле /etc/conf.d/wireless со следующим содержимым:

Код:
modules_ath0=( "iwconfig" )

ifconfig_ath0=( "192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255" ) essid_ath0="superspot"

channel_ath0="13"

key_super_spot="1111-1111-1111-11"
Создадим скрипт для запуска сетевого подключения:

Код:
# ln -s /etc/init.d/net.lo /etc/init.d/net.ath0
И добавим его в список скриптов, запускаемых при старте системы:

Код:
# rc-update add net.ath0 default
Теперь при перезагрузке системы наша точка доступа будет запускаться автоматически.

Настраиваем дополнительные программы

На данный момент клиенты нашего беспроводного сегмента могут работать друг с другом и с сервисами, имеющимися непосредственно на точке доступа. Данная схема обладает рядом недостатков, исправлением которых мы сейчас и займемся. Итак, первым делом предоставим беспроводным клиентам доступ в Интернет посредством NAT. В самом простом случае это можно сделать так:

Код:
# iptables -F

# iptables -t nat -F

# iptables -A FORWARD -i ath0 -s 192.168.2.0/255.255.255.0 -j ACCEPT

# iptables -A FORWARD -i eth1  -d 192.168.1.0/255.255.255.0 -j ACCEPT

# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
С помощью скриптов Gentoo сохраним созданные правила и настроим автоматический запуск iptables:

Код:
# /etc/init.d/iptables save

# /etc/init.d/iptables start

# rc-update add iptables default
Для распределения IP-адресов в локальной сети, и разрешения DNS-имен интернет-узлов будем использовать пакет dnsmasq. Для его настройки в конфигурационном файле /etc/dnsmasq.conf напишем:

Код:
domain-needed

bigus-priv

Interface = eth0, ath0

Dhcp-range=192.168.2.0,192.168.2.255,1h

Dhcp-host= 11:22:33:44:55:66, 192.168.2.1
Запустим службу и настроим ее автоматический запуск:

Код:
# /etc/init.d/dnsmasq start

# rc-update add default dnsmasq
Мы указали, с каких сетевых интерфейсов служба должна принимать запросы, и разрешили dhcp-серверу выдавать IP-адреса клиентам беспроводной сети. При разрешении DNS-имен dnsmasq будет перенаправлять запросы DNS-серверам, перечисленным в файле /etc/resolv.conf.

Улучшаем безопасность

Ввиду использования WEP приведенный выше пример скорее относится к разряду «как не нужно делать» и имеет право на существование лишь с целью доказательства того, что плата работает. В реальных же системах настоятельно рекомендуется использование WPA в режиме WPAPSK или WPA-EAP. (В качестве альтернативного варианта можно использовать VPN-туннель для шифрации трафика между беспроводными клиентами и сервером.) За реализацию WPA в нашей системе будет отвечать hostapd. Указанный демон был разработан в рамках проекта HostAP, целью которого является создание беспроводных точек доступа на базе карт с чипсетами Intersil Prism. Позднее разработчиками была добавлена поддержка работы с платами на чипсетах Atheros посредством драйверов madwifi. Hostapd поддерживает работу в режимах WPA-PSK, WPA-EAP с возможностью аутентификации как с помощью встроенного сервера, так и с помощью внешнего сервера RADIUS. В нашем примере рассмотрим более сложный в настройке вариант WPA-EAP с аутентификацией по протоколу MSCHAPv2 на внешнем RADIUS-сервере. При реализации будем использовать инфраструктуру открытых ключей (PKI), развернутую согласно инструкциям в [5].

Предварительная подготовка

Особенностью работы hostapd с драйверами madwifi является то, что беспроводное устройство должно входить в состав «виртуального моста» (linux bridging). Учитывая конфигурацию нашего сервера, мы вполне можем сделать «полноценный мост», с помощью которого клиенты проводной и беспроводной сетей будут находиться в одной логической подсети. Однако с точки зрения безопасности такой подход является неправильным – беспроводные клиенты должны иметь минимально необходимый доступ к ресурсам корпоративной локальной сети. Поэтому в нашем примере ограничимся «виртуальным мостом», состоящим только из беспроводного адаптера. Определение правил для iptables, ограничивающих доступ к проводной сети правил, оставим в качестве самостоятельного задания. Итак, для создания моста добавим в файл /etc/conf.d/net следующие строки:

Код:
bridge_br0=( "ath0" )

config_ath0=( "null" )

config_br0=( "192.168.2.1 netmask 255.255.255.0 brd 192.168.2.255" )
А также настроим автоматическое создание интерфейса при старте системы:

Код:
# ln –s /etc/init.d/net.lo /etc/init.d/net.br0

# rc-update add net.br0 default
После старта системы в системе появится новый bridgeинтерфейс с именем br0:

Код:
# ifconfig br0

br0       Link encap:Ethernet  HWaddr 00:11:6B:60:28:D6

          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:2290  Metric:1

          RX packets:508204 errors:0 dropped:0 overruns:0 frame:0

          TX packets:665093 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:96361488 (91.8 Mb)  TX bytes:713154486 (680.1 Mb)
Как и мы хотели, в состав моста входит лишь устройство ath0:

Код:
# brctl show

bridge name    bridge id               STP enabled     interfaces

br0            8000.00116b6028d6       no              ath0
Перейдем к параметрам беспроводного адеаптера. Вместо старых настроек в /etc/conf.d/wireless определим следующее:

Код:
modules_ath0=( "iwconfig" )

essid_ath0="superspot"

channel_ath0="13"
Займемся настройками hostapd. Конфигурационный файл находится в /etc/hostapd/hostaspd.conf. Параметры демона сгруппированы в несколько секций:

n Параметры конфигурации беспроводной платы – в этой секции определяется тип используемого беспроводного адаптера, а также параметры беспроводного соединения (ESSID, MAC security).

n WPA1 (802.1X-2004) – здесь мы можем разрешить использование аутентификации 802.1Х, а также определить параметры EAP.

n Опции для встроенных серверов EAP и RADIUS – по словам разработчиков, эти серверы присутствуют исключительно для тестовых целей, и их использование в реальных системах не рекомендуется. Поэтому в нашем примере эти секции использоваться не будут.

n Параметры WPA2 (WAP/IEEE 802.11i) – здесь можно выбрать режим управления ключами шифрования (PSK или EAP), а также определить алгоритм шифрации трафика (TKIP-RC4, CCMP-AES).

Итак, определим следующие настройки:

Код:
interface=ath0          # интерфейс беспроводного адаптера

bridge=br0              # имя устройства-моста, содержащего беспроводной адаптер

driver=madwifi          # тип используемого драйвера 

ssid=superspot          # идентификатор беспроводной сети

auth_algs=1             # используемый алгоритм аутентификации, 1- open

ieee8021x=1             # аутентификация согласно 802.1X

#RADIUS

own_ip_addr=127.0.0.1   # IP-адрес сервера RADIUS

nas_identifier=superspot 

auth_server_addr=127.0.0.1

auth_server_port=1812

auth_server_shared_secret=supersecretpassword

radius_retry_primary_interval=600

#WPA/IEEE 802.11i

wpa=3                   # в двоичном представлении – 11, что означает использовать WPA и WPA2

wpa_key_mgmt=WPA-EAP    # будем использовать EAP-вариант аутентификации

wpa_pairwise=CCMP        # будем использовать AES для шифрования трафика

wpa_group_rekey=600

wpa_strict_rekey=1

wpa_gmk_rekey=86400

rsn_preauth=1

Теперь перейдем к параметрам конфигурации Freeradius.

Файл /etc/raddb/radius.conf. В секции modules{}, раздел mschap{} включим следующие параметры:

use_mppe = yes

require_encryption = yes

require_strong = yes

with_ntdomain_hack = yes

Убедимся, что ниже в этой же секции присутствует макрос для обработки имен в формате домен/логин:

realm ntdomain {

  format = prefix

  delimiter = "\\"

  ignore_default = no

  ignore_null = no

}
А также определен файл, в котором будут указываться пароли пользователей:

Код:
    files {

          usersfile = ${confdir}/users

          acctusersfile = ${confdir}/acct_users

          preproxy_usersfile = ${confdir}/preproxy_users

          }
Секция authorize{} включает в себя следующие модули:

Код:
authorize {

        preprocess

        mschap

        ntdomain

        eap

        files

}

files {

    usersfile = ${confdir}/users

    compat = no

}

Файл /etc/raddb/clients.conf:

client 127.0.0.1 {

        secret      = supersecretpassword

        shortname   = superspot

        nastype     = other

}
В файле /etc/raddb/proxy.conf допишем следующие строки:

Код:
realm DEFAULT {

        type            = radius

        authhost        = LOCAL

        accthost        = LOCAL

}
В параметрах конфигурации модуля EAP /etc/raddb/eap.conf определим следующее:

Код:
    eap {

         default_eap_type = peap 

         timer_expire     = 60

         ignore_unknown_eap_types = no

         cisco_accounting_username_bug = no

 

         tls {

            private_key_password = пароль для доступа к секретному ключю сервера

            private_key_file = ${raddbdir}/certs/cert-srv.pem

            certificate_file = ${raddbdir}/certs/cert-srv.pem

            CA_file = ${raddbdir}/certs/cacert.pem

            dh_file = ${raddbdir}/certs/dh

            random_file = ${raddbdir}/certs/random

        }

        peap {

            default_eap_type = mschapv2

        }

        mschapv2 {

        }

    }
В файле /etc/raddb/users определим имена и пароли для доступа к беспроводной сети:

Код:
user1 User-Password == "password1"

user2 User-Password == "password2"

user3 User-Password == "password3"
Настроим автоматический запуск Freeradius при старте системы:

Код:
# rc-update add radiusd default
Если все было сделано правильно, то после перезагрузки компьютера (или просто запуска соответствующих служб) беспроводные клиенты увидят следующее (см. рис. 6). Беспроводная сеть с поддержкой WPA, при подключении к которой необходимо указать пароль.

Рисунок 6. WPA-сеть

Если же по каким-либо причинам увидеть сеть не удалось, можно воспользоваться режимами отладки:

Код:
# hostapd –Kdddd

# radiusd –X
Enterprise-режим

Немного изменив настройки модуля EAP Freeradius, можно настроить работу в режиме EAP-TLS. Так, чтобы настроить работу анологично описанному в [5], необходимо всего лишь поменять тип пакетов eap в файле eap.conf:

Код:
default_eap_type = tls
и скопировать клиентский сертификат на компьютер пользователя.
__________________
..когда же кто-нибудь выпустит MD5(Unix) брутер на GPU.... жду....
 
Ответить с цитированием