> On Nov. 8, 2016, 2:33 p.m., Colm O hEigeartaigh wrote: > > One problem with this solution is that TLS client authentication is no > > longer enforced - instead just the certificate is retrieved from a HTTP > > header. What's to stop a malicious client just including a valid (public) > > certificate in the header to impersonate someone else?
Can you provide more details how to impersonate as someone else by using his valid public certificate. I would like to reproduce this. - Pradeep ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/53568/#review155289 ----------------------------------------------------------- On Nov. 8, 2016, 1:56 p.m., Pradeep Agrawal wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/53568/ > ----------------------------------------------------------- > > (Updated Nov. 8, 2016, 1:56 p.m.) > > > Review request for ranger, Ankita Sinha, Don Bosco Durai, Gautam Borad, Abhay > Kulkarni, Madhan Neethiraj, Mehul Parikh, Ramesh Mani, Selvamohan Neethiraj, > and Velmurugan Periasamy. > > > Bugs: RANGER-1212 > https://issues.apache.org/jira/browse/RANGER-1212 > > > Repository: ranger > > > Description > ------- > > **Problem Statement : ** If SSL is enabled in Ranger unsecured HA environment > then load balancer doesn't forward client certificate to Ranger and > Authentication fails due to certificate issue. In SSL environment usually > client sends SSL certificate with request attribute to Ranger for > authentication but whenever such request is sent via load balancer; load > balancer could not pass the received certificate to Ranger and authentication > fails. > > **Note :** This is happening only in the unsecured environment as client > certificate is mandatory at Ranger end; while in the secured environment, > authentication is done through Kerberos ticket so client certificate is not > required. > > **Proposed Solution :** Since load balancer is unable to pass client > certificate with request attribute we can configure load balancer to pass > client certifacte with request header. To enable this configuration at load > balancer end we need to add below line and enable load balancer to add > request header received from client. > > RequestHeader set SSL_CLIENT_CERT > "%{SSL_CLIENT_CERT}s" > > Load balancer shall send the client certificate in PEM format, proposed patch > shall read the PEM format certificate from request header and parse it. Since > Ranger requires X509 format certificate to authenticate the request, proposed > patch contains those changes to parse the certifacte in X509 format. > > > Diffs > ----- > > security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java > 9e72f42 > > Diff: https://reviews.apache.org/r/53568/diff/ > > > Testing > ------- > > **Steps Performed(with patch):** > 1. Installed ranger-admin on two nodes from Build having changes of proposed > patch. > 2. Configured Ranger admin in SSL mode. > 3. Configured load balancer in SSL mode with both the node of ranger-admin. > 4. Created truststore of load balancer self signed keystore. > 5. Created a truststore for the hdfs plugin and added the public key of > ranger admin as trusted entry into it. > 6. To enable HDFS Plugin to communicate to Ranger Admin via load balancer > copied the truststore file generated from load balancer machine(file > generated from step 4) to HDFS node. > 7. Generated HDFS truststore in PEM format to configure that in load balancer > machine. > 8. Created ranger_lb_crt.pem file in load balancer machine and added the > content of file created from previous step. > 9. In load balancer machine configured the path of file created in previous > step. > 10. Added below line in load balancer config file. > RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s" > 11. Started ranger-admin, hdfs and load balancer. > > **Expected behaviour :** Ranger plugin should able to communicate to Ranger > admin and download the policies. > > **Actual behaviour :** Ranger plugin was able to communicate to Ranger admin > and download the policies. > > > Thanks, > > Pradeep Agrawal > >