Maison >Tutoriel système >Linux >Guide complet d'utilisation de l'implémentation de hostapd sur CentOS7 en mode sans AP

Guide complet d'utilisation de l'implémentation de hostapd sur CentOS7 en mode sans AP

王林
王林avant
2024-01-04 09:55:38851parcourir

Cet article est une autre façon d'implémenter le mode AP de point d'accès sans fil à l'aide de hostapd sous Linux : configuration du mode de routage hostapd.

La configuration de base du logiciel et du matériel ainsi que l'installation de hostapd sont expliquées dans la première moitié de « Configuration du mode AP CentOS 7 Hostapd ». Vous pouvez d'abord lire cet article, puis lire cet article.

La configuration du mode AP de Hostapd nécessite un pont entre la carte réseau filaire et la carte réseau sans fil. La configuration du mode de routage implique principalement le camouflage et le transfert des données de la carte réseau sans fil via la carte réseau filaire, il n'est donc pas nécessaire de relier le filaire et le réseau sans fil. cartes réseau sans fil.

La configuration de ce mode de routage est similaire à celle d'un routeur sans fil ordinaire. Le port réseau câblé est équivalent à l'interface WAN d'un routeur sans fil ordinaire. La carte réseau sans fil est chargée d'envoyer les signaux de diffusion sans fil pour les appareils sans fil tels que les téléphones mobiles et les ordinateurs portables. accéder au réseau.

Mais la différence est que par rapport aux routeurs sans fil ordinaires, cette implémentation ne dispose pas de quatre interfaces LAN ordinaires et ne peut pas être utilisée pour les connexions filaires par d'autres ordinateurs de bureau.

En fait, Linux, en tant que système d'exploitation principalement pour les fonctions réseau, peut également être connecté, mais cela nécessite des commutateurs et autres équipements, ce qui sera plus compliqué. Ma configuration ici ressemble à un routeur sans fil normal sans quatre interfaces LAN.

configuration hostapd.conf

Voici juste une configuration minimale :

#/etc/hostapd/hostapd.conf Configuration minimale

interface=wlp2s0

#bridge=br0                                                                                                                                                                     ’                                

driver=nl80211

ssid=test

hw_mode=g

canal=1

auth_algs=3

ignore_broadcast_ssid=0                   # S'il faut diffuser, 0 diffusion

wpa=3

wpa_passphrase=12345678                                                                      

La configuration est similaire au fichier de configuration du mode AP, il suffit de commenter l'option bridge=br0.

Configuration de l'interface filaire

Nous devons d’abord configurer correctement l’interface filaire et pouvoir accéder normalement à Internet. Le moyen le plus simple consiste à obtenir automatiquement l'adresse IP, la passerelle et le DNS du routeur. S'il n'y a pas de routeur, vous devez définir manuellement la méthode d'accès Internet de l'interface filaire, telle que la méthode PPPOE couramment utilisée, la méthode d'adresse IP statique, la méthode d'acquisition d'adresse IP dynamique, etc. Quoi qu’il en soit, il est plus simple d’obtenir l’adresse IP de manière dynamique.

Les paramètres de l'interface sans fil utilisent la commande ip addr add

Utilisez la commande ip addr add pour définir l'adresse IP de la carte réseau sans fil. Elle deviendra invalide après le redémarrage. Par exemple, 172.16.0.1/24 ou d'autres adresses privées, et ne se trouvent pas dans le même segment de réseau que la carte réseau filaire. Généralement, l'adresse IP obtenue par la carte réseau filaire du routeur est l'adresse du segment réseau 192.168.1.0/24.

adresse IP ajouter 172.16.0.1/24 dev wlp2s0

Conseils

 : CentOS 7 utilise actuellement la suite NetworkManager comme outil de configuration réseau par défaut. Un problème rencontré ici est que la commande nmcli fournie par la suite NetworkManager ne prend pas en charge la définition d'une adresse IP statique pour la carte réseau sans fil. Cela nécessite l'utilisation de la commande ip addr add pour définir manuellement l'adresse IP de la carte réseau sans fil ou dans /. etc/sysconfig/network Créez un nouveau fichier de configuration dans le dossier -scripts/ Il s'agit d'une méthode de configuration d'interface plus ancienne et classique.

Utiliser les profils réseau

Si vous souhaitez enregistrer les paramètres, vous pouvez créer un nouveau fichier /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0, et le nom du fichier est préfixé par ifcfg.

vi /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0

[root@server ~]# vi /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0

#TYPE=Ethernet

#BOOTPROTO=aucun

#DEFRUTE=oui

#IPV4_FAILURE_FATAL=non

#IPV6INIT=oui

#IPV6_AUTOCONF=oui

#IPV6_DEFROUTE=oui

#IPV6_FAILURE_FATAL=non

#NAME=static-wlp2s0

#UUID=a036678e-8fdf-48f3-8693-961bb6326i744

DEVICE=wlp2s0                                                                                                    

ONBOOT = oui

IPADDR=172.16.0.1                                                                           

PREFIX=24                                                                                                                  

#GATEWAY=192.168.10.254                                                                                                                           

#DNS1=127.0.0.1

#DNS2=192.168.10.254

#IPV6_PEERDNS=oui

#IPV6_PEERROUTES=oui

Après l'enregistrement, vous devez d'abord arrêter le service NetworkManager.service. Il est préférable de désactiver le démarrage, sinon des problèmes persisteront. Le principal symptôme est que network.service ne peut pas être démarré lors du démarrage.

Désactivez NetworkManager.service dès le démarrage au démarrage

systemctl désactive NetworkManager.service

Arrêtez le service NetworkManager.service

systemctl arrête NetworkManager.service

Si vous souhaitez voir si cela prend effet, vous pouvez redémarrer le service network.service ou redémarrer directement le système.

systemctl redémarrer network.service

Activer le transfert et configurer le masquage de l'interface Activer le transfert

L'utilisation de sysctl -w échouera après le redémarrage

sysctl -w net.ipv4.ip_forward=1

[root@server ~]# sysctl -w net.ipv4.ip_forward=1

net.ipv4.ip_forward = 1

L'activation du transfert IP ne sera pas invalide après le redémarrage. Utilisez la méthode suivante Après le redémarrage du système, les paramètres du dossier /etc/sysctl.d/ seront automatiquement chargés.

vi /etc/sysctl.d/ip_forward.conf

[root@server ~]# vi /etc/sysctl.d/ip_forward.conf

net.ipv4.ip_forward = 1

Configurer le camouflage de l'interface

Dans CentOS 7, firewalld et iptables peuvent être utilisés pour camoufler les interfaces. Le service firewalld.service est activé par défaut dans CentOS 7. Le service iptables est en conflit avec le service firewalld et un seul d'entre eux peut être activé.

Utilisez firewalld pour configurer le camouflage de l'interface

Si vous pouvez utiliser l'interface graphique pour le configurer, ce sera plus simple et plus clair. Ici, seule la commande firewalld-cmd est utilisée pour le configurer.

Si le service firewalld.service n'est pas démarré, vous devez d'abord démarrer le service firewalld.service.

systemctl démarre firewalld.service

Ajoutez l'interface sans fil à la zone de confiance et enregistrez la configuration. Par défaut, toutes les interfaces appartiennent à la zone publique et les restrictions de connexion sont strictes, entraînant l'impossibilité de se connecter.

firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent

[root@server ~]# firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent

succès

Activez le camouflage de la zone où se trouve l'interface filaire et enregistrez la configuration. Par défaut, l'interface filaire appartient à la zone publique.

firewall-cmd --zone=public --add-masquerade --permanent

[root@server ~]#firewall-cmd --zone=public --add-masquerade --permanent

succès

Redémarrez le service pare-feu

systemctl redémarrer firewalld.service

Utilisez iptables pour configurer le camouflage de l'interface

Si vous avez l'habitude d'utiliser iptables, vous devez installer le package iptables-services, qui contient les deux services iptables.service et ip6tables.service, qui sont utilisés respectivement pour ipv4 et ipv6.

Pour utiliser iptables, vous devez arrêter et désactiver le service firewalld.service

systemctl arrête pare-feud.service

systemctl désactiver firewalld.service

Activez à nouveau le service iptables.service. Comme ipv4 est toujours principalement utilisé, activez uniquement iptables.service. Si vous utilisez iptables, vous devez également configurer le service iptables.service au démarrage.

systemctl active iptables.service

Démarrez le service iptables.service

systemctl démarre iptables.service

Déguisement d'interface

iptables -t nat -A POSTROUTING -o p2p1 -j MASQUERADE

D'une manière générale, configurez simplement la commande ci-dessus. Si les paramètres du pare-feu sont stricts, vous devez ajouter l'interface de la carte réseau sans fil wlp2s0 qui permet le transfert.

iptables -t filtre -A FORWARD -i wlp2s0 -j ​​​​ACCEPT

Configuration dnsmasq Installation du logiciel dnsmasq

dnsmasq est principalement responsable de l'attribution des adresses IP des clients et des services de résolution DNS.

S'il n'est pas installé, installez d'abord le logiciel dnsmasq

miam, installez DNSmasq

Configuré pour démarrer automatiquement le service DNSmasq au démarrage

systemctl active dnsmasq.service

configuration dnsmasq.conf

vi /etc/dmsmasq.conf

[root@server ~]# vi /etc/dnsmasq.conf

# Spécifiez l'interface. Après avoir spécifié, ajoutez l'interface lo. Vous pouvez utiliser le caractère générique '*'

.

interface=wlp2s0

# Interface de liaison

bind-interfaces

# Pool d'adresses DHCP de 172.16.0.100 à 172.16.0.200

dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,1h

Le démarrage du service DNSMANSQ nécessite que l'adresse IP de la carte réseau sans fil soit correctement définie. dnsmasq définira automatiquement l'adresse actuelle de la carte réseau sans fil 172.16.0.1 comme adresse de passerelle et adresse DNS du client.

systemctl démarre dnsmasq.service

Redémarrez enfin le service hostapd

systemctl redémarrer hostapd.service

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer