Tom Kistner <[EMAIL PROTECTED]> said, in message [EMAIL PROTECTED]: > Alun wrote: > > > returns the address of the interface the request came in on, but > > that's different from the address that was being contacted. > > You need to patch Exim to do this. If you use the netfilter (aka > iptables) REDIRECT target, the original destination address can be > fetched from the socket using getsockopt(...SO_ORIGINAL_DST...).
Yes, that's the one. I was wondering because the perl gets called in a context in which a couple of file descriptors are open and connected to sockets. Assuming that one of these is connected to the other end and that I knew which one it was I could just call the getsockopt() from perl and get what I wanted. > This needs to be done inside Exim. If you want to reject anything > anyway you could just hack up a small SMTP responder instead. You can > also use Perl for that, IO::Socket seems to have a getsockopt method. Indeed. That (the latter) was the original plan, but then I thought of ACLs and all the handy stuff that exim puts in variables for me and it seemed more flexible to use exim with a pretty simple config than to write custom code for each check. Especially since the box already needs some variant of sendmail installed for forwarding local cron output. I already want to 4xx anything that's coming in for a valid aber.ac.uk address, 5xx anything that's for an aber.ac.uk address that's not valid, and 5xx, tarpit and blacklist any IP that's trying to relay or portscan. If I decided to add in load management, reverse lookups, DNSBLs etc to check addresses before they were added to my blacklist and so on I'd end up with a fairly complicated SMTP responder which reimplemented quite a lot of stuff that exim already has. I think I'll have a quick play with parsing netstat -an --tcp for $sender_host_address:$sender_host_port to find who the other end is trying to talk to. This should be close enough to unique for my purposes. Thanks for the response, Alun. -- Alun Jones [EMAIL PROTECTED] Systems Support, (01970) 62 2494 Information Services, University of Wales, Aberystwyth -- ## List details at http://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
