Εγκατάσταση και ρύθμιση hostapd

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Εγκατάσταση και ρύθμιση hostapd

Δημοσίευσηαπό xXx » 21 Νοέμ 2013, 20:29

Εγκατάσταση και ρύθμιση hostapd
σε συστήματα βασισμένα σε debian (το ubuntu είναι ένα από αυτά).
Με το πακέτο hostapd στην ουσία μετατρέπουμε μία υποστηριζόμενη κάρτα ασύρματου δικτύου, σε ένα σημείο πρόσβασης ασύρματου δικτύου (wireless access point).
Ως παράδειγμα θα έχουμε ένα σύστημα debian wheezy (7.0.1 κατά την συγγραφή) με:
4 κάρτες ενσύρματου δικτύου eth0, eth1, eth2 και eth3
00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller (rev 10)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

1 USB κάρτα ασύρματου δικτύου wlan0
Η κάρτα είναι η Crypto AirData 54 Plus S2 USB και δούλεψε άψογα στο περάδειγμα.
Επίσης το ίδιο καλά δούλεψε και η Airlink WN710NP (αρκετά ακριβότερη).
Bus 001 Device 003: ID 148f:2070 Ralink Technology, Corp. RT2070 Wireless Adapter

Η eth0 παίρνει αυτόματα διεύθυνση και έχει πρόσβαση στο διαδίκτυο.
Στις eth1, eth2 και eth3 λειτουργεί εξυπηρετητής αυτόματης απόδοσης διευθύνσεων (dhcp), και παρέχουν ενσύρματη πρόσβαση με το τοπικό δίκτυο, αλλά και προς το διαδίκτυο (μέσω της eth0) σε άλλους υπολογιστές (ενσύρματους πελάτες).
Στην wlan0 λειτουργεί επίσης εξυπηρετητής αυτόματης απόδοσης διευθύνσεων (dhcp), και παρέχει ασύρματη πρόσβαση στο τοπικό δίκτυο αλλά και προς το διαδίκτυο σε άλλους υπολογιστές (ασύρματους πελάτες).
Ως dhcp server χρησιμοποιείται το πρόγραμμα dnsmasq.

Σημείωση:
Θα πρέπει να προσέξουμε στις δυνατότητες της ασύρματης κάρτας μας, να περιλαμβάνεται η λειτουργία MASTER ή AP, ειδάλλως δεν θα έχουμε το επιθυμητό αποτέλεσμα. Οι περισσότερες σύγχρονες κάρτες USB βασισμένες σε ολοκληρωμένο RALINK έχουν αυτή τη δυνατότητα, ακόμη και αν είναι από τις πιο οικονομικές και απλές σε χαρακτηριστικά. Η μόνη διαφορά με τις οικονομικότερες και απλούστερες θα είναι μάλλον η εμβέλεια.

Λεπτομέρειες δικτύου:

Η eth0 παίρνει αυτόματα διεύθυνση της σειράς 192.168.1.XXX
Η eth1 έχει τη στατική διεύθυνση 192.168.41.1 και δίνει διευθύνσεις από 192.168.41.44 έως 192.168.41.55 με μάσκα δικτύου 255.255.255.0
Η eth2 έχει τη στατική διεύθυνση 192.168.42.1 και δίνει διευθύνσεις από 192.168.42.44 έως 192.168.42.55 με μάσκα δικτύου 255.255.255.0
Η eth3 έχει τη στατική διεύθυνση 192.168.43.1 και δίνει διευθύνσεις από 192.168.43.44 έως 192.168.43.55 με μάσκα δικτύου 255.255.255.0
Η wlan0 έχει τη στατική διεύθυνση 192.168.55.1 και δίνει διευθύνσεις από 192.168.55.55 έως 192.168.55.77

Εκτέλεση
Για να «πάρει ζωή» το παραπάνω παράδειγμα το αρχείο /etc/network/interfaces θα πρέπει να είναι ως εξής:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.41.1
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.42.1
netmask 255.255.255.0

auto eth3
iface eth3 inet static
address 192.168.43.1
netmask 255.255.255.0

auto wlan0
iface wlan0 inet static
address 192.168.55.1
netmask 255.255.255.0


Φυσικά θα πρέπει να έχουμε φροντίσει εκ των πρoτέρων, ώστε όλες οι κάρτες μας να λειτουργούν σωστά και να έχουμε εγκαταστήσει τα απαραίτητα πακέτα για τη λειτουργία τους (π.χ. firmware-ralink για την κάρτα του παραδείγματος, wireless-tools wpasupplicant).

HOSTNAME και DOMAIN NAME
Το συγκεκριμένο μηχάνημα θα έχει το FQDN HOSTNAME: «box.linux.lan».
Οπότε το αρχείο /etc/hostname θα πρέπει να είναι ως εξής:
box

