1 (edytowany przez jezy 2016-01-12 18:43:22)

Temat: Ograniczenie dostępu

Mam problem z ograniczeniem dostępu do internetu wybranym osobom.

Ustawiam:
W Gargoyle -> zakładka -> Firewall -> Ograniczenia :
Ma zastosowanie do : wszystkich urządzeń z wyjątkiem
Lista IP wyjątków: xxxxxxxx
Cały dzień, codziennie, dostęp do całej sieci.

Łącze się pierwszym lepszym telefonem lub laptopem do sieci i mam dostęp do internetu pomimo blokady.

WR1043ND na Gargoyle 1.6.2.2

 Adres IP WAN:192.168.8.100
Maska podsieci WAN:255.255.255.0
Adres MAC WAN:xxxxxxxxxxxx
Adres bramy WAN:192.168.8.1
Serwer(y) DNS WAN:192.168.8.1
Adres IP LAN:192.168.2.1
Maska podsieci LAN:255.255.255.0
Adres MAC LAN:xxxxxxxxxxxxxx
Interfejs WAN: eth1
internet z modemu E3372  Hilink podpięty pod router
Klient VPN na IP: 10.8.0.2 

2

Odp: Ograniczenie dostępu

uci show gargoyle
uci show firewall

pokaż

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez jezy 2016-01-12 18:42:47)

Odp: Ograniczenie dostępu

Gargoyle

gargoyle.global=global
gargoyle.global.web_root=/www
gargoyle.global.bin_root=.
gargoyle.global.js_root=js
gargoyle.global.theme_root=themes
gargoyle.global.common_css=common.css
gargoyle.global.common_js=common.js
gargoyle.global.require_web_password=1
gargoyle.global.version=1.6.2.2 (r42647)
gargoyle.global.dateformat=iso8601
gargoyle.global.session_timeout=120
gargoyle.global.hour_style=24
gargoyle.global.fallback_lang=English-EN
gargoyle.global.language=Polish-PL
gargoyle.global.theme=Xeye
gargoyle.display=display
gargoyle.display.firewall=Firewall
gargoyle.display.status=Status
gargoyle.display.connection_dhcp=DHCP
gargoyle.display.connection_wol=Wake on LAN
gargoyle.display.system=System
gargoyle.display.connection_openvpn=OpenVPN
gargoyle.display.firewall_portforwarding=Przekierowanie portów
gargoyle.display.firewall_connlimits=Limity połączeń
gargoyle.display.firewall_restriction=Ograniczenia
gargoyle.display.firewall_quotas=Limity transferu
gargoyle.display.firewall_qosupload=QoS (wysyłanie)
gargoyle.display.firewall_qosdownload=QoS (pobieranie)
gargoyle.display.status_overview=Ogólny
gargoyle.display.status_bandwidth=Zużycie pasma
gargoyle.display.status_bdist=Podział pasma
gargoyle.display.status_webmon=Monitor sieci
gargoyle.display.status_quotause=Limity
gargoyle.display.status_qos=Podział QoS
gargoyle.display.status_hosts=Połączone urządzenia
gargoyle.display.status_connections=Lista połączeń
gargoyle.display.connection=Konfiguracja
gargoyle.display.connection_dyndns=Dynamiczny DNS
gargoyle.display.connection_basic=Podstawowa
gargoyle.display.connection_routing=Trasy
gargoyle.display.system_access=Dostęp do routera
gargoyle.display.system_ident=Identyfikacja
gargoyle.display.system_time=Czas
gargoyle.display.system_plugins=Dodatki
gargoyle.display.system_backup=Kopia konfiguracji
gargoyle.display.system_update=Aktualizacja
gargoyle.display.system_reboot=Restart
gargoyle.display.system_about=O systemie
gargoyle.display.logout=Wylogowanie
gargoyle.display.status_openvpn_connections=Status OpenVPN
gargoyle.display.system_printers=Drukarki
gargoyle.display.system_initd=Usługi
gargoyle.display.system_logread=Logi systemowe
gargoyle.display.connection_ping_watchdog=Monitor połączenia
gargoyle.display.system_wifi_schedule=Harmonogram Wi-Fi
gargoyle.display.system_languages=Języki
gargoyle.display.system_usb_storage=Nośniki USB
gargoyle.display.system_themes=Motywy
gargoyle.display.system_webshell=Webshell
gargoyle.scripts=scripts
gargoyle.scripts.firewall_portforwarding=port_forwarding.sh
gargoyle.scripts.firewall_connlimits=connlimits.sh
gargoyle.scripts.firewall_restriction=restriction.sh
gargoyle.scripts.firewall_quotas=quotas.sh
gargoyle.scripts.firewall_qosupload=qos_upload.sh
gargoyle.scripts.firewall_qosdownload=qos_download.sh
gargoyle.scripts.status_overview=overview.sh
gargoyle.scripts.status_bandwidth=bandwidth.sh
gargoyle.scripts.status_bdist=bandwidth_distribution.sh
gargoyle.scripts.status_quotause=quota_usage.sh
gargoyle.scripts.status_webmon=webmon.sh
gargoyle.scripts.status_qos=qos_distribution.sh
gargoyle.scripts.status_hosts=hosts.sh
gargoyle.scripts.status_connections=conntrack.sh
gargoyle.scripts.connection_dyndns=ddns.sh
gargoyle.scripts.connection_basic=basic.sh
gargoyle.scripts.connection_dhcp=dhcp.sh
gargoyle.scripts.connection_routing=routing.sh
gargoyle.scripts.connection_wol=wol.sh
gargoyle.scripts.system_access=access.sh
gargoyle.scripts.system_ident=identification.sh
gargoyle.scripts.system_time=time.sh
gargoyle.scripts.system_plugins=plugins.sh
gargoyle.scripts.system_backup=backup.sh
gargoyle.scripts.system_update=update.sh
gargoyle.scripts.system_reboot=reboot.sh
gargoyle.scripts.system_about=about.sh
gargoyle.scripts.logout=logout.sh
gargoyle.scripts.connection_openvpn=openvpn.sh
gargoyle.scripts.status_openvpn_connections=openvpn_connections.sh
gargoyle.scripts.system_printers=printers.sh
gargoyle.scripts.system_initd=initd.sh
gargoyle.scripts.system_logread=logread.sh
gargoyle.scripts.connection_ping_watchdog=ping_watchdog.sh
gargoyle.scripts.system_wifi_schedule=wifi_schedule.sh
gargoyle.scripts.system_languages=languages.sh
gargoyle.scripts.system_usb_storage=usb_storage.sh
gargoyle.scripts.system_themes=themes.sh
gargoyle.scripts.system_webshell=webshell.sh
gargoyle.firewall=300
gargoyle.firewall.portforwarding=100
gargoyle.firewall.connlimits=115
gargoyle.firewall.restriction=125
gargoyle.firewall.quotas=175
gargoyle.firewall.qosupload=200
gargoyle.firewall.qosdownload=300
gargoyle.status=100
gargoyle.status.overview=100
gargoyle.status.bandwidth=200
gargoyle.status.bdist=220
gargoyle.status.webmon=250
gargoyle.status.hosts=400
gargoyle.status.connections=500
gargoyle.connection=200
gargoyle.connection.basic=100
gargoyle.connection.dhcp=200
gargoyle.connection.dyndns=300
gargoyle.connection.routing=400
gargoyle.connection.wol=500
gargoyle.connection.openvpn=225
gargoyle.connection.ping_watchdog=600
gargoyle.system=400
gargoyle.system.access=100
gargoyle.system.ident=200
gargoyle.system.time=300
gargoyle.system.plugins=312
gargoyle.system.backup=400
gargoyle.system.update=500
gargoyle.system.reboot=600
gargoyle.system.about=1000
gargoyle.system.printers=360
gargoyle.system.initd=310
gargoyle.system.logread=311
gargoyle.system.wifi_schedule=370
gargoyle.system.languages=307
gargoyle.system.usb_storage=350
gargoyle.system.themes=311
gargoyle.system.webshell=312
gargoyle.logout=500
gargoyle.bandwidth_display=bandwidth_display
gargoyle.help=help
gargoyle.help.ddns_1=0 

Firewall

 firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood=1
firewall.@defaults[0].input=ACCEPT
firewall.@defaults[0].output=ACCEPT
firewall.@defaults[0].forward=REJECT
firewall.@zone[0]=zone
firewall.@zone[0].name=lan
firewall.@zone[0].network=lan
firewall.@zone[0].input=ACCEPT
firewall.@zone[0].output=ACCEPT
firewall.@zone[0].forward=REJECT
firewall.@zone[1]=zone
firewall.@zone[1].name=wan
firewall.@zone[1].network=wan wan6
firewall.@zone[1].input=REJECT
firewall.@zone[1].output=ACCEPT
firewall.@zone[1].forward=REJECT
firewall.@zone[1].masq=1
firewall.@zone[1].mtu_fix=1
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src=lan
firewall.@forwarding[0].dest=wan
firewall.@rule[0]=rule
firewall.@rule[0].name=Allow-DHCP-Renew
firewall.@rule[0].src=wan
firewall.@rule[0].proto=udp
firewall.@rule[0].dest_port=68
firewall.@rule[0].target=ACCEPT
firewall.@rule[0].family=ipv4
firewall.@rule[1]=rule
firewall.@rule[1].name=Allow-Ping
firewall.@rule[1].src=wan
firewall.@rule[1].proto=icmp
firewall.@rule[1].icmp_type=echo-request
firewall.@rule[1].family=ipv4
firewall.@rule[1].target=ACCEPT
firewall.@rule[2]=rule
firewall.@rule[2].name=Allow-DHCPv6
firewall.@rule[2].src=wan
firewall.@rule[2].proto=udp
firewall.@rule[2].src_ip=fe80::/10
firewall.@rule[2].src_port=547
firewall.@rule[2].dest_ip=fe80::/10
firewall.@rule[2].dest_port=546
firewall.@rule[2].family=ipv6
firewall.@rule[2].target=ACCEPT
firewall.@rule[3]=rule
firewall.@rule[3].name=Allow-ICMPv6-Input
firewall.@rule[3].src=wan
firewall.@rule[3].proto=icmp
firewall.@rule[3].icmp_type=echo-request echo-reply destination-unreachable packet-too-big time-exceeded bad-header unknown-header-type router-solicitation neighbour-solicitation router-advertisement neighbour-advertisement
firewall.@rule[3].limit=1000/sec
firewall.@rule[3].family=ipv6
firewall.@rule[3].target=ACCEPT
firewall.@rule[4]=rule
firewall.@rule[4].name=Allow-ICMPv6-Forward
firewall.@rule[4].src=wan
firewall.@rule[4].dest=*
firewall.@rule[4].proto=icmp
firewall.@rule[4].icmp_type=echo-request echo-reply destination-unreachable packet-too-big time-exceeded bad-header unknown-header-type
firewall.@rule[4].limit=1000/sec
firewall.@rule[4].family=ipv6
firewall.@rule[4].target=ACCEPT
firewall.@include[0]=include
firewall.@include[0].path=/etc/firewall.user
firewall.@include[0].reload=1
firewall.@include[1]=include
firewall.@include[1].type=script
firewall.@include[1].path=/usr/lib/gargoyle_firewall_util/gargoyle_additions.firewall
firewall.@include[1].family=IPv4
firewall.@include[1].reload=1
firewall.miniupnpd=include
firewall.miniupnpd.type=script
firewall.miniupnpd.path=/usr/share/miniupnpd/firewall.include
firewall.miniupnpd.family=IPv4
firewall.miniupnpd.reload=1
firewall.openvpn_include_file=include
firewall.openvpn_include_file.path=/etc/openvpn.firewall
firewall.openvpn_include_file.reload=1
firewall.vpn_zone=zone
firewall.vpn_zone.name=vpn
firewall.vpn_zone.network=vpn
firewall.vpn_zone.input=ACCEPT
firewall.vpn_zone.output=ACCEPT
firewall.vpn_zone.forward=ACCEPT
firewall.vpn_zone.mtu_fix=1
firewall.vpn_zone.masq=1
firewall.vpn_lan_forwarding=forwarding
firewall.vpn_lan_forwarding.src=lan
firewall.vpn_lan_forwarding.dest=vpn
firewall.ra_443_443=remote_accept
firewall.ra_443_443.local_port=443
firewall.ra_443_443.remote_port=443
firewall.ra_443_443.proto=tcp
firewall.ra_443_443.zone=wan
firewall.ra_80_80=remote_accept
firewall.ra_80_80.local_port=80
firewall.ra_80_80.remote_port=80
firewall.ra_80_80.proto=tcp
firewall.ra_80_80.zone=wan
firewall.ra_22_22=remote_accept
firewall.ra_22_22.local_port=22
firewall.ra_22_22.remote_port=22
firewall.ra_22_22.proto=tcp
firewall.ra_22_22.zone=wan
firewall.rule_1=restriction_rule
firewall.rule_1.is_ingress=0
firewall.rule_1.description=Block
firewall.rule_1.not_local_addr=192.168.2.100,192.168.8.100,192.168.8.1
firewall.rule_1.enabled=1 

4

Odp: Ograniczenie dostępu

Ktoś wie jak rozwiązać problem ?

5

Odp: Ograniczenie dostępu

aby zrobic  ograniczenie wybranym osobom  musisz   zrobic   > tylko dla wskazanych urzdzeń   = podajesz  IP  lub  MAC  ktróre blokujesz   > wskazujesz dni tygodnia    itd   -  wydaje  mi sie  żeby działo  musisz mieć  w DHCP  zdefiniowane   statyczne  adresy IP  - ja tak mam   i działa  doskonale  ale  jezeli to nie ma wpływu  to i tak warto to miec  zrobione  bo  wtedy masz  "porzadek "  bo zawsze  klijenci dostaja ten sam IP  .

6

Odp: Ograniczenie dostępu

No tak.

Ale weźmy pod uwagę że ktoś podłącza się pod port LAN na routerze lub pozna hasło do sieci  bezprzewodowej i wtedy ma dostęp do sieci do momentu kiedy ja go nie zablokuje.

Dobrym rozwiązaniem jest W Gargoyle -> zakładka -> Firewall -> Ograniczenia :
Ma zastosowanie do : wszystkich urządzeń z wyjątkiem
Lista IP wyjątków: xxxxxxxx Cały dzień, codziennie, dostęp do całej sieci.

Ale po zmianie Interfejs WAN ze względu na podpięcie modemu E3372  Hilink ograniczenia w ogóle nie działają.

Mogę ustawić aby ograniczyło wszystkie urządzenia a i tak będę miały dostęp do sieci.

Jedyne co zauważyłem to po zablokowaniu nie można dobić się do modemu pod 192.168.8.1

7 (edytowany przez ad2014 2016-01-11 22:17:18)

Odp: Ograniczenie dostępu

sprawdziłem  u mnie działa prawidłowo w obie strony   tzn.  zablokowalem  wszystkich  i dodalem siebie do białej listy   =  działa i tak i tak  .
Z modem jeszcze  nie sprawdzałem  - ale  sprawdze jutro   - uzywam neta  z kabla  podłaczonego do wan .
albo cos robisz nie tak   albo  cos  zmienia modem  .
U mnie  tak wygldaja koncowe linie 

