On Mon, 2010-04-05 at 19:32 +0200, Jarry wrote: > Hi > > I'd like to ask if there is some way to include multiple discrete > hosts/IP's in --source and --destination options of iptables. > > I'm trying to write firewall rules for my server, but it has > 12 IP's from different segments (and maybe it gets a few more > later), and the script grows up as I have to write nearly > identical rules with difference only in -s/-d IP's. > > What I'm looking for is a way to define some variable at the > beginning of my script, like MY_IP="IP1 IP2 IP3 IP4..." and > later to use is in rules (iptables -A INPUT -s $MY_IP...). > But I do not know how to use it. As far as I understand it, > --source/--destination accepts only single IP's or continuous > IP-segments...
You can do something like: (100) iptables -N IP_SET_CHECK (110) iptables -A IP_SET_CHECK -s $IP1 -j RETURN (120) iptables -A IP_SET_CHECK -s $IP2 -j RETURN (130) iptables -A IP_SET_CHECK -s $IP3/16 -j RETURN (140) iptables -A IP_SET_CHECK -s $IP4 -j RETURN (150) iptables -A IP_SET_CHECK -j DROP (210) iptables -A INPUT -j IP_SET_CHECK (220) iptables -A INPUT some other rules.... (230) iptables -A INPUT some other rules.... So, when it comes to the the line 210, it will start checking newly created chain IP_SET_CHECK. If it won't find appropriate rule it will be dropped at the line (150), but if manages to find one, it will return to the line 220 and will continue looking for "-j ACCEPT" or "-j DROP". The same applies for the OUTPUT chain. > Jarry >