Diff for /loncom/configuration/Firewall.pm between versions 1.18 and 1.21

version 1.18, 2019/06/09 02:35:45 version 1.21, 2020/07/09 13:42:37
Line 51  sub uses_firewalld { Line 51  sub uses_firewalld {
         if ($1 >= 18) {          if ($1 >= 18) {
             $checkfirewalld = 1;              $checkfirewalld = 1;
         }          }
     } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) {      } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) {
         if ($1 >= 7) {          if ($1 >= 7) {
             $checkfirewalld = 1;              $checkfirewalld = 1;
         }          }
Line 181  sub firewall_open_port { Line 181  sub firewall_open_port {
                         }                          }
                     }                      }
                 } else {                  } else {
                     print "no key found in $iphost hash ref\n";                      print "no key found in \$iphost hash ref.\n".
                             "Domain Name Service (DNS) may not be available.\n".
                             "If this LON-CAPA node is standalone, then you can fix this issue by modifying /etc/hosts.\n".
                             "Use a text editor to add: IPaddress Hostname\n";
                 }                  }
             } else {              } else {
                 print "$iphost is not a reference to a hash\n";                  print "\$iphost is not a reference to a hash\n";
             }              }
             if (@lond_port_curropen) {              if (@lond_port_curropen) {
                 unless (grep(/^\Q$port\E$/,@opened)) {                  unless (grep(/^\Q$port\E$/,@opened)) {
Line 276  sub firewall_is_port_open { Line 279  sub firewall_is_port_open {
     # for other ports returns 1 if the firewall port is open, 0 if not.      # for other ports returns 1 if the firewall port is open, 0 if not.
     # if firewalld is in use, checks for rich rules only.      # if firewalld is in use, checks for rich rules only.
     my $count = 0;      my $count = 0;
       # check if firewall is active or installed
     return $count if (! &firewall_is_active());      return $count if (! &firewall_is_active());
     if ($firewalld) {      if ($firewalld) {
         my $zone = &get_default_zone();          my $zone = &get_default_zone();
Line 307  sub firewall_is_port_open { Line 311  sub firewall_is_port_open {
                 close(PIPE);                  close(PIPE);
             }              }
         }          }
  return $count;       } elsif (($fw_chain =~ /^[\w-]+$/) && (open(PIPE,"$iptables -L $fw_chain -n |"))) {
     }  
     return $count unless ($fw_chain !~ /^[\w-]+$/);  
     if (open(PIPE,"$iptables -L $fw_chain -n |")) {  
         # check if firewall is active or installed  
         return if (! &firewall_is_active());  
         while(<PIPE>) {          while(<PIPE>) {
             if ($port eq $lond_port) {              if ($port eq $lond_port) {
                 if (ref($iphost) eq 'HASH') {                  if (ref($iphost) eq 'HASH') {
Line 640  sub get_fw_chains { Line 639  sub get_fw_chains {
     my $firewalld = &uses_firewalld($distro);      my $firewalld = &uses_firewalld($distro);
     if ($firewalld) {      if ($firewalld) {
         my ($dist,$version) = ($distro =~ /^([\D]+)(\d+)$/);          my ($dist,$version) = ($distro =~ /^([\D]+)(\d+)$/);
         if ((($dist eq 'rhes') || ($dist eq 'centos')) &&          if (((($dist eq 'rhes') || ($dist eq 'centos')) &&
              ($version >= 8)) {               ($version >= 8)) || (($dist eq 'oracle') && ($version >= 7))) {
             push(@fw_chains,'INPUT');              push(@fw_chains,'INPUT');
         } else {          } else {
             my $zone = &get_default_zone();              my $zone = &get_default_zone();
Line 660  sub get_fw_chains { Line 659  sub get_fw_chains {
         } else {          } else {
             if ($distro =~ /^(debian|ubuntu|suse|sles)/) {              if ($distro =~ /^(debian|ubuntu|suse|sles)/) {
                 @posschains = ('INPUT');                   @posschains = ('INPUT'); 
             } elsif ($distro =~ /^(fedora|rhes|centos|scientific)(\d+)$/) {              } elsif ($distro =~ /^(fedora|rhes|centos|scientific|oracle)(\d+)$/) {
                 if ((($1 eq 'fedora') && ($2 > 15)) || (($1 ne 'fedora') && ($2 >= 7))) {                  if ((($1 eq 'fedora') && ($2 > 15)) || (($1 ne 'fedora') && ($2 >= 7))) {
                     @posschains = ('INPUT');                      @posschains = ('INPUT');
                 } else {                  } else {
Line 673  sub get_fw_chains { Line 672  sub get_fw_chains {
                         print("Unable to find iptables file containing static definitions.\n");                          print("Unable to find iptables file containing static definitions.\n");
                     }                      }
                 }                  }
                 if ($distro =~ /^(fedora|rhes|centos|scientific)(\d+)$/) {                  if ($distro =~ /^(fedora|rhes|centos|scientific|oracle)(\d+)$/) {
                     unless ((($1 eq 'fedora') && ($2 > 15)) || (($1 ne 'fedora') && ($2 >= 7))) {                      unless ((($1 eq 'fedora') && ($2 > 15)) || (($1 ne 'fedora') && ($2 >= 7))) {
                         push(@fw_chains,'RH-Firewall-1-INPUT');                          push(@fw_chains,'RH-Firewall-1-INPUT');
                     }                      }

Removed from v.1.18  
changed lines
  Added in v.1.21


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>