Greetings and thanks for reaching out to us.
These errors you are getting from your rules are not actually a rule syntax problem. This is a problem with variable definitions for HOME_NET, DNS_SERVERS and SMTP_SERVERS in your snort.lua and/or snort_defaults.lua configuration files for snort3.
By default, snort 3 uses the configuration file /usr/local/etc/snort/snort.lua to define a whole host of configuration settings. One of those settings is the HOME_NET variable:
Notice how it is set to 'any' and that most of the errors are variations of hey, this variable cannot be set to !any.? Its because the value any cannot be negated. Snort can’t make sense of that.
Compare that to the default HOME_NET value for Suricata:
By default, we’re assuming that users have defined their HOME_NET variable to best suit the IP address range(s) of the network(s) they’re trying to protect. But even if they don’t, the HOME_NET variable defaults to the RFC1918 (Private network) IP address ranges: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16
So the bottom line in all of this is that if you’d like to fix these errors, you need to change the value of HOME_NET in your snort.lua file. If you don’t know what the value of your HOME_NET variable should be, you can just set it to the RFC1918 networks by changing the HOME_NET line to this:
Now, you’re probably wondering: Does this fix the errors I’m getting for $SMTP_SERVERS and $DNS_SERVERS as well?
Yes, because those variables are defined in the snort_defaults.lua and they just inherit the value of HOME_NET:
If you have custom DNS, SMTP, etc server IP addresses that are NOT in the scope of your HOME_NET, you’ll need to manually modify this file to suit your needs. But otherwise, if all you want is for these rules to pass validation, then their default value of HOME_NET should be fine.
Try out the changes I’ve recommended and let me know if you continue to have problems.
Thanks again,
-Tony R.