Forgive me but I’m pretty green when it comes to these F5’s. We have an F5 LTM that is load balancing our internal and external email. We just had a pen test done and they saw TLS1 and 1.1 open from the external IPs.
Pretty simple setup, external email hits our mail URL, it gets NAT’d to internal IP of the F5 virtual server then that goes to our pools. Virtual server is using client ssl profile and I’m assuming that is where this TLS is showing up.
What I need to know is how to find (cli command as we have many virtual servers) what virtual servers are using this specific SSL Profile so I can make sure the external is the only one before I make any changes to the profile.
The current SSL profile option is set with just No_TLSv1.3, wouldn’t that mean it’s using everything else BUT 1.3? I would want to put v1 and v1.1 in there instead right?
HI,
Not sure it makes much difference but is this HTTPS or SMTP traffic? (only interested for possible context later)
now, what you want to look at is your client ssl profile.
Inside there is selection’s for “no tls” or “no tls1.1” etc etc. So by selecting the ones you don’t want it will turn them off.
The way i did it, was to use a cypher profile, and link that to your ssl profile. This meant i could have granual control not just of the encyrption used (TLS) but also the hashes which also came up on a pen test for me!
Have a look if that answers your question, if not let me know and i can send you some links or screen shots.
I’m not so sure we are worried about granularity at this point, so you are saying I should remove the “NO_TLSv1.3” and add the NO_TLSv1 and NO_TLSv1.1 in the options on the client ssl profile?
But how can find out if there are any other virtual servers using that same clent ssl profile before I make any changes?
Ok lets start from a test. If you can find a device that runs nmap that can get to the external interface try running this,
nmap --script ssl-enum-ciphers -p 443 <Your domain name here.com>
This should show you what you are dealing with and a method to prove that its worked!
Then under your ssl profile you need to chnage the config from “Basic” to “Advanced”
Then you’ll see the Options List
Here is mine, it appears its flow down so NO DTLSv1.2 turns off everything below that and leaves TLSv1.3.
I don’t know a location to see where a profile is used in a virtual server, but if you get a ucs file or the internal conf files out using the cli you could do a quick word search in the config maybe?
But you can go into the certificates and see which profiles they are used in which might get you “close” to the same place.
Now, i used the cyphers profile which also controled tls1.0, 1.1 1.2 etc.
And no tls1.3 basically turned it all of.
But i needed that nop dtls1.2 for it to work. So maybe one is covering up the other thinking about it.
The best thing to do, is run that nmap command so you can see what you are playing with and work from there.
yeah i think i made a mistake as the cypher profile overrides some of that config and made it work.
no tls1.3 will not enable it, the config is a bit backwards. “enable” NO TLS for example is a positive then a negative.
So if you want tls 1.3 then you need to take that out of enable options.
This issue i thnk i had, is that enable options needs something in there to work.
Have you got a test environment you could look at and test before you do this to see what happens.
yes, let’s say we DO NOT want TLS 1, 1.1, 1.2 and 1.3 for this sake, our config has “enabled” NO_TLSv1.3 so that should block 1.3, 1.2, 1.1, and 1 correct?
BUT, if that is the case then I’m not sure where the TLS 1 and 1.1 is showing for the pen test as it shows 1 and 1.1 is active so therefore the above isn’t working by blocking all the TLS version.
@j_hardin80 If you are in tmsh you should be able to run the following command to find them relatively quick.
list ltm virtual | grep -E “virtual |<ssl_client_profile_name>”
This will give you multiple lines but the ones you’re interested in are the ones with the virtual server name immediately followed by the ssl client profile name that you’re interested in. In the command above make sure to replace the entire string “<ssl_client_profile_name>” with the ssl client profile name in question.
Thank you but I’m not sure it’s working for me. No matter what SSL Profile name I use, it gives me the same listing of virtual servers that I know aren’t using that profile.
I hope this information will help you, So i think you can custom SSL profile with specific cipher for SSL handshake with client side or server side, Please following article below,
Notice how you have 2 VS back to back and then an indented SSL profile name. You will have to go through the text that shows up in the terminal and grab all VS names that are immediately followed by the SSL profile you are looking for. I don’t know of a better way of searching this without doing some complicated regex search.
@j_hardin80 If those are your results then the text for your SSL profile is not an exact match. You need for the text to be an exact match because “grep” is case sensitive.