Marc Perkel wrote:


DAve wrote:

Marc Perkel wrote:



Matt Kettler wrote:

Marc Perkel wrote:
Theo Van Dinter wrote:
On Thu, Feb 16, 2006 at 05:36:32PM -0800, Marc Perkel wrote:
Why is spamd deciding what IP addresses are unauthorized when I told it to listen on all ports.


Just because it's listening on a port doesn't mean the client is allowed to connect. You want to look at -A which is the listing of allowed client IPs.


Yes - that's it. Thanks.

So - why two different settings?



Because they control two totally different things.

-i controls which interfaces of the SERVER that spamd will listen for connections n.

-A controls which CLIENTS it will accept connections from.

Say I have 3 webservers, 3 mailservers, and 1 backend spamd server in a DMZ subnet. I want the mailservers to connect to the backend spamd, but there's no
reason to allow the webservers to do so.

In fact, if the webservers are are running a lot of scripts that might get exploited, it's probably better that I not allow them to connect to spamd. If someone found a way of exploiting spamd over the network, they could leapfrog
from the webserver to the spamd server.

Admittedly -A is a bit redundant with iptables, you could achieve the same effect with any firewall on the spamd server. However, this way it is defaulting to accepting connections from nobody, just to force you to think about what
machines you should accept connections from.



If I may suggest - it is a very confusing configuration because I don't see why you would configure these two things to different vaules. However, you should at least donument it better so that the -i and -A sections refer to each other. You can surely see why if someone did -i then they would not be looking for another switch that does almost the same thing.

I recomment changint it so that both switches do the same thing.


But they don't do the same thing. For example, I have one spamd server, and three mail toasters. I use both the -i and the -A switch. My spamd server is at 10.0.240.253 and my toasters are lumped in with everything else at 10.0.240.50-200. (all my servers have two faces, a 100mb public interface and a 1gb private interface)

I run spamd like so,

#!/sbin/sh

PATH=/usr/bin:/usr/local/bin

exec /usr/local/bin/softlimit -a 128000000 \
        /usr/local/bin/spamd -i 10.0.240.253 \
    -p 1783 \
    -A 10.0.240.134, \
    10.0.240.135, \
    10.0.240.136 \
        -m 25 \
    --max-conn-per-child=500 \
    -u vpopmail -x -q -s stderr 2>&1

-i tells spamd to listen only on the 10.0.240.253 interface, ignore the 10.0.241.xxx interface, that one is public.

-A tells spamd to only accept connectione from 10.0.240.134-136, my toasters. Do *NOT* accept connections from my Frontpage server, my webservers, my shared hosting box, my MSSQL box, etc.

The two switches do very different things.

DAve

Well then the DOCS should be changed so that the docs for -i and -A at least refer to each other.



They don't have to refer to each other. One switch tells where spamd should listen for connections, the other tells spamd what connections to listen for. You can use one, the other, both, or neither as you require.

DAve


http://spamassassin.apache.org/full/3.1.x/dist/doc/spamd.html

-i [ipaddress], --listen-ip[=ipaddress], --ip-address[=ipaddress]
Tells spamd to listen on the specified IP address (defaults to 127.0.0.1). If you specify no IP address after the switch, spamd will listen on all interfaces. (This is equal to the address 0.0.0.0). You can also use a valid hostname which will make spamd listen on the first address that name resolves to.

-A host,..., --allowed-ips=host,...
Specify a list of authorized hosts or networks which can connect to this spamd instance. Single IP addresses can be given, ranges of IP addresses in address/masklength CIDR format, or ranges of IP addresses by listing 3 or less octets with a trailing dot. Hostnames are not supported, only IP addresses. This option can be specified multiple times, or can take a list of addresses separated by commas. Examples:

    -A 10.11.12.13 -- only allow connections from 10.11.12.13.

-A 10.11.12.13,10.11.12.14 -- only allow connections from 10.11.12.13 and 10.11.12.14.

-A 10.200.300.0/24 -- allow connections from any machine in the range 10.200.300.*.

    -A 10. -- allow connections from any machine in the range 10.*.*.*.

    By default, connections are only accepted from localhost [127.0.0.1].

Reply via email to