firewall.rule_2.description=blokada 21:30-7:00 Tomka
firewall.rule_2.local_addr=192.168.1.103
firewall.rule_2.active_weekdays=sun,mon,tue,wed,thu
firewall.rule_2.active_hours=22:00-7:00
firewall.rule_2.enabled=0
firewall.rule_3=restriction_rule
firewall.rule_3.is_ingress=0
firewall.rule_3.description=wszyscy
firewall.rule_3.enabled=1
firewall.exception_1=whitelist_rule
firewall.exception_1.is_ingress=0
firewall.exception_1.description=adam
firewall.exception_1.local_addr=192.168.1.100
firewall.exception_1.enabled=1

jak widac  zapisane sa  2 obcje w zaleznosci  co  wybiorę
oraz  po twojemu   - wszystkich za wyjatkiem

firewall.rule_3=restriction_rule
firewall.rule_3.is_ingress=0
firewall.rule_3.description=blokada
firewall.rule_3.not_local_addr=192.168.1.100
firewall.rule_3.enabled=1

i to tez blokuje

8

Odp: Ograniczenie dostępu

Zrobiłem parę testów.

Wygląda na to że problem tkwi gdzieś w połączeniu VPN.

Test 1 : zablokowałem  wszystkich  i dodałem siebie na routerze WDR3600 by gargoyle-1.6.2.2 - blokada działała ( jest to drugie urządzenie testowe )
Test 2: zablokowałem  wszystkich  i dodałem siebie na routerze WR1043ND by gargoyle-1.6.2.2  - blokada nie działa ( urządzenie o którym rozmawiamy )
Test 3 : zablokowałem  wszystkich  i dodałem siebie na routerze WR1043ND oraz rozłączyłem się wcześniej z serwerem VPN. - blokada działa

Wynika z tego że blokada nie działa kiedy router połączony jest z serwerem VPN.

9

Odp: Ograniczenie dostępu

@Cezary

Mógł bym cię prosić o podpowiedź w rozwiązaniu tego problemu ??

Dlaczego jak router " A " łączy się z routerem " B "  po VPN to na routerze " A " nie działają ograniczenia wprowadzone w Firewall.

Natomiast po rozłączeniu się z siecią VPN ograniczenia działają i dostęp do internetu mają jedynie PC zdefiniowane jako wyjątki

10

Odp: Ograniczenie dostępu

Prawdopodobnie dlatego że vpn nie jest traktowany jako pełnoprawny wan, a na nim działają ograniczenia.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Ograniczenie dostępu

Ok można to jakoś zmienić ?? dopisać VPN jako pełnoprawny wan aby te ograniczenia poszły ?? Czy nie da razy nic z tym zrobić ?

12

Odp: Ograniczenie dostępu

Jeżeli tak jest to nic z tym nie zrobisz bez gruntownej zmiany podstaw działania openvpn w gargoyle.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: Ograniczenie dostępu

A czy w takim razie , jest możliwość w momencie podpięcia się czegokolwiek/kogokolwiek  pod port LAN1-4 w routerze wykonania skryptu/ programu który da informację zwrotną  SMS czy też @ że podpięto się po port1-4 ?

14

Odp: Ograniczenie dostępu

Jak sobie oprogramujesz. Możesz sprawdzać cyklicznie czy podłączyło pod lan (swconfig) i później coś zrobić z tą informacją.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Ograniczenie dostępu

Załóżmy że będzie to wysłanie Maila.

Sprzęt: WR1043ND na Gargoyle 1.6.2.2 z modemem E3372h-153 Hlink

