For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

jlb4350's avatar
jlb4350
Icon for Cirrus rankCirrus
Jul 19, 2022
Solved

Help tweaking my iRule

Hello all. I have an oubound virtual server that allows all traffic and protocols to any address, it's a wildcard outbound. I'm wanting to use an iRule to block outbound connections to Russia using data referenced in a data group. I created the following data group and iRule, but it ended up blocking everything when I attached it to my wildcard outbound VS. Are there any iRule gurus could can help me tweak this? Any help is much appreciated!

Data group:

iRule:

  • The iRule is slightly wrong in that it is trying to pull out a value of RU and then matching the IP address to the value which would never happen.  I would use the framework set in the support article and do something like this:

    when SERVER_CONNECTED {
        set ipaddr [IP::remote_addr]
        set fromCountry [whereis $ipaddr country]
        if { [class match $fromCountry equals GeoIPOutboundBlockRussia] } {
             log local0. "Attacker IP [IP::client_addr]"  ;#  This can be removed/commented out if not required
             drop
        }
    }

     

6 Replies

    • jlb4350's avatar
      jlb4350
      Icon for Cirrus rankCirrus

      Interesting. So I should just put RU in the string field and nothing in the value field, and that will be my string record, like this:


      How about the iRule, does that part look alright?

      Thank you for your reply and help!

      • David_Larsen's avatar
        David_Larsen
        Icon for Employee rankEmployee

        The iRule is slightly wrong in that it is trying to pull out a value of RU and then matching the IP address to the value which would never happen.  I would use the framework set in the support article and do something like this:

        when SERVER_CONNECTED {
            set ipaddr [IP::remote_addr]
            set fromCountry [whereis $ipaddr country]
            if { [class match $fromCountry equals GeoIPOutboundBlockRussia] } {
                 log local0. "Attacker IP [IP::client_addr]"  ;#  This can be removed/commented out if not required
                 drop
            }
        }

         

  • Perfect, I'll give that a try and see what happens tonight. I'll report back, thank you again for your help!

  • Sorry for the late reply, I've been traveling.

    I ended up piecing together a few iRules that I found to come up with this and it works perfectly. I may tweak it in the future, but this is working. It involves the countries to block access to in a data group and the iRule to reference that group: