1. Aktuelles
  2. Dashboard
  3. Forum
    1. Unerledigte Themen
  4. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
  5. Community vs. Enterprise
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Forum
  • Seiten
  • Erweiterte Suche
  1. efw-forum - Endian Firewall Support Forum
  2. Mitglieder
  3. Sabine

Beiträge von Sabine

  • proxy.pac Verzeichnis gesucht

    • Sabine
    • 5. Juni 2011 um 13:24

    Bei mir steht das drin:


    #!/usr/bin/perl -w

    #
    # +-----------------------------------------------------------------------------+
    # | Endian Firewall |
    # +-----------------------------------------------------------------------------+
    # | Copyright (c) 2005-2006 Endian |
    # | Endian GmbH/Srl |
    # | Bergweg 41 Via Monte |
    # | 39057 Eppan/Appiano |
    # | ITALIEN/ITALIA |
    # | info@endian.it |
    # | |
    # | This program is free software; you can redistribute it and/or |
    # | modify it under the terms of the GNU General Public License |
    # | as published by the Free Software Foundation; either version 2 |
    # | of the License, or (at your option) any later version. |
    # | |
    # | This program is distributed in the hope that it will be useful, |
    # | but WITHOUT ANY WARRANTY; without even the implied warranty of |
    # | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
    # | GNU General Public License for more details. |
    # | |
    # | You should have received a copy of the GNU General Public License |
    # | along with this program; if not, write to the Free Software |
    # | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
    # | http://www.fsf.org/ |
    # +-----------------------------------------------------------------------------+
    #

    use strict;
    use CGI();
    use Net::IPv4Addr qw (:all);

    my %netsettings;
    my %net_conf;
    my $swroot = "/var/efw/";

    my $ETHER_SETTINGS = $swroot."ethernet/settings";
    my $routingfile = $swroot."routing/config";
    my $custom_include = $swroot."proxy/proxy.custom.pac";

    my $proxy_conffile = "${swroot}/proxy/settings";
    my $proxy_conffile_default = "/usr/lib/efw/proxy/default/settings";
    my $policyrules = "${swroot}/proxy/policyrules";


    sub showhttpheaders() {
    my $file = $ENV{'SCRIPT_NAME'};
    $file =~ s/^[\/]*//;

    print <<EOF
    Cache-Control: no-cache
    Connection: close
    Content-Type: application/x-ns-proxy-autoconfig
    Content-Disposition: attachement; filename="$file"

    EOF
    ;
    }

    sub readhash($$) {
    my $filename = shift;
    my $hash = shift;
    my ($var, $val);

    open(FILE, $filename) or die "Unable to read file $filename";

    while (<FILE>) {
    chomp;
    ($var, $val) = split /=/, $_, 2;
    if ($var) {
    $val =~ s/^\'//g;
    $val =~ s/\'$//g;
    # Untaint variables read from hash
    $var =~ /([A-Za-z0-9_-]*)/;
    $var = $1;
    $val =~ /([\w\W]*)/;
    $val = $1;
    $hash->{$var} = $val;
    }
    }
    close FILE;
    }

    sub is_valid($) {
    my $line = shift;
    if ($line =~ /(?:(?:[^,]*),){9}/) {
    return 1;
    }
    return 0;
    }

    sub read_config_file($) {
    my $filename = shift;
    my @lines;
    open (FILE, "$filename");
    foreach my $line (<FILE>) {
    chomp($line);
    $line =~ s/[\r\n]//g;
    if (!is_valid($line)) {
    next;
    }
    push(@lines, $line);
    }
    close (FILE);
    return @lines;
    }

    sub read_config_line($$) {
    my $line = shift;
    my $file = shift;
    my @lines = read_config_file($file);
    return $lines[$line];
    }

    sub policy_line($) {
    my $line = shift;
    my %config;
    $config{'valid'} = 0;
    if (! is_valid($line)) {
    return;
    }
    my @temp = split(/,/, $line);
    $config{'enabled'} = $temp[0];
    $config{'policy'} = $temp[1];
    $config{'transparent'} = $temp[2];
    $config{'auth'} = $temp[3];
    $config{'auth_group'} = $temp[4];
    $config{'time_restriction'} = $temp[5];
    $config{'days'} = $temp[6];
    $config{'starthour'} = $temp[7];
    if ($config{'starthour'} eq "") {
    $config{'starthour'} = "00";
    }
    $config{'startminute'} = $temp[8];
    if ($config{'startminute'} eq "") {
    $config{'startminute'} = "00";
    }
    $config{'stophour'} = $temp[9];
    if ($config{'stophour'} eq "") {
    $config{'stophour'} = "24";
    }
    $config{'stopminute'} = $temp[10];
    if ($config{'stopminute'} eq "") {
    $config{'stopminute'} = "00";
    }
    $config{'filtertype'} = $temp[11];
    $config{'src_type'} = $temp[12];
    $config{'src'} = $temp[13];
    $config{'src'} =~ s/&/\|/g;
    $config{'dst_type'} = $temp[14];
    $config{'dst'} = $temp[15];
    $config{'dst'} =~ s/&/\|/g;
    $config{'mimetypes'} = $temp[16];
    $config{'useragents'} = $temp[17];
    $config{'useragents'} =~ s/&/\|/g;
    $config{'valid'} = 1;

    return %config;
    }

    sub read_settings() {
    ## -------------------------------------------------------------
    ## get settings and CGI parameters
    ## -------------------------------------------------------------
    my %conf = ();
    my %default_conf = ();

    if ( -e $proxy_conffile_default ) {
    &readhash( "$proxy_conffile_default", \%default_conf );
    &readhash( "$proxy_conffile_default", \%conf );
    }
    if ( -e $proxy_conffile ) {
    &readhash( "$proxy_conffile", \%conf );
    }
    return \%default_conf, \%conf;
    }

    (my $default_conf_ref, my $conf_ref) = read_settings();
    my %default_conf = %$default_conf_ref;
    my %conf = %$conf_ref;
    readhash($ETHER_SETTINGS, \%net_conf);

    sub get_zone($) {
    my $ip = shift;
    my @zones = ('GREEN', 'BLUE', 'ORANGE');

    return '' if ($ip =~ /^$/);

    foreach my $zone (@zones) {
    if (! $net_conf{$zone.'_IPS'}) {
    next;
    }
    foreach my $net (split(/,/, $net_conf{$zone.'_IPS'})) {
    if (ipv4_in_network($net, "$ip/32")) {
    return $zone;
    }
    }
    }
    return '';
    }

    sub get_port($) {
    my $zone = shift;
    $zone = uc($zone);
    if ($conf{"PROXY_ENABLED"} eq "on") {
    return $conf{'PROXY_PORT'};
    }
    return "";
    }

    sub get_ip($$) {
    my $zone = shift;
    my $ip = shift;
    $zone = uc($zone);
    foreach my $net (split(/,/, $net_conf{$zone.'_IPS'})) {
    if (ipv4_in_network($net, "$ip/32")) {
    my ($ip, $mask) = ipv4_parse($net);
    return $ip;
    }
    }
    return $net_conf{$zone.'_ADDRESS'}
    }

    sub search_route_subnet($) {
    my $ip = shift;

    return '' if (! -e "$routingfile");
    open (F, "$routingfile") || return '';

    foreach my $line (<F>) {
    my @token = split(/,/, $line);
    next if ($token[0] eq 'off');
    next if ($token[2] eq '');
    next if ($token[3] =~ /^UPLINK/);
    my @ipaddr = split(/\//, $token[2]);
    if ($ipaddr[0]) {
    if (ipv4_in_network($ipaddr[0],
    "$ip/32"
    )) {
    close(F);
    return $token[3];
    }
    }
    }

    close(F);
    return '';
    }

    sub calculate_zone($) {
    my $ip = shift;
    my $zone = get_zone($ip);
    return $zone if ($zone !~ /^$/);

    my $gw = search_route_subnet($ip);
    return get_zone($gw);
    }

    sub is_ip {
    my $addr = shift;
    my $withcidr = shift;
    if (! $withcidr) {
    $withcidr = 1;
    }

    if ($addr !~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?:\/(\d{1,2}))?$/) {
    return 0;
    }

    my @parts = {$1, $2, $3, $4};
    my $cidr = '';
    if ($5) {
    if ($withcidr eq 0) {
    return 0;
    }
    $cidr = $5;
    }
    foreach my $number (@parts) {
    $number = s/\D//;
    if (($number < 0) || ($number > 255)) {
    return 0;
    }
    }
    if ($cidr ne '') {
    if (($cidr < 0) || ($cidr > 32)) {
    return 0;
    }
    }

    return 1;
    }

    sub is_mask {
    my $mask = $_[0];
    # secord part an ip?
    if (&is_ip($mask)) {
    return 1;
    }
    # second part a number?
    if (/^0/) {
    return 0;
    }
    if (!($mask =~ /^\d+$/)) {
    return 0;
    }
    if ($mask >= 0 && $mask <= 32) {
    return 1;
    }
    return 0;
    }

    sub is_ipormask {
    my $ipormask = $_[0];

    # see if it is a IP only.
    if (&is_ip($ipormask)) {
    return 1;
    }
    # split it into number and mask.
    if (!($ipormask =~ /^(.*?)\/(.*?)$/)) {
    return 0;
    }
    my $ip = $1;
    my $mask = $2;
    # first part not a ip?
    if (!(&is_ip($ip))) { return 0; }
    return &is_mask($mask);
    }

    sub is_ipandmask {
    my $ipandmask = $_[0];

    # split it into number and mask.
    if (!($ipandmask =~ /^(.*?)\/(.*?)$/)) {
    return 0;
    }
    my $ip = $1;
    my $mask = $2;
    # first part not a ip?
    if (!(&is_ip($ip, 0))) {
    return 0;
    }
    return &is_mask($mask);
    }

    sub include_file($) {
    my $file = shift;
    open(F, $file);
    print <F>;
    close(F);
    };

    sub printpac($$$$) {
    my $zone = shift;
    my $ip = shift;
    my $port = shift;
    my $zone_nets = shift;

    print <<END
    function FindProxyForURL(url, host)
    {
    if (isPlainHostName(host) || shExpMatch( url, "*$ip*" ) ) {
    return "DIRECT";
    }
    else if (host == "127.0.0.1") {
    return "DIRECT";
    }
    END
    ;

    if (-f $custom_include) {
    include_file($custom_include);
    }
    my @lines = read_config_file($policyrules);
    my $num = 1;
    my $any = 0;

    if ($conf{"PROXY_ENABLED"} eq "on") {
    # if ($conf{uc($zone) . "_ENABLED"} eq "transparent") {
    # foreach my $net (split(/,/, $zone_nets)) {
    # my ($netaddr, $netmask) = ipv4_network($net);
    # $netmask = ipv4_cidr2msk($netmask);
    # print <<END
    # else if (isInNet(host, "$netaddr", "$netmask"))
    # return "DIRECT";
    # END
    # ;
    # }
    # }

    foreach my $thisline (@lines) {
    chomp($thisline);
    my %info = policy_line($thisline);
    if ($info{"enabled"} ne "on") {
    next;
    }
    elsif ($info{"src_type"} eq "any") {
    $any = 1;
    }
    elsif ($info{"src_type"} eq "zone" && uc($info{"src"}) eq uc($zone)) {
    foreach my $net (split(/,/, $zone_nets)) {
    my ($netaddr, $netmask) = ipv4_network($net);
    $netmask = ipv4_cidr2msk($netmask);
    print <<END
    else if (isInNet(host, "$netaddr", "$netmask") {
    return "PROXY $ip:$port; DIRECT";
    }
    END
    ;
    }
    }
    elsif ($info{"src_type"} eq "ip") {
    foreach my $net (split(/\|/, $info{"src"})) {
    if (is_ip($net)) {
    print <<END
    else if (host == "$net") {
    return "PROXY $ip:$port; DIRECT";
    }
    END
    ;
    }
    elsif (is_ipandmask($net)) {
    my ($netaddr, $netmask) = ipv4_network($net);
    $netmask = ipv4_cidr2msk($netmask);
    print <<END
    else if (isInNet(host, "$netaddr", "$netmask") {
    return "PROXY $ip:$port; DIRECT";
    }
    END
    ;
    }
    }
    }
    }
    }
    print <<END
    else {
    END
    ;
    if ($ip eq '' || $port eq '' || $any eq 0) {
    print <<END
    return "DIRECT";
    END
    ;
    }
    else {
    print <<END
    return "PROXY $ip:$port; DIRECT";
    END
    ;
    }
    print <<END
    }
    }
    END
    ;
    }

    my $zone = calculate_zone($ENV{'REMOTE_ADDR'});
    showhttpheaders();
    printpac($zone, get_ip($zone, $ENV{'REMOTE_ADDR'}), get_port($zone), $net_conf{$zone.'_IPS'});
    exit(0);

  • PFsense

    • Sabine
    • 5. Juni 2011 um 09:53

    Moin,
    wie das bei der Enterprise Version ist weiß ich nicht, müsste man mal ffischer fragen.
    Die neuen Kategorien tauchen auf der Weboberfläche auf und lassen sich da auch aktivieren. :P

    Gruß Sabine

  • PFsense

    • Sabine
    • 4. Juni 2011 um 21:27

    Das geht nicht automatisch !

    Vor dem ersetzen der Blacklisten sollte man noch die "Standartrichtlinien" auf "Uneingeschränkten" umstellen ( danach wird Squid neu gestartet ),
    dann die neuen Listen hoch laden in /etc/dansguardian/blacklists ( die alten Listen werden überschrieben )
    und wieder auf „ Nur Antivierenscan „ oder „ Inhaltsfilter + Antivierenscan „ einstellen ( danach wird Squid wieder neu gestartet ).
    Sonst könnte es zu Problemen kommen wenn man im laufendem Betrieb die Listen ersetzt.

    Ich nehme die hier: http://www.shallalist.de/

    Die machen manchmal Probleme: http://urlblacklist.com/?sec=download

    Gruß Sabine

  • PFsense

    • Sabine
    • 4. Juni 2011 um 18:18

    Ja, du musst :

    facebook.com
    wer-kennt-wen.de
    studivz.net

    schreiben dann geht das.
    Du solltest mal die Blacklisten updaten die sind doch nach der Installation recht alt.

    Gruß Sabine

  • PFsense

    • Sabine
    • 4. Juni 2011 um 17:39

    Die Inhaltsfilter findest du unter Zugriffsregen ( musst du erstellen sonst geht es nicht ).

    Gruß Sabine

    Bilder

    • Filter.JPG
      • 64,92 kB
      • 948 × 749
  • PFsense

    • Sabine
    • 4. Juni 2011 um 16:52

    Hi,
    bei mir ist die Portweiterleitung im IDS- System hängen geblieben und da ich keine Logs hatte konnte ich auch nicht genau sehen welcher der 4000 Regeln jetzt schuld hatte. :(
    Andere hatten das Problem nicht !

    Gruß Sabine

  • PFsense

    • Sabine
    • 4. Juni 2011 um 13:05

    Hallo,
    du musst in var/efw/backup in der exclude.system folgendes hinzufügen etc/businfotab ,
    dann wird die Netzwerkkonfiguration nicht mit gesichert.
    Dann auf der neuen efw die Netzwerkkarten neu zu ordnen, fertig !

    Gesichert wird alles !

    Gruß Sabine

  • PFsense

    • Sabine
    • 4. Juni 2011 um 08:00

    Moin.

    Die Frage war ja:

    Zitat

    Kann man die Netzwerk Schnittstellen irgendwie vertauschen - ähnlich wie bei Untangle?

    Deshalb gehe ich mal davon aus da MIB schon auf der Gui ist.

    Wenn man schon einen Quad herumliegen hat darf den auch mal zum testen nehmen.

    Gruß Sabine

  • PFsense

    • Sabine
    • 3. Juni 2011 um 20:30

    Unter System /Netzwerkkonfiguration kannst du die Karten deinen Schnittstellen zuweisen.
    Außerdem siehst du die ja auch auf der Startseite.

    Gruß Sabine

    Bilder

    • Endian-Netzwerk.JPG
      • 78,4 kB
      • 1.030 × 770
  • Endian Entwickler

    • Sabine
    • 3. Juni 2011 um 13:48

    Bitte liebe Endian- Entwickler keine 2.5 Pre Alpha nach schieben ! ! ! ! !

    Sonder vorher Testen, teste, testen . . . . . . . . . . . . . . . . . . . . . . . . . .

  • PFsense

    • Sabine
    • 3. Juni 2011 um 13:26

    MIB,

    Zitat

    Ich habe die Hoffnung nie aufgegeben mal auf eine funktionierende EFW Version nach 2.2 zu stoßen.

    hast du jetzt mal die 2.4.1 getestet ?
    Die läuft aus meiner Sicht mittlerweile genauso wie die 2.2

    Gruß Sabine

  • Internen Datenverkehr verbieten

    • Sabine
    • 1. Juni 2011 um 11:28

    matze,
    an die Möglichkeit das die Rechner sich über den Switch unterhalten habe ich noch gar nicht gedacht.
    Leuchtet aber ein, dann muss ich mich ja jetzt nicht mehr aufregen.

    Gruß sabine

  • letzter macht das Licht aus !

    • Sabine
    • 1. Juni 2011 um 08:56

    Kaffeetasse ist da !
    Hat sich aber irgendwie verändert seit dem die durch die Endian ist ? ? ? ? ? ? ? :lol:

    Bilder

    • Endian-Kaffeetass.jpg
      • 33,1 kB
      • 459 × 468
  • letzter macht das Licht aus !

    • Sabine
    • 1. Juni 2011 um 08:08

    Reich mal durch die Leitung :D

  • Web Proxy lässt sich nicht einschalten

    • Sabine
    • 1. Juni 2011 um 08:02

    Moin,
    das hatte ich auch schon !
    Habe die Endian dann noch mal neu installiert und den Proxy ausgelassen bevor ich die Wiederherstellung durchgeführt habe !
    Dann ging es, bei einer anderen Maschine waren alle Versuche vergebens !
    Ich habe dann die 2.2 Upgedatet auf 2.4.1 und dann die Sicherung gemacht und auf die neue Maschine gespielt.

    Gruß Sabine

  • letzter macht das Licht aus !

    • Sabine
    • 1. Juni 2011 um 07:55

    Moin,
    hier keine 10 Grad ! :(
    Vor 2 Tagen noch 31 Grad ! 8-)
    Da frieren einem ja Schwarzohren ab !! :lol:

  • Internen Datenverkehr verbieten

    • Sabine
    • 1. Juni 2011 um 07:50

    Moin,
    ich habe alle möglichen Konstellationen ausprobiert.
    Unter anderem beide Rechner am Switch ( Acces Point aus ), Firewall Regeln verbiete von Grün auf die IP des Rechner,
    IP des Rechner verbieten auf die IP des andern Rechners.
    Alles ohne erfolg !!!
    Ping von Rechner 1 auf Rechner 2 und umgekehrt, geht alles !
    Ein Webserver auf dem einem Rechner, zugriff vom andere Rechner, geht immer !

    Gruß Sabine

  • Internen Datenverkehr verbieten

    • Sabine
    • 31. Mai 2011 um 16:16

    So habe hier noch einen Linksys WRT120N Wireless Router gefunden der kann das auch :)

    Was ich nicht verstehe ist das ich Interne Firewall Regeln und normale Firewall Regeln habe und nicht Rechner A verbieten kann
    auf Rechner B zuzugreifen.

    Wozu dann die Regeln ?

    Gruß Sabine

  • Internen Datenverkehr verbieten

    • Sabine
    • 31. Mai 2011 um 12:35

    So habe mal nach einem günstigen Access Point gesucht, der Netgear WN604 WiFi-N 150 kann das wohl auch ( ab 60.- Euro ) :)

  • Internen Datenverkehr verbieten

    • Sabine
    • 31. Mai 2011 um 09:55

    Wie gesagt, habe das mal beantragt, bis jetzt noch kein Cent da !
    Sobald ich was weiß und ich kaufen darf, melde ich mich bei dir für die Aktuellen Preise. :P

    Gruß Sabine

Unterstützt von

  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™