!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/usr/share/doc/isdn4k-utils-3.2/   drwxr-xr-x
Free 52 GB of 127.8 GB (40.69%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     EN-i4l-6.html (8.06 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
ISDN4Linux Tutorial: Problems with dynamic IP numbers Next Previous Contents

6. Problems with dynamic IP numbers

What are dynamic IP numbers?

IP numbers are scarce and therefore expensive. The providers therefore try to save IP numbers, by being able to be only assigning (at a minimum) as many IP numbers as can call in to them at the onetime. The number of potential computers that can call in is however higher, therefore a fixed IP number cannot be assigned to all of them.

The trick is that instead of a fixed allocation of IP numbers to computers, with each connection the client is given an IP number from a free pool. This technique can only be used with PPP, not with rawip.

This method is excellent if you only have a single workstation and work only session-to-session: open connection, surf, surf, surf, exchange mail, surf, and finally close the connection.

If you want just a little bit more (transparent Internet access), however, it turns out that it doesn't work with dynamic IP numbers.

The following points are desireablt for transparent Internet access:

  1. Dial-on-demand: it is not manually decided whether to open or close a connection (who should decide that in a large network?). The dial-up connection is made automatically as soon as there are packets that cannot be routed with the local network.
  2. Authomatic closing of connections, when there are no packets to go out for a certain period of time.
  3. Pauses don't add additional costs, if not data is being sent over the line; e.g. when reading a long web page, the connection doesn't need to be kept open
  4. Verhindern, daß vergessen wird aufzulegen. (Es blinkt und klackt ja nicht ...)

Dieses läßt sich mit ISDN wunderbar lösen, vor allem deshalb, weil der Verbindungsaufbau im Gegensatz zu einem Modem sehr schnell geht (wenige Sekunden).

Folgende Punkte sind bei dynamischen IP-Nummern nicht realisierbar:

  1. Server-Funktionalität: die IP-Nummer des Rechners ist für einen anderen Rechner im Internet nicht bestimmbar. Außderdem wird der Provider vermutlich nicht selbst eine Wählverbindung aufbauen wollen und können - zumindest nicht bei diesen kostengünstigen Verträgen.
  2. Mails können nicht direkt zum eigentlichen Mailserver durchgestellt werden (an welche IP-Nummer sollten sie denn ?), sondern müssen bei einem Provider abgelegt werde, von dem sie vom IZG abgeholt werden.
  3. Das Offene-Sockets-Problem: Halten einer logischen Verbindung über die Verbindungsunterbrechnung hinaus ist nicht möglich. Bsp: man loggt sich per Telnet bei in seiner Arbeitsstelle ein, nach Inaktivität wird aufgelegt, drückt man nun eine Taste, wird die Verbindung automatisch wieder hergestellt, aber man bekommt eine andere IP-Nummer zugewiesen. Die Socket-Verbindung zwischen eigenen Rechner und Arbeitgeber ist damit ungültig geworden, da für einen Socket u.a. Quell- und Ziel-IP-Nummern wichtig sind. Die gleiche Problematik stellt sich bei WWW oder FTP-Verbindungen, die unterbrochen werden.
Sehr wohl aber ist man genauso wie sonst auch nicht gegen Angriffe aus dem Internet geschützt. Ein Hacker kann nur nicht voraussagen, welchen Rechner er angreift, er sucht sich halt nur zufällig eine IP-Nummer aus (oder belauscht eine Verbindung) und kann den Rechner angreifen. Der Vorteil liegt allerdings darin, daß der Hacker weniger Zeit hat, da die Verbindung abgebaut und mit einer neuen IP-Nummer aufgebaut wird, zwischen denen erstmal kein Zusammenhang zu erkennen ist. Als wirksamen Schutz reicht dies aber nicht aus.

Die Probleme: Aus dem Offene-Sockets-Problem ergeben sich zwei Punkte, die bei einem IZG mit dynamsichen IP-Nummer beachtet werden müssen:

  1. Anfragen laufen in's Leer: ein Web-Browser hat einen zum Web- oder Proxy-Server offen, nach dem Re-Connect ist dieser ungültig, aber der Browser hat keine Möglichkeit dies zu erkennen. Abhilfe schafft es hier, auch Abbruch und Reload zu drücken.
  2. Die Sockets bleiben offen (auch nach Beendigung des Client-Programms), es werden immer wieder Pakete darüber geschickt, bis ein Timeout (etwa 20 Minuten) abläuft. In dieser Zeit wird ständig eine Verbindung aufgebaut bzw. bleibt bestehen.

Abhilfe schafft hier zum einen, daß man den Client nicht erlaubt direkt in das Internet eine Verbindung aufzubauen (über Masquerading), sondern nur über Proxies (siehe Squid. Aber auch diese Methode ist nicht zuverlässig.

6.1 Der RST-provoking mode

Wirkliche Abhilfe schafft nur die Aktivierung des RST-provoking mode. Dabei wird bei dem Paket die Quell-IP-Nummer ausgetauscht gegen die jetzt aktuelle dynamsiche IP-Nummer, was bewirkt, daß beide Seiten diesen Socket schließen.

Diese Modus ist leider noch nicht in den offiziellen Kernel gekommen. Den Patch von Erik Corry findet man hier: http://www.image.dk/~ehcorry/linux/.

Er ist für Kernel der Version bis 2.0.33 passend, ab Version 2.0.34 wird er vermutlich im Standard-Kernel sein. Im Standrdkernel von S.u.S.E. Linux 5.2 (und im Quellpaket lx_suse ist dieser Pacth schon enthalten. (Offen: 2.1 ?)

Zur Aktivierung gibt man das Kommando:


    echo 7 > /proc/sys/net/ipv4/ip_dynaddr
        

(Oder nur 5, für den quiet-Mode). Bei Erfolg sieht man in /var/log/messages Meldungen der folgenden Art:
    ip_rewrite_addrs(): shifting saddr from 1.1.1.1 to 149.228.142.50 (state 2)
        

Aktivierung bei S.u.S.E.:

Trage in /sbin/init.d/i4l_hardware vor dem Start des isdnlog folgende Zeilen ein:


    test -z "$I4L_DYNIP" ||
        echo 7 > /proc/sys/net/ipv4/ip_dynaddr
        

(das wird vermutlich bei S.u.S.E. Linux später als 5.2 der Fall sein) und trage in /etc/rc.config ein:
    I4L_DYNIP="yes"
        

6.2 Welche IP-Nummer setze ich denn eigentlich?

Der Provider stellt nur dynamische IP-Nummern zur Verfügung, während der Konfiguration von i4l werde ich aber nach IP-Nummer gefragt - welche IP-Nummer soll ich denn da angeben?

i4l arbeitet mit einer transparenten Netzanbindung, d.h. logisch gesehen ist die Verbindung immer aktiv, auch wenn noch garnicht gewählt wurde und keine dynamischen IP-Nummern ermittelt werden konnten. Um dieses Pseudo-Netzwerk zu konfigurieren müssen aber zwangsläufig IP-Nummern angegeben werden.

Es empfiehlt sich daher, eine Pseudo-IP-Nummer zu benutzen, z.B. dieselbe, die man auch für seine Ethernetanbindung benutzt. Das ist möglich, da die PPP-Verbindung als pointopoint-Verbindung (beim ifconfig) konfiguriert wurde, dies ist ein spezieller Modus, durch den der Kernel weiß, daß hier nur eine Verbindung zwischen zwei Punkten stattfindet. Warum Point-To-Point (PtP) als pointopoint angegeben wird, weiß ich auch nicht ....

Um keinen Konflikt mit offiziellen IP-Nummern zu provozieren, sollte man eine aus dem privaten Bereich wählen, z.B. 192.168.1.1.

Falls man bei T-Online angeschlossen ist oder dies plant: Bneutze nicht 192.168.0.*, darüber werden z.T. interne Dienste wie Cept abgehandelt.


Next Previous Contents

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0111 ]--