Και το αρχείο /etc/hosts κατ' ελάχιστον ως εξής:
127.0.0.1 box.linux.lan box localhost
127.0.1.1 box.linux.lan box
192.168.41.1 box.linux.lan box
192.168.42.1 box.linux.lan box
192.168.43.1 box.linux.lan box
192.168.55.1 box.linux.lan box

DHCP SERVER
Στο σημείο αυτό θα πρέπει να εγκαταστήσουμε το πακέτο dnsmasq και να το ρυθμίσουμε ώστε να έχουμε αυτόματη απόδοση διευθύνσεων στους πελάτες του δικτύου μας, καθώς και απόδοση domain name σε αυτούς.
Αφού το εγκαταστήσουμε:
Κώδικας: Επιλογή όλων
apt-get install dnsmasq

επεξεργαζόμαστε το αρχείο /etc/default/dnsmasq και το φτιάχνουμε ως εξής:
DOMAIN_SUFFIX='dnsdomainname'
ENABLED=1

Και το αρχείο /etc/dnsmasq.conf ως εξής:
dhcp-leasefile=/var/log/dnsmasq.txt
dhcp-authoritative
server=208.67.220.220
server=208.67.222.222
server=8.8.8.8
server=8.8.4.4
interface=eth1
interface=eth2
interface=eth3
interface=wlan0
expand-hosts
domain=linux.lan
dhcp-range=eth1,192.168.41.44,192.168.41.55,12h
dhcp-range=eth2,192.168.42.44,192.168.42.55,12h
dhcp-range=eth3,192.168.43.44,192.168.43.55,12h
dhcp-range=wlan0,192.168.55.55,192.168.55.77,4h
dhcp-option=vendor:MSFT,2,1i

Μετά από αυτό καλό θα είναι να επανεκκινήσουμε τον δαίμονα:
Κώδικας: Επιλογή όλων
service dnsmasq restart


Εγκατάσταση και ρύθμιση hostapd
Τώρα το πρόγραμμα dnsmasq είναι έτοιμο να εξυπηρετήσει πελάτες. Εφ' όσων λοιπόν έχουμε πλέον αυτόματη διευθυνσιοδότηση, μπορούμε να ενεργοποιήσουμε και το hostapd για να δεχθούμε και τους ασύρματους πελάτες στο δίκτυο μας.
Εγκαθιστούμε το πακέτο:
Κώδικας: Επιλογή όλων
apt-get install hostapd

Και στη συνέχεια τροποποιούμε το αρχείο /etc/default/hostapd ως εξής:
DAEMON_CONF="/etc/hostapd/hostapd.conf"

Τώρα θα χρειαστεί να φτιάξουμε το ΜΗ ΥΠΑΡΧΟΝ αρχείο /etc/hostapd/hostapd.conf ως εξής:
interface=wlan0
driver=nl80211
ssid=To-onoma-pou-thelete
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=to-kleidi-pou-thelete
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP


Σημείωση:
Οι ρυθμίσεις αυτές είναι οι απολύτως απαραίτητες, και ιδανικές για το υλικό του παραδείγματος. Παρόλο που ίσως να δουλέψουν και για εσάς, καλό θα ήταν να ρίχνατε μία εκτενή ματιά στο επίσημο παράδειγμα hostapd.conf μιας και εκεί θα βρείτε σίγουρα τις ρυθμίσεις που χρειάζεται η δική σας υλοποίηση.

Στο σημείο αυτό θα πρέπει να επανεκκινήσετε τον δαίμονα hostapd:
Κώδικας: Επιλογή όλων
service hostapd restart

Τώρα μπορείτε πλέον να συνδεθείτε ασύρματα με το δίκτυο σας, και αυτό θα γίνεται αυτόματα μετά από κάθε επανεκκίνηση του εξυπηρετητή σας, αρκεί να υπάρχει ο σύνδεσμος S01hostapd στην τοποθεσία /etc/rc2.d (μιλώντας για Debian και RUNLEVEL 2), κάτι το οποίο είναι προεπιλογή στα συστήματα Debian.
Αν θέλετε να σταματήσετε προσωρινά το hostapd για κάποιο λόγο:
Κώδικας: Επιλογή όλων
service hostapd stop

Αν θέλετε να μην ξεκινά με την εκκίνηση του συστήματος:
Κώδικας: Επιλογή όλων
update-rc.d hostapd remove

Για να ξεκινά και πάλι με την εκκίνηση του συστήματος:
Κώδικας: Επιλογή όλων
update-rc.d hostapd defaults

Όπως δηλαδή συμβαίνει με τους περισσότερους δαίμονες σε συστήματα debian.

Πρόσβαση πελατών στο διαδίκτυο (NAT & MASQUERADE)
Μέχρι εδώ όλα καλά, αλλά δεν έχουν πρόσβαση στο διαδίκτυο οι πελάτες; Αυτό είναι φυσικό, αφού αυτή είναι η προεπιλεγμένη συμπεριφορά. Θα πρέπει λοιπόν εσείς να ενεργοποιήσετε αυτή την δυνατότητα στο σύστημα σας. Ευτυχώς είναι αρκετά απλό, και απαιτεί πολύ λιγότερα από ότι κάνατε μέχρι τώρα.
Στο αρχείο /etc/sysctl.conf προσθέτουμε την γραμμή:
net.ipv4.ip_forward=1

ή αφαιρούμε το σύμβολο # από την ήδη υπάρχουσα γραμμή (28 περίπου), ή εκτελούμε την εντολή:
Κώδικας: Επιλογή όλων
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf

Η αλλαγή θα λάβει χώρα στη επόμενη επανεκκίνηση, ή μπορείτε να τρέξετε:
Κώδικας: Επιλογή όλων
sysctl -p

για άμεσα αποτελέσματα.
Το μόνο που μένει τώρα είναι μία απλή οδηγία στο iptables:
Κώδικας: Επιλογή όλων
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Τώρα όλοι οι πελάτες έχουν πρόσβαση στο διαδίκτυο μέσω της eth0. Για πιο «μόνιμα» αποτελέσματα, καλό θα ήταν να βάζατε την παραπάνω γραμμή στο αρχείο /etc/rc.local ώστε να ενεργοποιείτε την οδηγία στο iptables με κάθε επανεκκίνηση αυτόματα.

Παραπομπές
Αυτός ήταν ο εύκολος και γρήγορος δρόμος για να επιτύχετε το σκοπό σας. Ο δρόμος της Κακίας. Και σίγουρα δεν είναι ο πιο εγκεκριμένος από πολλές απόψεις. Τώρα που όλα λειτουργούν όπως θα θέλατε, και έχετε ξεμείνει και από δικαιολογίες, καιρός να περπατήσετε και λιγάκι στον δρόμο της Αρετής:

http://www.thekelleys.org.uk/dnsmasq/docs/
http://hostap.epitest.fi/hostapd/
http://www.netfilter.org/documentation/index.html

Μελετήστε λοιπόν τα παραπάνω για να ξέρετε που πατάτε.

Ελπίζω να βρείτε αυτόν τον οδηγό χρήσιμο.
Κυρίως Desktop: MoBo: GA-MA78GM-S2H | CPU: AMD Phenom(tm) II X4 920 2.80 GHz | VGA: NVIDIA Corporation GF119 [GeForce GT 610] | RAM: 3GB DDR2 800 | Audio: Realtek ALC889A (ATI SB) | Audio: NVIDIA Corporation GF119 HDMI | OS: Debian jessie 64bit
Άβαταρ μέλους
xXx
punkTUX
punkTUX
 
Δημοσιεύσεις: 211
Εγγραφή: 05 Μάιος 2010, 16:12
Τοποθεσία: Ελλάδα, Θεσσαλονίκη, Άνω Πόλη
Εκτύπωση

Re: Εγκατάσταση και ρύθμιση hostapd

Δημοσίευσηαπό simosx » 21 Νοέμ 2013, 21:13

Πολύ καλός οδηγός!

Κάτι που μπορεί να βοηθήσει, είναι πως μπορεί να διαπιστώσει κανείς αν μια ασύρματη κάρτα δικτύου υποστηρίζει master mode.
Δεν έχω αυτή τη στιγμή τέτοια κάρτα· μπορείς να δοκιμάσεις σε κανονικό σύστημα με Ubuntu, όπου η κάρτα είναι κανονικά σε χρήση, να τρέξεις

Κώδικας: Επιλογή όλων
sudo iwconfig wlan0 mode master


Πιστεύω ότι αν υποστηρίζει master, τότε δε θα εμφανιστεί κάποιο μήνυμα σφάλματος, οπότε αποτελεί επιβεβαίωση.
Αν αναφερθεί
Κώδικας: Επιλογή όλων
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Invalid argument.

τότε δεν υποστηρίζει.
Φυσικά, όταν λειτουργήσει και αλλάξει η κατάσταση σε master, τότε θα διακοπεί η σύνδεση με το τοπικό δίκτυο. Εδώ μάλλον θα χρειαστεί επανεκκίνηση και όλα είναι μια χαρά.

Κάτι τέτοιο με το hostapd είναι χρήσιμο και με Single Board Computer (SBC), όπως είναι το Raspberry Pi ή άλλα με μεγαλύτερες επιδόσεις.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials