Search in sources :

Example 1 with FirewallConfiguration

use of org.eclipse.kura.core.net.FirewallConfiguration in project kura by eclipse.

the class FirewallConfigurationServiceImpl method updated.

public synchronized void updated(Map<String, Object> properties) {
    s_logger.debug("updated()");
    for (String key : properties.keySet()) {
        s_logger.debug("updated() :: Props... {}={}", key, properties.get(key));
    }
    FirewallConfiguration firewallConfiguration = new FirewallConfiguration(properties);
    try {
        setFirewallOpenPortConfiguration(firewallConfiguration.getOpenPortConfigs());
    } catch (KuraException e) {
        s_logger.error("Failed to set Firewall OPen Ports Configuration - {}", e);
    }
    try {
        setFirewallPortForwardingConfiguration(firewallConfiguration.getPortForwardConfigs());
    } catch (KuraException e) {
        s_logger.error("Failed to set Firewall Port Forwarding Configuration - {}", e);
    }
    try {
        setFirewallNatConfiguration(firewallConfiguration.getNatConfigs());
    } catch (KuraException e) {
        s_logger.error("Failed to set Firewall NAT Configuration - {}", e);
    }
    // raise the event because there was a change
    this.m_eventAdmin.postEvent(new FirewallConfigurationChangeEvent(properties));
}
Also used : FirewallConfigurationChangeEvent(org.eclipse.kura.net.admin.event.FirewallConfigurationChangeEvent) KuraException(org.eclipse.kura.KuraException) FirewallConfiguration(org.eclipse.kura.core.net.FirewallConfiguration)

Example 2 with FirewallConfiguration

use of org.eclipse.kura.core.net.FirewallConfiguration in project kura by eclipse.

the class FirewallConfigurationServiceImpl method getFirewallConfiguration.

@Override
public FirewallConfiguration getFirewallConfiguration() throws KuraException {
    s_logger.debug("getting the firewall configuration");
    FirewallConfiguration firewallConfiguration = new FirewallConfiguration();
    LinuxFirewall firewall = LinuxFirewall.getInstance();
    Iterator<LocalRule> localRules = firewall.getLocalRules().iterator();
    while (localRules.hasNext()) {
        LocalRule localRule = localRules.next();
        if (localRule.getPortRange() != null) {
            s_logger.debug("getFirewallConfiguration() :: Adding local rule for {}", localRule.getPortRange());
            firewallConfiguration.addConfig(new FirewallOpenPortConfigIP4(localRule.getPortRange(), NetProtocol.valueOf(localRule.getProtocol()), localRule.getPermittedNetwork(), localRule.getPermittedInterfaceName(), localRule.getUnpermittedInterfaceName(), localRule.getPermittedMAC(), localRule.getSourcePortRange()));
        } else {
            s_logger.debug("getFirewallConfiguration() :: Adding local rule for {}", localRule.getPort());
            firewallConfiguration.addConfig(new FirewallOpenPortConfigIP4(localRule.getPort(), NetProtocol.valueOf(localRule.getProtocol()), localRule.getPermittedNetwork(), localRule.getPermittedInterfaceName(), localRule.getUnpermittedInterfaceName(), localRule.getPermittedMAC(), localRule.getSourcePortRange()));
        }
    }
    Iterator<PortForwardRule> portForwardRules = firewall.getPortForwardRules().iterator();
    while (portForwardRules.hasNext()) {
        PortForwardRule portForwardRule = portForwardRules.next();
        try {
            s_logger.debug("getFirewallConfiguration() :: Adding port forwarding - inbound iface is {}", portForwardRule.getInboundIface());
            firewallConfiguration.addConfig(new FirewallPortForwardConfigIP4(portForwardRule.getInboundIface(), portForwardRule.getOutboundIface(), (IP4Address) IPAddress.parseHostAddress(portForwardRule.getAddress()), NetProtocol.valueOf(portForwardRule.getProtocol()), portForwardRule.getInPort(), portForwardRule.getOutPort(), portForwardRule.isMasquerade(), new NetworkPair<IP4Address>((IP4Address) IPAddress.parseHostAddress(portForwardRule.getPermittedNetwork()), (short) portForwardRule.getPermittedNetworkMask()), portForwardRule.getPermittedMAC(), portForwardRule.getSourcePortRange()));
        } catch (UnknownHostException e) {
            e.printStackTrace();
            throw new KuraException(KuraErrorCode.INTERNAL_ERROR, e);
        }
    }
    Iterator<NATRule> autoNatRules = firewall.getAutoNatRules().iterator();
    while (autoNatRules.hasNext()) {
        NATRule autoNatRule = autoNatRules.next();
        s_logger.debug("getFirewallConfiguration() :: Adding auto NAT rules {}", autoNatRule.getSourceInterface());
        firewallConfiguration.addConfig(new FirewallAutoNatConfig(autoNatRule.getSourceInterface(), autoNatRule.getDestinationInterface(), autoNatRule.isMasquerade()));
    }
    Iterator<NATRule> natRules = firewall.getNatRules().iterator();
    while (natRules.hasNext()) {
        NATRule natRule = natRules.next();
        s_logger.debug("getFirewallConfiguration() :: Adding NAT rules {}", natRule.getSourceInterface());
        firewallConfiguration.addConfig(new FirewallNatConfig(natRule.getSourceInterface(), natRule.getDestinationInterface(), natRule.getProtocol(), natRule.getSource(), natRule.getDestination(), natRule.isMasquerade()));
    }
    return firewallConfiguration;
}
Also used : UnknownHostException(java.net.UnknownHostException) FirewallAutoNatConfig(org.eclipse.kura.net.firewall.FirewallAutoNatConfig) PortForwardRule(org.eclipse.kura.linux.net.iptables.PortForwardRule) IP4Address(org.eclipse.kura.net.IP4Address) FirewallConfiguration(org.eclipse.kura.core.net.FirewallConfiguration) LinuxFirewall(org.eclipse.kura.linux.net.iptables.LinuxFirewall) NATRule(org.eclipse.kura.linux.net.iptables.NATRule) FirewallNatConfig(org.eclipse.kura.net.firewall.FirewallNatConfig) NetworkPair(org.eclipse.kura.net.NetworkPair) KuraException(org.eclipse.kura.KuraException) FirewallPortForwardConfigIP4(org.eclipse.kura.net.firewall.FirewallPortForwardConfigIP4) FirewallOpenPortConfigIP4(org.eclipse.kura.net.firewall.FirewallOpenPortConfigIP4) LocalRule(org.eclipse.kura.linux.net.iptables.LocalRule)

Aggregations

KuraException (org.eclipse.kura.KuraException)2 FirewallConfiguration (org.eclipse.kura.core.net.FirewallConfiguration)2 UnknownHostException (java.net.UnknownHostException)1 LinuxFirewall (org.eclipse.kura.linux.net.iptables.LinuxFirewall)1 LocalRule (org.eclipse.kura.linux.net.iptables.LocalRule)1 NATRule (org.eclipse.kura.linux.net.iptables.NATRule)1 PortForwardRule (org.eclipse.kura.linux.net.iptables.PortForwardRule)1 IP4Address (org.eclipse.kura.net.IP4Address)1 NetworkPair (org.eclipse.kura.net.NetworkPair)1 FirewallConfigurationChangeEvent (org.eclipse.kura.net.admin.event.FirewallConfigurationChangeEvent)1 FirewallAutoNatConfig (org.eclipse.kura.net.firewall.FirewallAutoNatConfig)1 FirewallNatConfig (org.eclipse.kura.net.firewall.FirewallNatConfig)1 FirewallOpenPortConfigIP4 (org.eclipse.kura.net.firewall.FirewallOpenPortConfigIP4)1 FirewallPortForwardConfigIP4 (org.eclipse.kura.net.firewall.FirewallPortForwardConfigIP4)1