Also don't want firewalls inadvertently updated with the
registration/isolation network IPs.

Im trying to dig through the code to find the module that will supply the
variable to match the configured registration/isolation network ups, but
this works for me for now.

All my registration/isolation networks are in 10.11 or 10.12.

return 0 if ($ip =~ /^10\.1[12]\.[0-255]{1,3}\.[0-255]{1,3}$/);






On Thu, Aug 14, 2014 at 1:15 PM, Tim DeNike <[email protected]> wrote:

> Couple problems with the Palo SSO module.
>
>
> One I haven't looked into fixing yet:  If there are 2 SSO devices listed,
> it appears to round-robin between the 2 of them.  It should post to all
> devices for every record.  Might want to set a low timeout in case one of
> them is down for some reason?
>
> The rest:
>
> (Same changes for stop section)
>
> sub action {
>     my ($self,$firewall_conf,$method,$mac,$ip,$timeout) = @_;
>     my $logger = Log::Log4perl::get_logger(ref($self));
>
>     if ($method eq 'Start') {
>         my $node_info = node_view($mac);
>         my $domain = "mccad\\";  ###  Makes sense below.  Want the Palo to
> act on users that are domain members for group based policies.
>         my $username = lc $node_info->{'pid'};  ###Just my preference,
> lowercase username to normalize.
>         return 0 if ($username eq 'admin');        ###Dont act if its a
> particular user.  Might be good to add a list of pids to exclude.  Admin
> has all of our phones, desktop PCs and so-on.
>         $username =  $node_info->{'last_dot1x_username'} if (
> $ConfigFirewallSSO{$firewall_conf}->{'uid'} eq '802.1x');  ###Dont really
> know what this is for, but we get our 802.1x IPs for wireless users from
> the AP itself, so we don't really need it.
>         return 0 if ( $ConfigFirewallSSO{$firewall_conf}->{'uid'} eq
> '802.1x' && $node_info->{'last_dot1x_username'} eq '');
>         $username = $domain . $username if ( $username !~ /^.*@.*$/ );
>  ##If username isn't an email address, prepend the AD domain before sending
> to the palo.  We already strip off [email protected] in the radius virtual
> servers before they hit PF.
>
>         if (defined($node_info) && (ref($node_info) eq 'HASH') &&
> ($node_info->{'status'} eq $pf::node::STATUS_REGISTERED) &&  (grep { lc
> $node_info->{'category'} } (
> $ConfigFirewallSSO{$firewall_conf}->{'categories'}))) {  ###Works with more
> than one category is included
>         #if (defined($node_info) && (ref($node_info) eq 'HASH') &&
> $node_info->{'status'} eq $pf::node::STATUS_REGISTERED &&  grep { lc
> $node_info->{'category'} eq $_ } (
> $ConfigFirewallSSO{$firewall_conf}->{'categories'})) {  ###Fails if more
> than one category is included
>
>             my $message = <<"XML";
>                 <uid-message>
>                     <version>1.0</version>
>                     <type>update</type>
>                     <payload>
>                         <login>
>                             <entry name=\"$username\" ip=\"$ip\"
> timeout=\"$timeout\"/>
>                         </login>
>                     </payload>
>                </uid-message>
> XML
>             #my $webpage = "https://
> ".$firewall_conf."/api/?type=user-id&action=set&key=".$ConfigFirewallSSO{$firewall_conf}->{'password'};
>             my $webpage = 
> "https://".$firewall_conf."/api/?type=user-id&action=set";;
>  ### We don't post directly to the palo, we post to the userid agent
> running on our AD servers.  You should also be aware of different
> parameters if using a system on the palo.
>             my $ua = LWP::UserAgent->new;
>             my $response = $ua->post($webpage, Content => $message );
> ### Works
>             #my $response = $ua->post($webpage, Content => [ cmd =>
> $message ]);  ### Doesn't work
>             if ($response->is_success) {
>                 $logger->info("Node $mac registered and allowed to pass
> the Firewall");
>                 return 1;
>             } else {
>                 $logger->info("XML send error :".$response->status_line);
>                 return 0;
>             }
> }
>
>
------------------------------------------------------------------------------
_______________________________________________
PacketFence-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/packetfence-users

Reply via email to