Czego będę potrzebował ?
1. Muszę zainstalować  klienta msmtp lub ssmtp albo mailsend. Który będzie najlepszy do tego ?
2. Zdaje mi się że mogę wykorzystać cron-a do sprawdzania cyklicznego czy podłączone jest coś pod lan1-4
3. Musze posiadać skrypt który wykorzystam w cron-ie który sprawdzi porty lan1-4 i w momencie wykrycia " nowego " podłączenia ( żeby nie wysyłał co minute informacji ze jest coś podłączone dlatego musiał by wysłać tylko raz. Dopiero po rozłączeniu i ponownym podłączeniu tego samego portu kojenia informacja.   )   wyśle maila.
Czy ktoś posiada jakiś przykład który można adoptować ? bądź tez ktoś się już bawił w takie coś lub mógł by coś takiego zrobić ?

16

Odp: Ograniczenie dostępu

1. Który chcesz smile
2. tylko nie częściej niż minutę. Jak chcesz częściej to po prostu napisz skrypt który będzie cały czas sprawdzał

Co chcesz w ogóle sprawdzić? Czy jest kabel podłączony czy że coś jest transmitowane na tym porcie?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: Ograniczenie dostępu

chcę sprawdzać czy podłączony jest kabel.

Z napisaniem skryptu będzie problem , nie posiadam takiej obszernej wiedzy. Jak ktoś się podejmie tematu mogę $$$

18

Odp: Ograniczenie dostępu

W gargoyle masz taki skrypt: https://github.com/obsy/gargoyle/blob/m … tchinfo.sh

Po jego uruchomieniu dostaniesz stan portów lanowych. Skopiuj go sobie na bok i dodaj to co potrzebujesz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Ograniczenie dostępu

Udało mi się postawić pierwszy krok i zainstalować, skonfigurować i przetestować wysyłanie wiadomości e-mail wg. poradnika http://eko.one.pl/?p=openwrt-email. Wysyłanie zadziałało dopiero jak wygenerowałem " hasło do aplikacji " w Google i wpisałem je do konfiguracji msmtprc.

Kolejny krok to skrypt.
1. Skopiowałem dane z githuba do notepad++
2. Zapisałem
3. Plik przerzuciłem do /sbin/alan.sh
4. Nadalem prawa 7777
5. Próba odpalania /sbin/alan.sh start kończy -ash: -ash:: not found

Ktoś pomoże z tym skryptem ?

Cel jest taki :
1 jak wykryje podłączenie pod LAN1 robi cat /mnt/LAN1.txt | sendmail -t
2 jak wykryje podłączenie pod LAN2 robi cat /mnt/LAN2.txt | sendmail -t
3 jak wykryje podłączenie pod LAN3 robi cat /mnt/LAN3.txt | sendmail -t
4 jak wykryje podłączenie pod LAN4 robi cat /mnt/LAN4.txt | sendmail -t

20

Odp: Ograniczenie dostępu

W notepadzie zmień końce linii na unix bo teraz masz windows.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: Ograniczenie dostępu

Działą po zmianie linii na unix.

Zakładam że teraz muszę dodać formułę coś w stylu :

if LAN1 switch STATUS
then cat /mnt/LAN1.txt | sendmail -t

Ktoś pomoże ??

22

Odp: Ograniczenie dostępu

if swconfig dev switch0 port 1 get link | grep -q "link:up"; then
cat /mnt/LAN1.txt | sendmail -t
fi

Wykonaj
swconfig dev switch0 port 1 get link

w konsoli przy podłączonym i odłączonym kablu. Zobaczysz co wyświetla. Więc grepujemy i jeżeli taki ciąg znaków wyświetla to coś z tym robimy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: Ograniczenie dostępu

root@WR1043ND:~# swconfig dev switch0 port 1 get link
port:1 link:down

root@WR1043ND:~# swconfig dev switch0 port 1 get link
port:1 link:up speed:100baseT full-duplex txflow rxflow

Niestety nie wykonało powiadomienia cat /mnt/LAN1.txt | sendmail -t

24

Odp: Ograniczenie dostępu

