pfSense 2.2.5 CaptivePortal Patch

Patch for pfSense 2.2.5 to redirect proxy users to the authentification portal.

*** captiveportal.inc  Wed Nov 04 22:52:22 2015
--- captiveportal_patched.inc   Mon Dec 14 17:12:42 2015
***************
*** 539,544 ****
--- 539,548 ----
  EOD;
  
    $rulenum = 65310;
+   /* Deny direct access to local services before captive portal authentication */
+   $local_service_ports="3128,3129";
+   $cprules .= "add {$rulenum} skipto 65314 ip from any to table(100) {$local_service_ports} in\n";
+   $cprules .= "add {$rulenum} skipto 65314 ip from table(100) {$local_service_ports} to any out\n";
    /* These tables contain host ips */
    $cprules .= "add {$rulenum} pass ip from any to table(100) in\n";
    $rulenum++;
***************
*** 578,591 ****
        else
            $listenporthttps = 8001 + $cpzoneid;
            if (!isset($config['captiveportal'][$cpzone]['nohttpsforwards'])) {
!               $cprules .= "add 65531 fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in\n";
            }
    }
    
    $cprules .= <<<EOD
  
  # redirect non-authenticated clients to captive portal
! add 65532 fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in 
  # let the responses from the captive portal web server back out
  add 65533 pass tcp from any to any out
  # block everything else
--- 582,596 ----
        else
            $listenporthttps = 8001 + $cpzoneid;
            if (!isset($config['captiveportal'][$cpzone]['nohttpsforwards'])) {
!               $cprules .= "add 65530 fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in\n";
            }
    }
    
    $cprules .= <<<EOD
  
  # redirect non-authenticated clients to captive portal
! add 65531 fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in 
! add 65532 fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 3128 in 
  # let the responses from the captive portal web server back out
  add 65533 pass tcp from any to any out
  # block everything else

Diff created with WinMerge.

Verifying Active Directory Installation

Check the status of the shared SYSVOL

dcdiag /test:netlogons

Verify DNS registration and functionality

dcdiag /test:dns

Verify communication with other domain controllers

nltest /dclist: <domain name>

Verify replication with other domain controllers

dcdiag /test:replications

Verify the availability of the operations masters

dcdiag /s: domaincontroller /test:knowsofroleholders /verbose 
dcdiag /s: domaincontroller /test:fsmocheck

Store VMware PowerCLI login credentials

Connect to VirtualCenter Server and enter credentials

Connect-VIServer -Server <Server>

Save the credentials to the credential store file (By default the credential store file is stored – encrypted – under the user profile directory)

New-VICredentialStoreItem  -Host <Server> -User "<Username>" -Password "<Password>"

How to repair or fully rebuild Windows WMI Repository

For Windows Vista and newer try to run the following:

  1. Verify repo (If the result shown as inconsistent, go to step 2)
    winmgmt /verifyrepository
  2. Repair repo
    winmgmt /salvagerepository
  3. Verify repo to check again wmi repository had been repaired successfully
    winmgmt /verifyrepository

To fully rebuild the WMI Repository follow these steps:

  1. Disable and stop the winmgmt service (Disable is important, elso you can’t rename the folder in step 2)
  2. Rename C:\Windows\System32\wbem\repository
  3. Enable and start the winmgmt service
  4. Open a CMD prompt as Administrator
  5. Navigate to C:\Windows\System32\wbem\
  6. Run the cmd (this will take a minute or so to complete)
    for /f %s in ('dir /b *.mof') do mofcomp %s
  7. Now run the cmd
    for /f %s in ('dir /b en-us\*.mfl') do mofcomp en-us\%s
  8. Now run the cmd
    for /f %s in ('dir /b de-DE\*.mfl') do mofcomp de-DE\%s
  9. Restart computer

MySQL: UPDATE query based on SELECT query

update tableA a
left join tableB b on
    a.name_a = b.name_b
set
    validation_check = if(start_dts > end_dts, 'VALID', '')
UPDATE payments p 
    INNER JOIN users u ON
    p.pay_id=u.user_id
SET 
    p.pay_email=u.user_email, 
    p.pay_firstname=u.user_firstname, 
    p.pay_lastname=u.user_lastname, 
    p.pay_date=u.user_date