--- loncom/init.d/loncontrol 2004/12/02 20:49:50 1.21 +++ loncom/init.d/loncontrol 2004/12/02 21:16:56 1.22 @@ -45,29 +45,34 @@ $ENV{'BASH_ENV'}=""; # Firewall code is based on the code in FC2 /etc/init.d/ntpd my $fw_chain = 'RH-Firewall-1-INPUT'; my $iptables = '/sbin/iptables'; - my $port = 5663; + my $lond_port = 5663; + my $lonhttpd_port = 8080; sub firewall_open_port { return if (! &firewall_is_active); - print "Opening firewall access on port $port\n"; if (! `$iptables -L -n 2>/dev/null | grep $fw_chain | wc -l`) { return; } # iptables is running with our chain # # We could restrict the servers allowed to attempt to communicate # here, but the logistics of updating the /home/httpd/lonTabs/host.tab # file are likely to be a problem - my $firewall_command = - "$iptables -I $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; - system($firewall_command); - my $return_status = $?>>8; - if ($return_status == 1) { - # Error - print "Error opening port.\n"; - } elsif ($return_status == 2) { - # Bad command - print "Bad command error opening port. Command was\n". - " ".$firewall_command."\n"; + foreach my $port ($lond_port,$lonhttpd_port) { + print "Opening firewall access on port $port.\n"; + + my $firewall_command = + "$iptables -I $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; + system($firewall_command); + my $return_status = $?>>8; + if ($return_status == 1) { + # Error + print "Error opening port.\n"; + } elsif ($return_status == 2) { + # Bad command + print "Bad command error opening port. Command was\n". + " ".$firewall_command."\n"; + } } + } sub firewall_is_port_open { @@ -92,18 +97,20 @@ sub firewall_is_active { sub firewall_close_port { return if (! &firewall_is_active); - print "Closing firewall access on port $port\n"; - my $firewall_command = - "$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; - system($firewall_command); - my $return_status = $?>>8; - if ($return_status == 1) { - # Error - print "Error closing port.\n"; - } elsif ($return_status == 2) { - # Bad command - print "Bad command error closing port. Command was\n". - " ".$firewall_command."\n"; + foreach my $port ($lond_port,$lonhttpd_port) { + print "Closing firewall access on port $port.\n"; + my $firewall_command = + "$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT"; + system($firewall_command); + my $return_status = $?>>8; + if ($return_status == 1) { + # Error + print "Error closing port.\n"; + } elsif ($return_status == 2) { + # Bad command + print "Bad command error closing port. Command was\n". + " ".$firewall_command."\n"; + } } }