Wi-Fi Access Point létrehozása Debian alatt

Pár hete a melóhelyemen elvitték a TP-Link Access pointot és mivel pillanatnyilag újat nem tudunk vásárolni, ezért elkezdtem egy PIV-es PC-ből Access Pointot faragni.

A feladat több okból se egyszerű. Nem minden Wi-Fi eszköz támogatja a Master módot, továbbá a legkülönfélébb leírásokat és félrevezető megoldásokat találtam a NET-en, ezért született meg ez az írás.

 

Hozzávalók, sok személyre:

  • Egy PIV-es gép min. 512 MB memóriával, és két PCI bővítőhelyel
  • Debian 6.0.5 Squeeze (a cikk írásakor a 2.6.32-5 verziószámot vselő kernelt használtam)
  • Wi-Fi Master kompatibilis hálózati kártya (egy kis segítség)
  • Vezetékes hálózati kártya

A Debian telepítésekor csak az alaprendszert és az SSH szervert kell telepíteni. Ha ezzel megvagyunk, bővítsük ki a /etc/apt/sources.list fájlunkat:

Előtte:

deb http://ftp.hu.debian.org/debian/ squeeze main
deb-src http://ftp.hu.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

Utána:

deb http://ftp.hu.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.hu.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

Mentsük el a beállításokat, majd adjuk ki a következő utasításokat:

apt-get update
apt-get install isc-dhcp-server hostapd

Ha feltelepült, azonnal állítsuk le az isc-dhcp-server-t!

/etc/init.d/isc-dhcp-server stop

Erre azért van szükség, nehogy a meglévő hálózatba osszon oda nem való IP címeket.

Fixáld be a vezetékes hálózati kártya (eth0) és a wlan kártya (wlan0) ip címeit, ezt a /etc/network/interfaces fájlban teheted meg:

iface eth0 inet static
        address 10.0.0.2
        netmask 255.255.255.0
        broadcast 10.0.0.255
        gateway 10.0.0.1

auto wlan0
iface wlan0 inet static
        address 192.168.254.1
        netmask 255.255.255.0
        broadcast 192.168.254.255
        pre-up /etc/init.d/wlan0_preup
#        post-up /etc/init.d/wlan0_postup

A wlan0_preup fájlba az alábbi bejegyzések kerüljenek:

#!/bin/bash
# /etc/init.d/ath0_preup
#
# Destroy the virtual ath0 interface
wlanconfig wlan0 destroy > /dev/null 2>&1

# Re-create the virtual interface and force it in accesspoint mode
wlanconfig wlan0 create wlandev wifi0 wlanmode ap bssid

# Bring the interface up. The actual network parameters are set
# later when execution of /etc/network/interfaces continues
ifconfig wlan0 up

# Set basic wireless parameters to our liking
#
# You could set essid here, but it is overwritten by the one
# in hostapd.conf
#iwconfig ath0 essid MyAP
# Switch the interface to Master-mode so that it will
# receive requests from outside, instead of doing requests
# itself
iwconfig wlan0 mode Master

# Autoselect the rate at which the interface operates instead of
# using defined rate (e.g. 11M, 54M)
iwconfig wlan0 rate auto

# Select a channel to use: make sure it's not too saturated
# with other wifi traffic. See above for more information.
iwconfig ath0 channel 12

# We could set the WEP key here, or disable the key if we want,
# but the settings defined in hostapd.conf override this anyway
#iwconfig ath0 key my-secret-key

# Set the transmit power. With my card 18 is the largest possible
# transmit power available. Issue "iwlist ath0 txpower" to see your
# cardiwconfig wlan0 txpower 18

# Disable power management which _might_ cause some trouble. When
# everything is working smoothly, you can switch it on.
iwconfig wlan0 power off
's limits.

Ezután nyissuk meg a /etc/dhcp/dhcpd.conf fájlt és írjuk bele:

option domain-name "domain.hu";
option domain-name-servers 10.0.0.1;
option routers 192.168.254.1;

subnet 192.168.254.0 netmask 255.255.255.0 {
  range 192.168.254.2 192.168.254.254;
}

wmp54g Természetesen a feketélvel kiemelt részeket írd át a saját hálózatodnak megfelelően, tehát a névszerver legyen a saját hálózatod névszervere, a domain-name legyen a saját hálózatod domain neve! A subnet-et úgy válaszd, hogy a saját hálózatoddal ne ütközzön, és a wlan0 kártya IP-je legyen a router!
Ezután nyissuk meg a /etc/default/isc-dhcp-server fájlt és az INTERFACES bejegyzéshet tegyük be a wlan0 kártyát, hogy csak arra az eszközre működjön a DHCP szerver.
Most nyissuk meg a /etc/hostapd/hostapd.conf fájlt és írjuk bel az alábbiakat:

# /etc/hostapd/hostapd.conf

# Interface to use as an accesspoint
interface=wlan0

# Driver interface type (hostap/wired/madwifi; default: hostap)
# If you use Atheros-based card then use the madwifi driver
driver=nl80211

# Logging and debugging settings: more of this in original config file
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump

# SSID to use. This will be the "name" of the accesspoint
ssid=info-ap
# WPA settings. We'll use stronger WPA2
# bit0 = WPA
# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
wpa=2

# Preshared key of between 8-63 ASCII characters.
# If you define the key in here, make sure that the file is not readable
# by anyone but root. Alternatively you can use a separate file for the
# key; see original hostapd.conf for more information.
wpa_passphrase=<<password>>

# Key management algorithm. In this case, a simple pre-shared key (PSK)
wpa_key_mgmt=WPA-PSK

# The cipher suite to use. We want to use stronger CCMP cipher.
wpa_pairwise=CCMP

# Change the broadcasted/multicasted keys after this many seconds.
wpa_group_rekey=600

# Change the master key after this many seconds. Master key is used as a basis
# (source) for the encryption keys.
wpa_gmk_rekey=86400

hw_mode=g
channel=6


Ha ezek után újraindítjuk a linux-ot, akkor már van egy Access point eszközünk, ami IP-t is oszt, de még nincs összekapcsolva a két kártya, tehát hozzunk létre egy /etc/ap.fw fájlt, állítsuk át a jogosultásot rajta végrehajthatóvá:

touch /etc/ap.fw
chomd +x /etc/ap.fw

Ezután írjuk bele az alábbiakat:

#/etc/ap.fw
#!/bin/bash
#Enable NAT
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
sysctl -w net.ipv4.ip_forward=1

Ezután nincs más dolgunk, mint tolni egy restart-ot, a linuxra, majd lehet is használni a WPA2 védelemmel ellátott access point eszközünket!

Szavazz a cikkre...: 
Értékelés: Nincs
5
Átlag: 5 (1 szavazat)