Ga naar inhoud


Access control list op romu/radegast poorten


wian

Aanbevolen berichten

Door middel van iptables is het heel gemakkelijk om de toegang tot cardsharing servers te beperken. Het leek mij een aardig projectje om te doen. Net als Romeo, lijkt het me het handigst om dit door middel van een plugin+scripts te realiseren.

 

Aangezien mijn C kennis minimaal is, wil ik de plugin zo simpel mogelijk houden. Deze zou alleen maar een lijst met ipnummers/hostnamen moeten presenteren en dmv vinkjes een selectie kunnen maken.

 

De plugin roept een script aan dat de lijst genereert en na de selectie, wordt het script opnieuw aangeroepen met de hosts als parameters, waarna het script de juiste iptables commando's uitvoert.

 

Ik weet dat er mooie unix/windows GUI's zijn om rules voor iptables aan te maken, maar deze zijn (veel) te uitgebreid voor dit doel.

 

Wat zijn jullie ideeen?

hobby4all

Link naar reactie
Delen op andere sites

  • 1 maand later...

Om het cardsharing voor alleen mensen te beperken die ik toegang wil geven heb ik het volgende zelf bedacht met mijn beperkte kennis van linux.

 

Om er voor te zorgen dat niet iedereen van mijn cs server gebruik kan maken heb ik de gateway leeg gemaakt.

 

Hierna heb ik van iedere cardshare gebruiker een ip adres gekregen en deze handmatig in een route.sh script gezet:

 

routes.sh (chmod 755)

#!/bin/sh

#

#

route add <ip adres> gw 10.0.0.138 (10.0.0.138 is adres van mijn adsl router waar poort XXXX open staat voor de cardshare server)

route add <ip adres2> gw 10.0.0.138

etc..

# einde

 

deze start ik eenmalig bij het aanzetten van de box, je zou deze in de opstart van je box kunnen plaatsen.

 

Dyndns gebruikers:

 

ipupdate.sh

 

#!/bin/sh

#

#

route del adres.dyndns.org

route add adres.dyndns.org gw 10.0.0.138 (weer ip adres adsl router)

route > /var/log/route.log (deze log dir wel eerst aanmaken)

 

#einde

 

met volgende kommando dit script elk uur uit laten voeren.

 

crontab -e (aanmaken crontab file)

Toets I (invoegen)

1 * * * * /var/bin/ipupdate.sh > /var/log/ip.log

ESC

:WR

:q

 

 

Zal vast wel verbeterd kunnen worden maar werkt prima hier.

 

 

Greetz

 

Prdehoop

Link naar reactie
Delen op andere sites

Vooruitlopend op het spul wat ik aan het maken ben alvast het volgende.

Wil je weten wie allemaal aan je dreambox 'hangt' aan poort xyz dan kan je het volgende commando uitvoeren :

 

Citaat:
netstat -a | grep 1500 | awk '{print $5}' | grep -v "*:*" | awk -F: '{print $1}'

 

Wat schuin staat kan je veranderen mocht jouw cardsharing spul op een ander poort draaien (666 bijv.)

 

Voorbeeld output met zoeken naar mensen verbonden via telnet ziet het er als volgt uit :

Citaat:
/hdd > netstat -a | grep telnet | awk '{print $5}' | grep -v "*:*" | awk -F: '{print $1}

10.0.0.3

 

Hier zie je dat iemand met IP: 10.0.0.3 verbonden is aan de dreambox

 

 

 

NB1: Dit werkt met ronaldd's 031110 emu image.

NB2: Gebruik op eigen risico.

The Source is Out There....

Link naar reactie
Delen op andere sites

Op de development ftp server staat een script waar ik toendertijd aan bezig was. Maar het lastigste deel is de plugin voor enigma waarin je de ipnummers opgeeft en hiermee het script aanroept. Een andere tekortkoming is dat iptables in de huidige images geen -destination-port optie ondersteunt.

hobby4all

Link naar reactie
Delen op andere sites

Mooi script, het is idd raar dat --destination-port niet werkt op de iptables uit mijn image. Ik zal kijken of ik de oorzaak kan vinden.

 

En er zit denk ik nog een anderprobleem in:

 

/var/bin > ./dreamacl.sh add romu 192.168.2.2 192.168.2.3

iptables -A INPUT -s 192.168.2.2 --dport 1500 -j ACCEPT

iptables -A INPUT --dport 1500 -j DENY

iptables -A INPUT -s 192.168.2.3 --dport 1500 -j ACCEPT

iptables -A INPUT --dport 1500 -j DENY

 

Ip adres 192.168.2.3 zal geen toegang krijgen omdat de DENY target eerder in de chain zit. Dus de DENY moet je uit de for loop halen.

 

Ronald

My DM(800|7025) is Ronaldd powered

Link naar reactie
Delen op andere sites

Citaat:
Mooi script, het is idd raar dat --destination-port niet werkt op de iptables uit mijn image. Ik zal kijken of ik de oorzaak kan vinden.

En er zit denk ik nog een anderprobleem in:

/var/bin > ./dreamacl.sh add romu 192.168.2.2 192.168.2.3
iptables -A INPUT -s 192.168.2.2 --dport 1500 -j ACCEPT
iptables -A INPUT --dport 1500 -j DENY
iptables -A INPUT -s 192.168.2.3 --dport 1500 -j ACCEPT
iptables -A INPUT --dport 1500 -j DENY

Ip adres 192.168.2.3 zal geen toegang krijgen omdat de DENY target eerder in de chain zit. Dus de DENY moet je uit de for loop halen.

Ronald


hehehe gelukkig had ik er "development version" in gezet. Domme fout. Hebben jullie nog ideeen voor de opzet van het script (en het idee)? Is er een vrijwilliger voor de enigma plugin? (Ronaldd heeft het vast al druk genoeg)

hobby4all

Link naar reactie
Delen op andere sites

CDK en de voorbeeldplugin compileren lukt me niet.

(weet niet welke server/branch nou eens de goeie is alhoewel het in de dbox2 tijd zonder probleem werkte)

 

Ga het nu dus maken via een webfrontend.

Zodoende hebben de andere ontwikkelaars misschien een beeld/idee van wat het zou moeten worden. Uiteraard als de gebruikers het wat vinden op die manier...

The Source is Out There....

Link naar reactie
Delen op andere sites

  • 4 weken later...
Citaat:
Mooi script, het is idd raar dat --destination-port niet werkt op de iptables uit mijn image. Ik zal kijken of ik de oorzaak kan vinden.


Het --dport werkt alleen als je een protocol meegeeft. Nu probeert hij dat met alle protocollen en ICMP dus ook... en die werkt niet met poorten.

Probeer maar eens met proto TCP --dport dan werkt het wel...

Ik ga met de kerst als ik vrij ben wel even rommelen voor een plugin waarin je e.e.a. kunt doen met toegang.

standaard rule een drop, dan vinkjes voor 3 private ranges zodat je lokaal alles kan plus 127.0.0.1 en een invul scerm voor ip's die je toegang wil geven.

Overigens... waarom zou je standaard niet alles een drop doen (behalve local net) en dan alleen open zetten wat je wil??? dus een accept voor ip nummer en -dport ???

JCsat
Link naar reactie
Delen op andere sites

Voor mensen die al wat willen filteren...

zet file ergens neer op je dreambox en vergeet geen chmod 777 <bestandsnaam> te doen anders ziet linux hem niet als script

 

je kunt hem opnemen in de /var/etc/init file zodatie bij opstarten mee komt...

 

als je wil zien welke regels acrief zijn dan kun je in een telnet sessie iptables -L doen....

 

 

#!/bin/sh

############################################################

# IPTABLES Example script by JCSAT v1.00 - december 15 2003#

############################################################

#

# FLUSH all existing rules

/sbin/iptables -F

#

# reset default settings

#

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD ACCEPT

#

# default DROP all packages

#

/sbin/iptables -P INPUT DROP

#

# Now define all which may access this box!

# First localhost and possible local net addresses which are no internet

# addresses - These are used for your local network

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A INPUT -p TCP -s 10.0.0.0/8 -j ACCEPT

/sbin/iptables -A INPUT -p TCP -s 192.168.0.0/24 -j ACCEPT

# Mind I did not include 172.* net....!!!!

#

###################################################################

###################################################################

# OK, Now add a rule for each internet address you want to give access!

# EXAMPLE:

#/sbin/iptables -A INPUT -p TCP -s x.x.x.x --dport 678 -j ACCEPT

# Or just simple

#/sbin/iptables -A INPUT -p TCP -s x.x.x.x -j ACCEPT

474705-accessrules.tar

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...