A kiedy i jak wykonałeś ten skrypt?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25 (edytowany przez jezy 2016-01-15 18:53:56)

Odp: Ograniczenie dostępu

za pomocą putty

przy rozłączonym kablu: swconfig dev switch0 port 1 get link

efekt :

 root@WR1043ND:~# swconfig dev switch0 port 1 get link
port:1 link:down 

przy podłączonym kablu: swconfig dev switch0 port 1 get link

efekt:

 root@WR1043ND:~# swconfig dev switch0 port 1 get link
port:1 link:up speed:100baseT full-duplex txflow rxflow 

sprawdziłem pocztę : nie ma powiadomienia

Sprawdziłem samą komendę wysyłania emaila aby wykluczyć błąd wysyłania, po wykonaniu komendy po chwili przyszła informacja. :

 cat /mnt/LAN1.txt | sendmail -t 

Natomiast komendę

if swconfig dev switch0 port 1 get link | grep -q "link:up"; then
cat /mnt/LAN1.txt | sendmail -t 

dodałem na końcu skryptu


#!/bin/sh
#
# (c) 2013 Cezary Jackiewicz, http://eko.one.pl
#
[ -e /sbin/swconfig ] || exit 0
board=""
if [ -e /lib/ar71xx.sh ]; then
. /lib/ar71xx.sh
board=$(ar71xx_board_name)
elif [ -e /lib/mvebu.sh ]; then
. /lib/mvebu.sh
board=$(mvebu_board_name)
fi
# PORTS="LAN1 LAN2 LAN3 LAN4"
case "$board" in
gl-inet)
PORTS="1";;
routerstation-pro)
PORTS="4 3 2";;
tl-mr3220 | \
tl-mr3420 | \
tl-wr1043nd | \
tl-wr741nd | \
tl-wr841n-v7)
PORTS="1 2 3 4";;
tl-mr3220-v2 | \
tl-mr3420-v2 | \
tl-wr741nd-v4 | \
tl-wr841n-v8)
PORTS="2 3 4 1";;
archer-c5 | \
archer-c7 | \
tl-wdr4300)
PORTS="2 3 4 5";;
dir-835-a1 | \
tl-wdr3500 | \
tl-wr1043nd-v2 | \
wndr4300)
PORTS="4 3 2 1";;
armada-xp-linksys-mamba | \
wndr3700 | \
wrt160nl | \
wzr-hp-g300nh)
PORTS="3 2 1 0";;
*)
PORTS="";;
esac
IFLAN=$(awk '/default_lan_if/ {print $2}' /etc/gargoyle_default_ifs)
VLAN=$(echo $IFLAN | cut -f2 -d.)
[ "$VLAN" = "$IFLAN" ] && VLAN=""
counter=0
for P in $PORTS; do
counter=$((counter + 1))
[ "$P" = "-1" ] && continue
[ -n "$VLAN" ] && {
PVID=$(swconfig dev switch0 port $P get pvid)
[ "$PVID" != "$VLAN" ] && continue
}
LINK=$(swconfig dev switch0 port $P get link | cut -f2,3 -d" ")
case "$LINK" in
"link:down") STATUS="-";;
"link:up speed:1000baseT") STATUS="1Gbps";;
"link:up speed:100baseT") STATUS="100Mbps";;
"link:up speed:10baseT") STATUS="10Mbps";;
"1000") STATUS="1Gbps";;
"100") STATUS="100Mbps";;
"10") STATUS="10Mbps";;
"0") STATUS="-";;
"1") STATUS=$(i18n conn);;
*) STATUS="?";;
esac
case "$counter" in
1) PORT="LAN1";;
2) PORT="LAN2";;
3) PORT="LAN3";;
4) PORT="LAN4";;
esac
echo "ports.push([\"$PORT\",\"$STATUS\"]);"

if swconfig dev switch0 port 1 get link | grep -q "link:up"; then
cat /mnt/LAN1.txt | sendmail -t

done
exit 0