Русский
Русский
English
Статистика
Реклама

Wi-Fi для мамы

Постановка задачи


Сделать Wi-Fi в 2+ комнатной квартире, при этом чтобы скорость в любой локации должна быть не ниже 90Мбит/с на любом современном мобильном устройстве (IEEE 802.11ac).

Предполагаем, что наша типовая квартира содержит типовой набор пользователей:

  1. Просто пользователь (используем базовый ЯндексDNS)
  2. Боящаяся интернета бабушка (ЯндексDNS, без мошеннических сайтов и вирусов)
  3. Студент 5 курса, которому нужен Интернет без ограничений (выход в Интернет через VPN в Европу, DNS 8.8.8.8)
  4. Школьник 7 класса, которому по административным причинам надо выключать Интернет в 21:00 час по будням и в 22:00 часа по выходным (используем ЯндексDNS Семейный и по расписанию выключаем/включаем SSID).

Радио моделирование


Начну с того, что как правило, если в квартире бетонные стены и количество комнат 2 и более, то одной точкой доступа Wi-Fi будет не обойтись, ведь 20 Мбит/с на диване у окна сегодня нас уже не устраивают, а это значит что минимальный уровень сигнала на клиенском устройстве долже быть не ниже -65дБ.

Вот пример:
Ставим одну точку доступа в прихожей, в 5 ГГц диапазоне зона копрытия до -65дБ выглядит так:

imageimage
Поэтому надо добавить еще как минимум 2 точки доступа, получаем следующее:

imageimage
image

Так уже лучше, с количеством и расположением точек доступа определились.

Настройка Wi-Fi на базе Mikrotik hAP ac


1. Схема сети и адресный план

image
Piccy.info - Free Image Hosting

2. Обновление ПО и установка пакета поддержки multicast для IPTV. Это легко нагуглить.

3. Предлагаю создать 4 VLAN-а: 10,20,30,40, под каждого типа пользователя

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

4. Задать группы для интерфейсов

/interface listadd comment=defconf name=WANadd comment=defconf name=LAN/interface list memberadd list=LANadd interface=ether1 list=WANadd interface=bridge_vlan_10 list=LANadd interface=bridge_vlan_20 list=LANadd interface=bridge_vlan_30 list=LANadd interface=bridge_vlan_40 list=LAN

5. Задать IP адреса на LAN интерфейсах. Например, берем сеть 172.16.2.0.24 и делим ее на 4 штуки по /26

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

6. Задать IP адрес на WAN интерфейсе (если он статический)

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

7. Задать маршрут по-умолчанию в сторону провайдера

/ip routeadd distance=1 gateway=XXX.XXX.XXX.XXX

8. Задать DHCP сервера

/ip pooladd name=vlan_10_dhcp_pool ranges=172.16.2.21-172.16.2.59add name=vlan_20_dhcp_pool ranges=172.16.2.85-172.16.2.123add name=vlan_30_dhcp_pool ranges=172.16.2.159-172.16.2.187add name=vlan_40_dhcp_pool ranges=172.16.2.223-172.16.2.251/ip dhcp-server networkadd 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=26add 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=26add 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=26add 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-serveradd address-pool=vlan_10_dhcp_pool disabled=no interface=bridge_vlan_10 name=dhcp_server_vlan_10add address-pool=vlan_20_dhcp_pool disabled=no interface=bridge_vlan_20 name=dhcp_server_vlan_20add address-pool=vlan_30_dhcp_pool disabled=no interface=bridge_vlan_30 name=dhcp_server_vlan_30add address-pool=vlan_40_dhcp_pool disabled=no interface=bridge_vlan_40 name=dhcp_server_vlan_40

9. Не забыть про igmp snooping для IPTV приставки

/interface bridgeadd igmp-snooping=yes name=bridge_vlan_10add igmp-snooping=yes name=bridge_vlan_20add igmp-snooping=yes name=bridge_vlan_30add igmp-snooping=yes name=bridge_vlan_40/routing igmp-proxy interfaceadd alternative-subnets=0.0.0.0/0 interface=ether1 upstream=yes

10. сделать VPN туннель до вашего VPS сервера для обхода блокировок (настройка сервера VPN на Debian будет ниже)

/interface l2tp-clientadd 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. Сделать Policy Based Routing для трафика из того SSID, трафик от которого должен идти через VPN туннель.

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

12. Сделать NAT

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

13. Можно убрать лишнее из правил межсетевого экрана, а потом закрыть то что хочется.

/ip firewall filteradd action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untrackedadd action=drop chain=input comment="defconf: drop invalid" connection-state=invalid disabled=yesadd action=accept chain=input comment="defconf: accept ICMP" protocol=icmpadd action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1add action=drop chain=input comment="defconf: drop all not coming from LAN" disabled=yes in-interface-list=!LANadd action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsecadd action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsecadd action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related disabled=yesadd action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untrackedadd action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid disabled=yesadd 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. Настроить профили безопасности для SSID

/interface wireless security-profilesset [ find default=yes ] supplicant-identity=MikroTikadd 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-00add 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-00add 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. Настроить сам Wi-Fi с четырьмя SSID

/interface wirelessset [ 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=disabledadd 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=disabledadd 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=disabledadd 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=disabledset [ 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.11add 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=disabledadd 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=disabledadd 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. Выключаем детскую сеть по расписанию:

/system scheduleradd 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:00add 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:00add 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:00add 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 scriptadd 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"

17. Оставить возможность настраивать роутер локально

/ip neighbor discovery-settingsset discover-interface-list=LAN/tool mac-serverset allowed-interface-list=LAN/tool mac-server mac-winboxset allowed-interface-list=LAN18.Мелочи/system clockset time-zone-name=Europe/Moscow/system identityset name=Miktorik-1

На Miktorik-1, Miktorik-2 делаем все тоже самое, только меняя адреса VLAN-ов в соответствие с адресным планом.

VPN сервер на базе Debian


XXX.XXX.XXX.XXX - ваш public IP#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.confconfig 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=netkeyconn L2TP-PSK-NAT   rightsubnet=vhost:%priv   also=L2TP-PSK-noNATconn 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.secretsXXX.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 = 1701ipsec saref = yessaref refinfo = 30[lns default]ip range = 10.1.1.2-10.1.1.100local ip = 10.1.1.1refuse chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yesname = VPN-1#sudo nano /etc/ppp/options.xl2tpdrequire-mschap-v2ms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0authcrtsctslockhide-passwordmodemdebugname VPN-1proxyarplcp-echo-interval 30lcp-echo-failure 4#sudo nano /var/log/syslog#sudo nano /etc/ppp/chap-secretsuser-1 VPN-1 PASSWORD *#sudo /etc/init.d/ipsec restartsudo /etc/init.d/xl2tpd restart#sudo ipsec verifyFIREWALL#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

Просмотр состояния FW

#sudo ufw status verbose

Просмотр логов если что-то блокируется

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

Отключение логирования, чтобы не забивать место на диске

#sudo ufw logging off


Меняем порт ssh на другой

sudo nano /etc/ssh/sshd_configPort 4444sudo systemctl restart sshd

Проверка нет ли попыток взлома

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

Готово!

Теперь VPN сервер будет работаеть даже с iPhone через 4G!
Источник: habr.com
К списку статей
Опубликовано: 07.12.2020 02:05:58
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Сетевые технологии

Беспроводные технологии

Сетевое оборудование

Wi-fi

Mikrotik

Debian

Ekahau

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru