Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

Poorts < 1024 openen zonder root te zijn

None
23 antwoorden
  • Ik gebruik RedHat 7.2. Is het mogelijk om non-root programma's poorten onder 1024 te openen? Zo ja, hoe?

    En waarom bestaat die beperking nou eigenlijk?
  • In principe niet. Non-root gebruikers kunnen <1024 poorten niet openen ivm veiligheid. Een niet root user zou op die manier web en mail servers kunnen schrijven en/of starten.

    Het kan wel met setuid maar dat is natuurlijk een groot risico. Wanneer je een programmeer foutje maakt (buffer overflow check vergeten ofzo) dan kom je meteen in een root shell.
  • Wat moet ik dan doen om toch poorten < 1024 te openen? Ik heb geen mailserver en ik wil geen programma's als root draaien.
  • [quote:0b24f8b80d="RobertV"]Wat moet ik dan doen om toch poorten < 1024 te openen? Ik heb geen mailserver en ik wil geen programma's als root draaien.[/quote:0b24f8b80d]

    Je kunt daemons wel chroot-ed of in een jail draaien, dan hebben ze wel root rechten, maar komen niet buiten hun eigen gebied.
  • Is er echt geen mogelijkheid om non-root programma's poorten < 1024 te laten openen?
  • Desnoods een kernel patch.
  • Tuurlijk is dat mogelijk, maar waarom denk je dat ze het zo gemaakt hebben ? en leg eens ff uit waarom je dat nou wilt.
    Ben je zelf iets aan het maken ? of wat ?

    Met sudo kun je het doen of zoals aangegeven jailen:

    http://www.stahl.bau.tu-bs.de/~hildeb/bind/
  • Dat klopt, ik wil een programma maken dat poorten < 1024 kan openen. Op IRC zijn er nogal wat fserves die achter een firewall zitten en dus verlangen dat je zelf een bepaalde poort openzet (ze denken natuurlijk dat iedereen Windows en mIRC draait). Maar die poort kan ik niet openen tenzij ik een programma als root draait!
    Ik heb [i:1ded657382]geen[/i:1ded657382] mailservers ofzo! Dit is een desktop PC, de reden waarom normale gebruikers geen poorten < 1024 kunnen openen geldt voor mij niet!
  • Tja, ook desktop pc's moeten veilig zijn ;)
    Ik kan me voorstellen dat men in een bedrijf niet wil dat de gebruikers stiekem mailserver e.d. opzetten :D

    Is er geen andere oplossing mogelijk, bijv. een bepaalde gebruikersgroep toestaan bepaalde poorten te openen, en de betreffende applicatie hier lid van maken?

    Max
  • 1. Met het programma sudo kun je programma's welke alleen door root gestart kunnen worden ook door een andere user uit laten voeren.

    2. Ik zou niet weten welke applicatie poorten uit de < 1024 range wil openen, omdat vrijwel alle client apps werken met 1024 en hoger.
    Als je weet welke poort je open moet zetten zou je het ook kunnen doen met REDIRECT op je firewall.
  • Ik probeer juist een server te starten als normale gebruiker. En die server moet een poort < 1024 openen.
    Dit is echt wat ik wil doen. Als ik als normale gebruiker een poort < 1024 open dan is dat niet onveilig, ik ben immers de enige die mijn computer gebruikt.
  • Waarom open je de poort dan niet als root??

    Max
  • Omdat ik niet iedere keer een wachtwoord wil invullen om dat programma te starten.
  • Geef je de applicatie het SUID root.

    Verder zijn er volgens mij scripts te bedenken die dat inloggen automatisch doen.

    Allemaal niet echt veilig natuurlijk, maar ach, het is toch maar een stand alone toch :P
  • GTK+ staat geen setuid root programma's toe. Als je een setuid root GTK+ programma schrijft krijg je een foutmelding (iets over beveiliging) en het programma wordt afgesloten.
  • root suids scripts werkt al een hele tijd niet meer vanwege de veiligheid. Tegenwoordig zijn de meeste distro's ingesteld op nosuid.

    Maar zoals ik al zei -> SUDO <- is the program you need
  • Wat is er op tegen om de desbetreffende poort standaard open te zetten? Je zou gewoon een regeltje in een script kunnen zetten die zorgt dat die poort open staat. Als dat scriptje na de firewall wordt gestart, geldt die als een aanvulling (tenzij een eerdere regel al het dataverkeer expliciet dropt)
  • Hoe doe ik dat dan?
  • Uitgaande van ip-tables:

    [code:1:b0c50bd018]
    ## auth aanvragen accepteren (voorkomt timeouts)
    $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE -p tcp \
    -s $ANYWHERE -d $IPADDR \
    –source-port $UNPRIVPORTS –destination-port 113 -j ACCEPT
    [/code:1:b0c50bd018]

    Hierbij invullen voor:
    -$EXTERNAL_INTERFACE, je eigen nic/modem (eth0, of zo)
    -$ANYWHERE: 0.0.0.0/0
    -$IPADRR: X.X.X.X #(je eigen ip-adres)
    -$UNPRIVPORTS: 1024:65535 #(dit zijn de poorten 1024 t/m 65535)

    Nog wat info van de maker van de site waar deze info vandaan komt:
    [quote:b0c50bd018]
    We zitten nu nog met 1 probleem, en dat is 'auth'. Mail- en FTP-servers maken daar soms gebruik van en als we 'auth' dicht laten zorgt dat voor onnodige timeouts. Voor de meeste irc's is ie zelfs verplicht. Of je deze 'auth-aanvragen' toelaat of niet moet je helemaal zelf weten. Ik zet 'm altijd op 'ACCEPT', maar als je dat liever niet heb, maak je er 'RETURN' van. Volgens sommige mensen maakt het voor de timeouts niet uit of je hier ACCEPT of RETURN gebruikt. Ik heb het idee dat RETURN ook nog voor onnodige timeouts zorgt.
    [/quote:b0c50bd018]

    Dit in een scriptje plakken, en het automatisch uitvoeren tijdens het booten, en het zou moeten werken. Als je weet waar het firewall-script van Redhat staat, dan zou je het ook daar in kunnen plakken. Als test kun je het beste het scriptje eerst handmatig starten (als root), zodat je eventuele foutmeldingen ziet, vervolgens uitloggen en inloggen als user en kijken of het werkt.

    Overigens kun je met [code:1:b0c50bd018]iptables -L[/code:1:b0c50bd018] je firewall-regels bekijken
  • [quote:183088a898="RobertV"]GTK+ staat geen setuid root programma's toe. Als je een setuid root GTK+ programma schrijft krijg je een foutmelding (iets over beveiliging) en het programma wordt afgesloten.[/quote:183088a898]

    Hmmmz, een server die GTK+ gebruikt. (danieldk krabt achter z'n oren)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.