Stephen: Here my two cents.
We use pktfilter. It works quite well. It took us a while to configure it,
because we had to configure not only POP, SMT and WEBMAIL but DNS as well.
I am attaching a txt file with the rules we use in our server. We have
different ranges of IPs in the box, so if you have one range or one IP, some
lines could be deleted.
If you need to add port 80 navegation, just let me know to send you the set
of rules. Although they are very simple to configure.
I hope this helps Imail administrator using pktfilter
I am also copying the txt file down here for archiving purposes.
-Luis
----
####BEGIN of RULES PKTFILTER
#### default policy = block everything
block in on eth1 all
block out on eth1 all
########### Allow POP3 ALL
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port =
110
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 110 to any port >
1023 established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 110 to any port >
1023 established
########### Allow WEBMAIL and CALENDAR
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port =
8383
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port =
8484
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 8383 to any port >
1023 established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 8484 to any port >
1023 established
########### Allow SMTP
pass in on eth1 proto tcp from any port = 25 to xxx.xxx.xxx.AAA port > 1023
pass in on eth1 proto tcp from any port = 25 to xxx.xxx.xxx.BBB/28 port >
1023
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port =
25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any port > 1023
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any port >
1023
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any
established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port > 1023 to any port =
25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any port =
25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 5025 to any
established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 5025 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA to any port = 25 established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 5025 to any
established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 5025 to any
########## Allow DNS
pass in on eth1 proto udp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA
port > 1023
pass in on eth1 proto udp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA
port > 1023
pass in on eth1 proto udp from xxx.xxx.xxx.EEE port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA
port > 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA
port > 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.EEE port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.FFF port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass in on eth1 proto udp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA
port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA
port = 53
pass in on eth1 proto tcp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA
port = 53
pass in on eth1 proto tcp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA
port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.EEE port = 53 to
1xxx.xxx.xxx.GGG/24 port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to
1xxx.xxx.xxx.GGG/24 port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to
1xxx.xxx.xxx.GGG/24 port > 1023
pass out on eth1 proto udp from xxx.xxx.xxx.AAA port > 1023 to
xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto udp from xxx.xxx.xxx.AAA port > 1023 to
xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto udp from 1xxx.xxx.xxx.GGG/24 port > 1023 to
xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto udp from 1xxx.xxx.xxx.GGG/24 port > 1023 to
xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to
xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to
xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto tcp from 1xxx.xxx.xxx.GGG/24 port > 1023 to
xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto tcp from 1xxx.xxx.xxx.GGG/24 port > 1023 to
xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.FFF port = 53
###END OF THE RULES
-------------------------What the xxx.xxx.xxx means in the table above
xxx.xxx.xxx.AAA: An IP address in our Imail Server in a different range from
the one below (xxx.xxx.xxx.BBB)
xxx.xxx.xxx.BBB: A range of IP address in our Imail Server
xxx.xxx.xxx.CCC: Primary DNS IP address
xxx.xxx.xxx.DDD Secondary DNS IP address
xxx.xxx.xxx.EEE: Another DNS Ip address
xxx.xxx.xxx.FFF: and Another DNS Ip address
xxx.xxx.xxx.GGG: a full range of IP address configured in our Imail Server
NIC. It covers ip address in the xxx.xxx.xxx.BBB range.
eth1 is the ID of our external NIC card. Could be eth0 or eth2 depends on
your configuration.
Port 5025 : used in IIS to prevent conflicts with IMAIL
As for the /28 and /24 those are switches to configure a range of address.
/28 means 255.255.255.0 and /28 means 255.255.255.240
here is a table that will give you the idea how everything works with
ranges.
Mask value: # of
Hex CIDR Decimal addresses Classfull
80.00.00.00 /1 128.0.0.0 2048 M 128 A
C0.00.00.00 /2 192.0.0.0 1024 M 64 A
E0.00.00.00 /3 224.0.0.0 512 M 32 A
F0.00.00.00 /4 240.0.0.0 256 M 16 A
F8.00.00.00 /5 248.0.0.0 128 M 8 A
FC.00.00.00 /6 252.0.0.0 64 M 4 A
FE.00.00.00 /7 254.0.0.0 32 M 2 A
FF.00.00.00 /8 255.0.0.0 16 M 1 A
FF.80.00.00 /9 255.128.0.0 8 M 128 B
FF.C0.00.00 /10 255.192.0.0 4 M 64 B
FF.E0.00.00 /11 255.224.0.0 2 M 32 B
FF.F0.00.00 /12 255.240.0.0 1024 K 16 B
FF.F8.00.00 /13 255.248.0.0 512 K 8 B
FF.FC.00.00 /14 255.252.0.0 256 K 4 B
FF.FE.00.00 /15 255.254.0.0 128 K 2 B
FF.FF.00.00 /16 255.255.0.0 64 K 1 B
FF.FF.80.00 /17 255.255.128.0 32 K 128 C
FF.FF.C0.00 /18 255.255.192.0 16 K 64 C
FF.FF.E0.00 /19 255.255.224.0 8 K 32 C
FF.FF.F0.00 /20 255.255.240.0 4 K 16 C
FF.FF.F8.00 /21 255.255.248.0 2 K 8 C
FF.FF.FC.00 /22 255.255.252.0 1 K 4 C
FF.FF.FE.00 /23 255.255.254.0 512 2 C
FF.FF.FF.00 /24 255.255.255.0 256 1 C
FF.FF.FF.80 /25 255.255.255.128 128 1/2 C
FF.FF.FF.C0 /26 255.255.255.192 64 1/4 C
FF.FF.FF.E0 /27 255.255.255.224 32 1/8 C
FF.FF.FF.F0 /28 255.255.255.240 16 1/16 C
FF.FF.FF.F8 /29 255.255.255.248 8 1/32 C
FF.FF.FF.FC /30 255.255.255.252 4 1/64 C
FF.FF.FF.FE /31 255.255.255.254 2 1/128 C
FF.FF.FF.FF /32 255.255.255.255 This is a single host route
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rick Klinge
Sent: Friday, February 06, 2004 7:01 PM
To: [EMAIL PROTECTED]
Subject: RE: [IMail Forum] The use of a firewall
Jeff.. Here is a free one that works really well with w2k server:
http://www.famhost.com/support/pktfilter.zip
Hth,
~Rick
>> Would not suggest using a software based firewall that is
>> installed on the server. An external appliance is best. If
>> you have a small budget a WatchGuard Firebox x500 would do nicely.
>
>
> Are there others suggestion for firewall software for the
> server. Does Zonealarm have a server version and if so does
> it work as well as Black Ice.
___________________________________________________________________
Virus Scanned and Filtered by http://www.FamHost.com E-Mail System.
To Unsubscribe: http://www.ipswitch.com/support/mailing-lists.html
List Archive: http://www.mail-archive.com/imail_forum%40list.ipswitch.com/
Knowledge Base/FAQ: http://www.ipswitch.com/support/IMail/
______
[Email scanned for viruses by Panda Consulting -www.pandacons.com-]
[Email escaneado contra virus por Panda Consulting -www.pandacons.com-]
####BEGIN of RULES PKTFILTER
#### default policy = block everything
block in on eth1 all
block out on eth1 all
########### Allow POP3 ALL
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port = 110
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 110 to any port > 1023
established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 110 to any port > 1023
established
########### Allow WEBMAIL and CALENDAR
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port = 8383
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port = 8484
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 8383 to any port > 1023
established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 8484 to any port > 1023
established
########### Allow SMTP
pass in on eth1 proto tcp from any port = 25 to xxx.xxx.xxx.AAA port > 1023
pass in on eth1 proto tcp from any port = 25 to xxx.xxx.xxx.BBB/28 port > 1023
pass in on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.BBB/28 port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any port > 1023
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any port > 1023
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port > 1023 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 25 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 5025 to any established
pass out on eth1 proto tcp from xxx.xxx.xxx.BBB/28 port = 5025 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 25 to any
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA to any port = 25 established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA to any port = 25
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 5025 to any established
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port = 5025 to any
########## Allow DNS
pass in on eth1 proto udp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA port >
1023
pass in on eth1 proto udp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA port >
1023
pass in on eth1 proto udp from xxx.xxx.xxx.EEE port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA port >
1023
pass in on eth1 proto tcp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA port >
1023
pass in on eth1 proto tcp from xxx.xxx.xxx.EEE port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass in on eth1 proto tcp from xxx.xxx.xxx.FFF port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass in on eth1 proto udp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA port = 53
pass in on eth1 proto tcp from xxx.xxx.xxx.CCC port = 53 to xxx.xxx.xxx.AAA port = 53
pass in on eth1 proto tcp from xxx.xxx.xxx.DDD port = 53 to xxx.xxx.xxx.AAA port = 53
pass in on eth1 proto udp from xxx.xxx.xxx.EEE port = 53 to 1xxx.xxx.xxx.GGG/24 port
= 53
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to 1xxx.xxx.xxx.GGG/24 port
= 53
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass in on eth1 proto udp from xxx.xxx.xxx.FFF port = 53 to 1xxx.xxx.xxx.GGG/24 port
> 1023
pass out on eth1 proto udp from xxx.xxx.xxx.AAA port > 1023 to xxx.xxx.xxx.CCC port =
53
pass out on eth1 proto udp from xxx.xxx.xxx.AAA port > 1023 to xxx.xxx.xxx.DDD port =
53
pass out on eth1 proto udp from 1xxx.xxx.xxx.GGG/24 port > 1023 to xxx.xxx.xxx.EEE
port = 53
pass out on eth1 proto udp from 1xxx.xxx.xxx.GGG/24 port > 1023 to xxx.xxx.xxx.FFF
port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto udp from any port > 1023 to xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto udp from any port = 53 to xxx.xxx.xxx.FFF port = 53
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to xxx.xxx.xxx.CCC port =
53
pass out on eth1 proto tcp from xxx.xxx.xxx.AAA port > 1023 to xxx.xxx.xxx.DDD port =
53
pass out on eth1 proto tcp from 1xxx.xxx.xxx.GGG/24 port > 1023 to xxx.xxx.xxx.EEE
port = 53
pass out on eth1 proto tcp from 1xxx.xxx.xxx.GGG/24 port > 1023 to xxx.xxx.xxx.FFF
port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.CCC port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.DDD port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.EEE port = 53
pass out on eth1 proto tcp from any port > 1023 to xxx.xxx.xxx.FFF port = 53
###END OF THE RULES
-------------------------What the xxx.xxx.xxx means in the table above
xxx.xxx.xxx.AAA: An IP address in our Imail Server in a different range from the one
below (xxx.xxx.xxx.BBB)
xxx.xxx.xxx.BBB: A range of IP address in our Imail Server
xxx.xxx.xxx.CCC: Primary DNS IP address
xxx.xxx.xxx.DDD Secondary DNS IP address
xxx.xxx.xxx.EEE: Another DNS Ip address
xxx.xxx.xxx.FFF: and Another DNS Ip address
xxx.xxx.xxx.GGG: a full range of IP address configured in our Imail Server NIC. It
covers ip address in the xxx.xxx.xxx.BBB range.
eth1 is the ID of our external NIC card. Could be eth0 or eth2 depends on your
configuration.
Port 5025 : used in IIS to prevent conflicts with IMAIL
As for the /28 and /24 those are switches to configure a range of address.
/28 means 255.255.255.0 and /28 means 255.255.255.240
here is a table that will give you the idea how everything works with ranges.
Mask value: # of
Hex CIDR Decimal addresses Classfull
80.00.00.00 /1 128.0.0.0 2048 M 128 A
C0.00.00.00 /2 192.0.0.0 1024 M 64 A
E0.00.00.00 /3 224.0.0.0 512 M 32 A
F0.00.00.00 /4 240.0.0.0 256 M 16 A
F8.00.00.00 /5 248.0.0.0 128 M 8 A
FC.00.00.00 /6 252.0.0.0 64 M 4 A
FE.00.00.00 /7 254.0.0.0 32 M 2 A
FF.00.00.00 /8 255.0.0.0 16 M 1 A
FF.80.00.00 /9 255.128.0.0 8 M 128 B
FF.C0.00.00 /10 255.192.0.0 4 M 64 B
FF.E0.00.00 /11 255.224.0.0 2 M 32 B
FF.F0.00.00 /12 255.240.0.0 1024 K 16 B
FF.F8.00.00 /13 255.248.0.0 512 K 8 B
FF.FC.00.00 /14 255.252.0.0 256 K 4 B
FF.FE.00.00 /15 255.254.0.0 128 K 2 B
FF.FF.00.00 /16 255.255.0.0 64 K 1 B
FF.FF.80.00 /17 255.255.128.0 32 K 128 C
FF.FF.C0.00 /18 255.255.192.0 16 K 64 C
FF.FF.E0.00 /19 255.255.224.0 8 K 32 C
FF.FF.F0.00 /20 255.255.240.0 4 K 16 C
FF.FF.F8.00 /21 255.255.248.0 2 K 8 C
FF.FF.FC.00 /22 255.255.252.0 1 K 4 C
FF.FF.FE.00 /23 255.255.254.0 512 2 C
FF.FF.FF.00 /24 255.255.255.0 256 1 C
FF.FF.FF.80 /25 255.255.255.128 128 1/2 C
FF.FF.FF.C0 /26 255.255.255.192 64 1/4 C
FF.FF.FF.E0 /27 255.255.255.224 32 1/8 C
FF.FF.FF.F0 /28 255.255.255.240 16 1/16 C
FF.FF.FF.F8 /29 255.255.255.248 8 1/32 C
FF.FF.FF.FC /30 255.255.255.252 4 1/64 C
FF.FF.FF.FE /31 255.255.255.254 2 1/128 C
FF.FF.FF.FF /32 255.255.255.255 This is a single host route