Users/Apps via aparte network interfaces naar buiten

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
Gegroet allen!

Ik zit met volgende zeer uitdagende vraag waar ik niet direct een antwoord op vind.

In het lokaal van onze jeugdbeweging hebben we een hotspot draaien om het internet verkeer een beetje binnen de perken te houden (lees: ongebreideld streamen/downloaden/torrent tegen gaan).

Nu hebben we onlangs een Raspberry Pi geïntroduceerd met Lubuntu.
De Raspberry Pi vervult twee functies:
- Er draaien wat server achtige toepassingen op
- Het apparaat wordt gebruikt als media player en om "snel even te Googlen"

Als iemand YouTube wil kijken of Google wil gebruiken dan zou deze persoon moeten inloggen met zijn persoonlijke hotspot credentials.
De services daarentegen moeten internet toegang hebben via een service accountje op de hotspot.

Hoe kan ik zoiets klaar krijgen?
Ik heb het voordeel dat de Raspberry Pi twee network interfaces heeft: LAN en Wifi. Ik kan bijvoorbeeld de services over LAN sturen en het overige gebruik via Wifi. Ik heb echter geen idee hoe dit klaar te krijgen.

Iemand tips/ideëen/oplossingen hiervoor? :9

Thanks!


PS: ik wil de hotspot niet in vraag stellen, dit is een vast gegeven en wordt niet gewijzigd.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 30-09 08:10
Per-applicatie routing is niet heel straightforward onder Linux - of ieder ander OS.

Je kunt met de iptables owner module packets matchen op basis van uid. Als je nu al het verkeer standaard via het serviceaccount (LAN) laat lopen, dan kun je packets van de gebruiker van de grafische interface markeren (MARK/CONNMARK) en die met een routing rule over de andere interface sturen.

Nog een alternatief op moderne Linuxsystemen zou ik zoeken in de hoek van systemd & network namespaces, maar dat lijkt me al snel complexer.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Eerste waar ik aan denk is een proxy server. Alles moet via de proxy, je meld aan en adhv je credentials heb je bepaalde rechten. Je kan ook per poort beslissen wat er gedaan moet worden, zodat je eventuele services die via andere poorten naar buiten gaan kan vrijwaren van bepaalde restricties.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 30-09 08:10
Dat lijkt inderdaad simpeler, maar integreert mogelijk niet transparant met de bestaande hotspotinfrastructuur - vandaar dat ik het niet benoemde.

Misschien is het handig als TS wat meer details over z'n hotspots geeft, dat helpt mogelijk om tot de meest zinnige oplossing te komen.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Die hotspot kan natuurlijk ook als proxy fungeren, afhankelijk van type en opties op dat ding.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
Bedankt voor de reply's.

De optie om de packetjes te markeren van een specifieke user lijkt me de meest aangewezen oplossing. Heb alvast eens gegoogled en volgend voorbeeld gevonden: https://www.niftiestsoftw...ecific-network-interface/
Hier ga ik alvast mee aan de slag :-)

De proxy oplossing spreekt mij minder aan:
- Ik zie niet goed hoe een proxy het onderscheid kan maken tussen verkeer van de services en van een gewone gebruiker als het van dezelfde interface komt, daar bepaalde services ook http-verkeer doen bijvoorbeeld.
- We willen een zo vrij mogelijk internet aanbieden, alleen het volume moet binnen de perken blijven. Restricties op basis van login credentials zijn dus niet echt relevant lijkt me.

Gewoon ter info, de hotspot is een oplossing van Mikrotik RouterBoard met RouterOS. Hier is inderdaad een optie in voorzien om een proxy te integreren, maar ik zie niet hoe dit kan werken omwille van bovenstaande argumenten.
Correct me if I'm wrong ;-)

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Een proxy kan veel en veel meer dan alleen maar content beperken. Denk aan caching voor sneller laden van pagina's of het beperken van de bandbreedte. Je moet moeite doen om proxy software te vinden dat geen ondersteuning bied voor authenticatie. Browsers worden ingesteld om de proxy te gebruiken, men logt in op de proxy via de browser en kan zo het web op. Bij die gebruikers staan dan bepaalde regels. Services op het systeem gebruiken een ander proxyaccount en hebben dus ook andere regels.

