Debian: Offene Ports testen


Ich wollte testen ob die Firewall richtig arbeitet und war auf der Suche nach einem einfachen Program das auf dem entsprechenden Port "hört". Hier habe ich das gefunden.

vi test.pl

#!/usr/bin/perl
##### Written by Paul A. Luzzi on 07/01/2008
##### Name : perl_socket_8151.pl
##### Purpose : a basic perl socket listener
##### used to check that firewall ports are
##### open before installation of software
use strict;
use Socket;

##### Use port of 8151

my $port = shift || 8151;
my $proto = getprotobyname('tcp');
socket(SOCKET, PF_INET, SOCK_STREAM, $proto)
  or die "Can not open socket $!\n";
setsockopt(SOCKET, SOL_SOCKET, SO_REUSEADDR, 1)
  or die "Can not set socket optoin to SO_REUSEADDR $!\n";
bind( SOCKET, pack('SnA4x8', AF_INET, $port, 0.0.0.0))
  or die "Can not bind to port $port! \n";
listen (SOCKET, 5) or die "listen: $!";
print "SERVER started on port $port \n";
my $client_addr;
while ($client_addr = accept(NET_SOCKET, SOCKET)) {
  # send them a message, close connection
  print NEW_SOCKET "Smile from the server :-) ";
  close NEW_SOCKET;
}

und ausführbar machen, aufrufen und von einem anderen Rechner aus mit Telnet ansprechen.

chmod +x test.pl
perl test.pl
SERVER started on port 8151
telnet www.hagen-bauer.de 8151
Trying 5.9.149.232...
Connected to www.hagen-bauer.de.
Escape character is '^]'.

Die Verbindung hat also geklappt. Dann den Port in dem Script ändern und nochmal aufrufen

 perl test.pl
SERVER started on port 8080
 telnet www.hagen-bauer.de 8080

Trying 5.9.149.232...
^C