Wi-Fi pour maman

Formulation du problème



Faites du Wi-Fi dans un appartement de 2 pièces ou plus, de sorte que la vitesse dans n'importe quel endroit soit d'au moins 90 Mbps sur n'importe quel appareil mobile moderne (IEEE 802.11ac).



Nous supposons que notre appartement typique contient un ensemble typique d'utilisateurs:



  1. Conditionnel Juste un utilisateur (nous utilisons YandexDNS de base)
  2. Grand-mère conditionnelle peur d'Internet (YandexDNS, pas de sites frauduleux et de virus)
  3. Étudiant conditionnel de 5e année qui a besoin d'Internet sans restrictions (accès Internet via VPN vers l'Europe, DNS 8.8.8.8)
  4. Un lycéen conditionnel de 7e année, qui, pour des raisons administratives, doit éteindre Internet à 21h00 en semaine et à 22h00 le week-end (nous utilisons YandexDNS "Family" et désactivons / activons le SSID selon le calendrier).




Simulation radio



Pour commencer, en règle générale, si l'appartement a des murs en béton et que le nombre de pièces est de 2 ou plus, un point d'accès Wi-Fi ne suffira pas, car 20 Mbit / s sur le canapé près de la fenêtre ne nous convient plus aujourd'hui, ce qui signifie que le niveau de signal minimum sur le périphérique client doit être d'au moins -65 dB.



Voici un exemple:

Nous avons mis un point d'accès dans le couloir, dans la gamme 5 GHz, la zone de couverture jusqu'à -65 dB ressemble à ceci:



image image

Par conséquent, nous devons ajouter au moins 2 points d'accès supplémentaires, nous obtenons ce qui suit:



image image

image



C'est déjà mieux, nous avons décidé du nombre et de l'emplacement des points d'accès.



Configuration du Wi-Fi basé sur Mikrotik hAP ac



1. Schéma de réseau et plan d'adresses



image

Piccy.info - Hébergement d'images gratuit



2. Mise à jour du logiciel et installation du package de support multicast pour IPTV. C'est facile pour Google.



3. Je propose de créer 4 VLAN: 10,20,30,40, pour chaque type d'utilisateur



/interface bridge vlan
add bridge=bridge_vlan_10 tagged=VLAN_10_TRUNK_ETH5,VLAN_10_TRUNK_ETH4 vlan-ids=10
add bridge=bridge_vlan_20 tagged=VLAN_20_TRUNK_ETH5,VLAN_20_TRUNK_ETH4 vlan-ids=20
add bridge=bridge_vlan_30 tagged=VLAN_30_TRUNK_ETH5,VLAN_30_TRUNK_ETH4 vlan-ids=30
add bridge=bridge_vlan_40 tagged=VLAN_40_TRUNK_ETH5,VLAN_40_TRUNK_ETH4 vlan-ids=40
/interface vlan
add interface=ether4 name=VLAN_10_TRUNK_ETH4 vlan-id=10
add interface=ether5 name=VLAN_10_TRUNK_ETH5 vlan-id=10
add interface=ether4 name=VLAN_20_TRUNK_ETH4 vlan-id=20
add interface=ether5 name=VLAN_20_TRUNK_ETH5 vlan-id=20
add interface=ether4 name=VLAN_30_TRUNK_ETH4 vlan-id=30
add interface=ether5 name=VLAN_30_TRUNK_ETH5 vlan-id=30
add interface=ether4 name=VLAN_40_TRUNK_ETH4 vlan-id=40
add interface=ether5 name=VLAN_40_TRUNK_ETH5 vlan-id=40
/interface bridge port
add bridge=bridge_vlan_10 interface=ether2 pvid=10
add bridge=bridge_vlan_10 interface=ether3 pvid=10
add bridge=bridge_vlan_10 interface=wlan_2.4_GHz pvid=10
add bridge=bridge_vlan_10 interface=wlan_5_GHz pvid=10
add bridge=bridge_vlan_10 interface=VLAN_10_TRUNK_ETH5 priority=0 pvid=10
add bridge=bridge_vlan_20 interface=VLAN_20_TRUNK_ETH5 priority=0 pvid=20
add bridge=bridge_vlan_30 interface=VLAN_30_TRUNK_ETH5 priority=0 pvid=30
add bridge=bridge_vlan_40 interface=VLAN_40_TRUNK_ETH5 priority=0 pvid=40
add bridge=bridge_vlan_20 interface=wlan_2.4_GHz_virtual_2 pvid=20
add bridge=bridge_vlan_20 interface=wlan_5_GHz_virtual_2 pvid=20
add bridge=bridge_vlan_30 interface=wlan_2.4_GHz_virtual_3 pvid=30
add bridge=bridge_vlan_30 interface=wlan_5_GHz_virtual_3 pvid=30
add bridge=bridge_vlan_40 interface=wlan_2.4_GHz_virtual_4 pvid=40
add bridge=bridge_vlan_40 interface=wlan_5_GHz_virtual_4 pvid=40
add bridge=bridge_vlan_10 interface=VLAN_10_TRUNK_ETH4 priority=0 pvid=10
add bridge=bridge_vlan_20 interface=VLAN_20_TRUNK_ETH4 priority=0 pvid=20
add bridge=bridge_vlan_30 interface=VLAN_30_TRUNK_ETH4 priority=0 pvid=30
add bridge=bridge_vlan_40 interface=VLAN_40_TRUNK_ETH4 priority=0 pvid=40
      
      





4. Configurer des groupes pour les interfaces



/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface list member
add list=LAN
add interface=ether1 list=WAN
add interface=bridge_vlan_10 list=LAN
add interface=bridge_vlan_20 list=LAN
add interface=bridge_vlan_30 list=LAN
add interface=bridge_vlan_40 list=LAN
      
      





5. Définissez les adresses IP sur les interfaces LAN. Par exemple, prenez le réseau 172.16.2.0.24 et divisez-le en 4 morceaux à / 26



/ip address
add address=172.16.2.126/26 interface=bridge_vlan_20 network=172.16.2.64
add address=172.16.2.190/26 interface=bridge_vlan_30 network=172.16.2.128
add address=172.16.2.254/26 interface=bridge_vlan_40 network=172.16.2.192
add address=172.16.2.62/26 interface=bridge_vlan_10 network=172.16.2.0
      
      





6. Définissez l'adresse IP sur l'interface WAN (si elle est statique)



/ip address
add address=XXX.XXX.XXX.XXX/XXX interface=ether1 network=XXX.XXX.XXX.XXX
      
      





7. Définissez l'itinéraire par défaut vers le fournisseur



/ip route
add distance=1 gateway=XXX.XXX.XXX.XXX
      
      





8. Définissez le serveur DHCP



/ip pool
add name=vlan_10_dhcp_pool ranges=172.16.2.21-172.16.2.59
add name=vlan_20_dhcp_pool ranges=172.16.2.85-172.16.2.123
add name=vlan_30_dhcp_pool ranges=172.16.2.159-172.16.2.187
add name=vlan_40_dhcp_pool ranges=172.16.2.223-172.16.2.251
/ip dhcp-server network
add address=172.16.2.0/26 dns-server=77.88.8.8,77.88.8.1 domain=home.local gateway=172.16.2.62 netmask=26
add address=172.16.2.64/26 dns-server=77.88.8.88,77.88.8.2 domain=home.local gateway=172.16.2.126 netmask=26
add address=172.16.2.128/26 dns-server=8.8.8.8,8.8.4.4 domain=home.local gateway=172.16.2.190 netmask=26
add address=172.16.2.192/26 dns-server=77.88.8.7,77.88.8.3 domain=home.local gateway=172.16.2.254 netmask=26
/ip dhcp-server
add address-pool=vlan_10_dhcp_pool disabled=no interface=bridge_vlan_10 name=dhcp_server_vlan_10
add address-pool=vlan_20_dhcp_pool disabled=no interface=bridge_vlan_20 name=dhcp_server_vlan_20
add address-pool=vlan_30_dhcp_pool disabled=no interface=bridge_vlan_30 name=dhcp_server_vlan_30
add address-pool=vlan_40_dhcp_pool disabled=no interface=bridge_vlan_40 name=dhcp_server_vlan_40
      
      





9. N'oubliez pas le snooping igmp pour les décodeurs IPTV



/interface bridge
add igmp-snooping=yes name=bridge_vlan_10
add igmp-snooping=yes name=bridge_vlan_20
add igmp-snooping=yes name=bridge_vlan_30
add igmp-snooping=yes name=bridge_vlan_40
/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 interface=ether1 upstream=yes
      
      





10.Faites un tunnel VPN vers votre serveur VPS pour contourner les verrous (la configuration d'un serveur VPN sur Debian sera ci-dessous)



/interface l2tp-client
add connect-to=XXX.XXX.XXX.XXX disabled=no ipsec-secret=XXXXXXX keepalive-timeout=disabled name=l2tp-out1 password=XXXXXX profile=default use-ipsec=yes user=XXXXXX
      
      





11. Effectuez un routage basé sur des règles pour le trafic provenant du SSID, dont le trafic doit passer par le tunnel VPN.



/ip firewall mangle
add action=mark-routing chain=prerouting new-routing-mark=VPN_route_mark passthrough=yes src-address=172.16.2.128/26
/ip route
add check-gateway=ping distance=1 gateway=10.1.1.1 routing-mark=VPN_route_mark
      
      





12. Faire du NAT



/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN src-address=172.16.2.0/25
add action=masquerade chain=srcnat out-interface=l2tp-out1 src-address=172.16.2.128/26
add action=masquerade chain=srcnat out-interface-list=WAN src-address=172.16.2.192/26
      
      





13. Vous pouvez supprimer les éléments inutiles des règles de pare-feu, puis fermer ce que vous voulez.



/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid disabled=yes
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" disabled=yes in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related disabled=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid disabled=yes
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new disabled=yes in-interface-list=WAN
      
      





14. Configurer les profils de sécurité SSID



/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
add authentication-types=wpa-psk,wpa2-psk eap-methods="" group-ciphers=tkip,aes-ccm mode=dynamic-keys name=Profile_Home_wireless supplicant-identity="" \
    unicast-ciphers=tkip,aes-ccm wpa-pre-shared-key=home-wifi-00 wpa2-pre-shared-key=home-wifi-00
add authentication-types=wpa-psk,wpa2-psk eap-methods="" group-ciphers=tkip,aes-ccm mode=dynamic-keys name=Profile_Secure_wireless supplicant-identity=\
    "" unicast-ciphers=tkip,aes-ccm wpa-pre-shared-key=secure-wifi-00 wpa2-pre-shared-key=secure-wifi-00
add eap-methods="" group-ciphers=tkip,aes-ccm name=Profile_Children_wireless supplicant-identity="" unicast-ciphers=tkip,aes-ccm wpa-pre-shared-key=\
    children-wifi-00 wpa2-pre-shared-key=children-wifi-00
      
      





15. Configurez le Wi-Fi lui-même avec quatre SSID



/interface wireless
set [ find default-name=wlan1 ] band=2ghz-g/n country=russia distance=indoors installation=indoor mode=ap-bridge name=wlan_2.4_GHz security-profile=\
    Profile_Home_wireless ssid=Home_wireless tx-power=13 tx-power-mode=all-rates-fixed vlan-id=10 wireless-protocol=802.11 wps-mode=disabled
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_2.4_GHz multicast-buffering=disabled name=wlan_2.4_GHz_virtual_2 \
    security-profile=Profile_Secure_wireless ssid=Secure_wireless vlan-id=20 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_2.4_GHz multicast-buffering=disabled name=wlan_2.4_GHz_virtual_3 \
    security-profile=Profile_Home_wireless ssid=VPN_wireless vlan-id=30 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_2.4_GHz multicast-buffering=disabled name=wlan_2.4_GHz_virtual_4 \
    security-profile=Profile_Children_wireless ssid=Children_wireless vlan-id=40 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
set [ find default-name=wlan2 ] band=5ghz-n/ac channel-width=20/40mhz-Ce country=russia distance=indoors installation=indoor mode=ap-bridge name=\
    wlan_5_GHz security-profile=Profile_Home_wireless ssid=Home_wireless_pro tx-power=13 tx-power-mode=all-rates-fixed vlan-id=10 wireless-protocol=\
    802.11
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_5_GHz multicast-buffering=disabled name=wlan_5_GHz_virtual_2 \
    security-profile=Profile_Secure_wireless ssid=Secure_wireless_pro vlan-id=20 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_5_GHz multicast-buffering=disabled name=wlan_5_GHz_virtual_3 \
    security-profile=Profile_Home_wireless ssid=VPN_wireless_pro vlan-id=30 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
add keepalive-frames=disabled mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan_5_GHz multicast-buffering=disabled name=wlan_5_GHz_virtual_4 \
    security-profile=Profile_Children_wireless ssid=Children_wireless_pro vlan-id=40 wds-cost-range=0 wds-default-cost=0 wps-mode=disabled
      
      





16. Désactivez le réseau "enfants" selon un horaire:



/system scheduler
add interval=1d name=Switch_OFF_children_1 on-event=swich_off_children_2.4 policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=nov/28/2020 start-time=21:00:00
add interval=1d name=Switch_ON_children_1 on-event=swich_on_children_2.4 policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=nov/28/2020 start-time=07:00:00
add interval=1d name=Switch_OFF_children_2 on-event=swich_off_children_5 policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=nov/28/2020 start-time=21:00:00
add interval=1d name=Switch_ON_children_2 on-event=swich_on_children_5 policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=nov/28/2020 start-time=07:00:00
/system script
add dont-require-permissions=no name=swich_off_children_2.4 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "interface wireless disable wlan_2.4_GHz_virtual_4"
add dont-require-permissions=no name=swich_on_children_5 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "interface wireless enable wlan_5_GHz_virtual_4"
add dont-require-permissions=no name=swich_on_children_2.4 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "interface wireless enable wlan_2.4_GHz_virtual_4"
add dont-require-permissions=no name=swich_off_children_5 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "interface wireless disable wlan_5_GHz_virtual_4"
      
      





Il n'y a pas d'administrateur réseau et n'est pas attendu, nous n'utilisons donc pas KID Control.



17. Laissez la possibilité de configurer le routeur localement



/ip neighbor discovery-settings
set discover-interface-list=LAN
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
      
      





18. Petites choses

/system clock
set time-zone-name=Europe/Moscow
/system identity
set name=Miktotik-1
      
      





Sur Miktotik-1, Miktotik-2, nous faisons tout de la même manière, en changeant uniquement les adresses VLAN conformément au plan d'adresses.



Serveur VPN Debian



XXX.XXX.XXX.XXX -  public IP
<source>#sudo apt-get install libgmp3-dev gawk flex bison make
#sudo wget https://download.openswan.org/openswan/openswan-latest.tar.gz
#sudo tar -xvzf openswan-latest.tar.gz
#cd openswan-2.6.51
#sudo make programs
#sudo make install

#sudo nano /etc/ipsec.conf
config setup
   nat_traversal=yes
   virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
   oe=off
   protostack=netkey

conn L2TP-PSK-NAT
   rightsubnet=vhost:%priv
   also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
   authby=secret
   pfs=no
   auto=add
   keyingtries=3
   rekey=no
   ikelifetime=8h
   keylife=1h
   type=transport
   left=XXX.XXX.XXX.XXX
   leftprotoport=17/1701
   right=%any
   rightprotoport=17/%any
   
#sudo nano /etc/ipsec.secrets
XXX.XXX.XXX.XXX %any: PSK "PASSWORD"

#sudo nano /root/ipsec
#sudo iptables --table nat --append POSTROUTING --jump MASQUERADE
#sudo echo 1 > /proc/sys/net/ipv4/ip_forward
#for each in /proc/sys/net/ipv4/conf/*
#do
#echo 0 > $each/accept_redirects
#echo 0 > $each/send_redirects
#done
#sudo /etc/init.d/ipsec restar

#sudo chmod +x /root/ipsec

#sudo sh /root/ipsec

#sudo nano /etc/xl2tpd/xl2tpd.conf
[global]
port = 1701
ipsec saref = yes
saref refinfo = 30

[lns default]
ip range = 10.1.1.2-10.1.1.100
local ip = 10.1.1.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
name = VPN-1

#sudo nano /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPN-1
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

#sudo nano /var/log/syslog

#sudo nano /etc/ppp/chap-secrets
user-1 VPN-1 PASSWORD *

#sudo /etc/init.d/ipsec restart
sudo /etc/init.d/xl2tpd restart

#sudo ipsec verify

FIREWALL
#sudo apt-get install ufw
#sudo ufw disable
#sudo ufw allow ssh
#sudo ufw allow 500/udp
#sudo ufw allow 1701/udp
#sudo ufw allow 4500/udp
#sudo ufw allow from 10.1.1.0/24
#sudo ufw default allow routed
#sudo ufw delete ssh
#sudo ufw allow 4444
#sudo ufw enable
      
      





Afficher l'état du micrologiciel



#sudo ufw status verbose

      
      





Afficher les journaux si quelque chose est bloqué



#sudo ufw logging low
#sudo tail -f /var/log/ufw.log

      
      





Désactivez la journalisation afin de ne pas obstruer l'espace disque



#sudo ufw logging off
      
      







Changer le port ssh en un autre



sudo nano /etc/ssh/sshd_config
Port 4444
sudo systemctl restart sshd
      
      





Vérification des tentatives de piratage



sudo cat /var/log/auth.log | grep "authentication failure"
      
      





Terminé!



Maintenant, le serveur VPN fonctionnera même avec un iPhone sur 4G! Et en plus, il y aura un accès à tous les routeurs Mikrotik via SSH à partir d'un serveur VPS.



All Articles