Echt, verdiep je er eens in, want je hebt maar een klein deel gelezen over wat een proxy allemaal kan.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
@Hero of Time: akkoord met je concept, maar hoe maakt een proxy het onderscheid tussen verkeer dat van de user afkomstig is via IP x en dat van de service afkomstig is en eveneens via IP x komt? Je moet m.i. nog steeds je verkeer aan de bron zien te scheiden zodat je via twee IP adressen naar je proxy gaat.
Als je service inlogt op de proxy en vervolgens gaat de user verkeer genereren, via dezelfde interface, via hetzelfde IP adres (want hij werkt op hetzelfde device), dan wordt dat verkeer behandeld alsof het afkomstig is van de service. Toch?
Tenzij... Je proxy server op meerdere poorten luistert en je op basis daarvan dus verkeer vanaf één IP adres alsnog kan opdelen. Maar dan ben je wederom het verkeer aan de bron aan het scheiden...

Graag even toelichting over je oplossing, want ik ben wel benieuwd nu :-)


Edit:
Hoe legt een proxy de relatie tussen inkomend verkeer en een bepaalde user? Dat is toch louter op basis van source IP adres (en eventueel luisterende poort)? Het verkeer is toch op geen enkele manier gemarkeerd, of vergis ik mij?

[ Voor 12% gewijzigd door High-Voltage2 op 30-04-2016 15:35 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Verdiep je eens in het TCP/IP protocol, dan snap je pas hoe dat kan. Herinner je je de ophef nog over providers die geen dataverbruik wilden/gingen rekenen als je een bepaalde dienst gebruikte? Of extra gingen knijpen als je Youtube keek of Netflix wilde gebruiken? Zelfde principe.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
@Hero of Time: Met alle respect, maar een antwoord als "verdiep je eens in TCP/IP dan snap je pas hoe het kan" slaat nergens op...
We weten beide hoe uitgebreid die materie is, dus iets specifieker is wenselijk. Begrijp me niet verkeerd, ik ben er volledig mee akkoord dat iemand zijn huiswerk moet maken alvorens vragen te komen stellen. Maar zo kan je op elke vraag reageren als "leer iets van bladiebla, dan weet je hoe het moet".
Daarnaast ben ik van mening om voldoende over TCP/IP te weten om hierover te kunnen meespreken. Alleen slaag ik er niet in jouw redenering in het plaatje te passen. Vandaar ook mijn bijkomende vraag om dat even te duiden, concreet aangevuld met de punten waar het voor mij niet meer rijmt. Het moge duidelijk zijn dat ik mij engageer om een technische discussie te voeren met het doel de dingen duidelijk te krijgen en al dan niet iets bij te leren.

Second, ik begrijp perfect hoe een proxy kan dienen voor providers die geen dataverbruik in rekening willen brengen voor bepaalde dienst of die verkeer als YouTube/Netflix extra willen knijpen.
Maar dat is m.i. niet hetzelfde principe als wat ik wil toepassen.

Nog even alles op een rijtje:
- In het geval bepaalde diensten geknepen of niet in rekening gebracht worden, zit je in het straatje dat één IP adres overeenkomt met één (proxy)user. Allemaal straight forward.
- In mijn geval heb ik twee "soorten" verkeer, afkomstig vanaf hetzelfde IP adres. De proxy is op geen enkele manier in staat om te weten welk verkeer afkomstig is van hetzij de service, hetzij de gebruiker. Er zijn dus twee (proxy)users die een source IP delen.
- Ter verduidelijking, die services kunnen ook http-verkeer genereren. Op TCP/IP niveau is er tussen de services en het gebruiker verkeer niet per se een onderscheid te maken. Het onderscheid zit hem enkel in de lokale user account, iets waar de proxy in de verste verte geen weet van heeft.

Dus nogmaals de vraag: kan je mij duiden hoe een proxy in staat is het verkeer, dat van een gemeenschappelijk IP komt, te scheiden? Hoe legt een proxy server de relatie tussen een bepaald inkomend packet en de rechten van de betreffende user?
Zover ik weet wordt het source verkeer niet gemarkeerd. Als dat toch het geval moest zijn, correct me...

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 30-09 08:10
High-Voltage2 schreef op zaterdag 30 april 2016 @ 16:05:
@Hero of Time: Met alle respect, maar een antwoord als "verdiep je eens in TCP/IP dan snap je pas hoe het kan" slaat nergens op...
Ik snap 'm ook niet helemaal om eerlijk te zijn.

Nu je aangegeven hebt een MikroTik hotspot te gebruiken en je daarbij (als ik niet verkeerd zit) de hotspot kunt bypassen met firewallregels, zou je nog iets kunnen doen met DSCP marking aan de clientzijde.

Ofwel, al het verkeer gaat standaard door de hotspotcaroussel, tenzij een bepaalde DSCP-waarde is gezet. Dan kun je aan de clientkant al het verkeer over 1 interface gooien, en heb je ook geen routing rules meer nodig.

iptables -I OUTPUT -m owner --uid-owner 0-999 -j DSCP --set-dscp-class CS1


De MikroTik-kant is huiswerk ;)

Disclaimer: ik weet niet in detail hoe de hotspot-functionaliteit werkt en of dat roet in het eten gooit

Acties:
  • 0 Henk 'm!

  • Will_M
  • Registratie: Maart 2004
  • Niet online

Will_M

Intentionally Left Blank

Er wordt nog nergens vermeldt wat er voor een router gebruikt wordt (tenzij die Microtik ook als router fungeert) maar ik zou het persoonlijk op lossen met meerdere VLAN'S in combinatie met QOS en/of Bandwith Throttling.

Streaming 100% dicht kunnen zetten op een hotspot is een illusie als je nog een béétje een normale internet experience voor de gebruikers over wil blijven houden op zo'n ding, hoeveel je ook aan content filters en FireWall rules in gaat bouwen. De tijd van alleen poort 80 open laten staan én vervolgens protocollen verbieden ligt volgens mij écht al wel een paar jaar achter ons. Een "caching" proxy gaat in geval een streaming "probleem" sowieso weinig (nuttigs) toevoegen.

P.S. De Modem/Router apparaten welke door bijvoorbeeld Ziggo en KPN geleverd worden doen ongeveer hetzelfde op het moment dat de "hotspot" functie aangezet wordt. Die hotspot functie kán in principe de lijn voor de gebruiker zelf nóóit onnodig (over)belasten.

Een AVM Fritzbox heeft soortgelijke functies vaak ook aan boord middels een Guest netwerk (afhankelijk van het type, maar de 7x90 versies in ieder geval). Is uiteraard niet hetzelfde als een "HotSpot" maar volstaat, gezien de vraag in de openingspost, óók wel.

Het laatste wat je wil, vooral in verband met gebruikersgemak (lees: ongemak), is een proxy met verschillende authentcatie levels waarbij de gebruikers dus eigenlijk gedwongen worden om in de browser aan te geven welke proxy ze willen gebruiken.

[ Voor 58% gewijzigd door Will_M op 30-04-2016 22:36 ]

Boldly going forward, 'cause we can't find reverse


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

High-Voltage2 schreef op zaterdag 30 april 2016 @ 16:05:
@Hero of Time: Met alle respect, maar een antwoord als "verdiep je eens in TCP/IP dan snap je pas hoe het kan" slaat nergens op...
We weten beide hoe uitgebreid die materie is, dus iets specifieker is wenselijk. Begrijp me niet verkeerd, ik ben er volledig mee akkoord dat iemand zijn huiswerk moet maken alvorens vragen te komen stellen. Maar zo kan je op elke vraag reageren als "leer iets van bladiebla, dan weet je hoe het moet".
Daarnaast ben ik van mening om voldoende over TCP/IP te weten om hierover te kunnen meespreken. Alleen slaag ik er niet in jouw redenering in het plaatje te passen. Vandaar ook mijn bijkomende vraag om dat even te duiden, concreet aangevuld met de punten waar het voor mij niet meer rijmt. Het moge duidelijk zijn dat ik mij engageer om een technische discussie te voeren met het doel de dingen duidelijk te krijgen en al dan niet iets bij te leren.
Ik geef al voorbeelden van hoe het toegepast wordt. Je hebt vast wel van DPI, oftewel Deep Packet Inspection gehoord, toch? Daar doel ik op. In de hele stroom van data wordt aan het begin aangegeven wat voor verkeer het is, waar het heen moet, etc. Daar kan dus ook proxy specifieke informatie in staan. Je doet met IPTables effectief hetzelfde, alleen heb je geen aparte regels nodig op de host.
Second, ik begrijp perfect hoe een proxy kan dienen voor providers die geen dataverbruik in rekening willen brengen voor bepaalde dienst of die verkeer als YouTube/Netflix extra willen knijpen.
Maar dat is m.i. niet hetzelfde principe als wat ik wil toepassen.
Als je 'perfect begrijpt' hoe een proxy werkt, waarom vraag je dan om extra informatie? Je weet alles toch al? Of is die 'perfectie' meer in de richting van 'imperfect'? Je spreekt jezelf hier namelijk erg tegen.

Commandline FTW | Tweakt met mate

Pagina: 1