/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Sendmail - kun modtage post fra en specifi~
Fra : Dennis


Dato : 27-11-03 12:32

Jeg har opsat en Sendmail til at være SMTP server for både ind- og udgående
post. Den virker såmen fint og for at reducere spam, får vi scannet posten
af en "antispam leverandør". Dét virker også helt godt men jeg ville gerne
kunne opsætte min Sendmail til kun at modtage post fra den antispam
leverandør? Der er to servere det kan leveres fra - er der nogen der ved
hvordan man gør dét?

Vi har flere domæner der skal modtage post og har kun antispam på to af
domænerne, så det er kun disse to reglen skal gælde - de resterende skal
bare modtage fra hele internettet som normalt.

Lidt pseudo:
Fra internettet --> antispam domæne = REJECT
Fra antispam leverandør --> antispam domæne = RELAY
Fra internettet --> andre domæner = RELAY

Jeg har styr på den anden vej (fra vores ende og til internettet/antispam
leverandør) - bruger smarttable til dét.

Dennis



 
 
Ole Michaelsen (27-11-2003)
Kommentar
Fra : Ole Michaelsen


Dato : 27-11-03 14:24

Dennis wrote:
> Jeg har opsat en Sendmail til at være SMTP server for både ind- og udgående
> post. Den virker såmen fint og for at reducere spam, får vi scannet posten
> af en "antispam leverandør". Dét virker også helt godt men jeg ville gerne
> kunne opsætte min Sendmail til kun at modtage post fra den antispam
> leverandør? Der er to servere det kan leveres fra - er der nogen der ved
> hvordan man gør dét?

Hvis du bruger FEATURE(delay_checks) og (blacklist_recipients) kan du
have

Connect:antispamleverandoer   RELAY (eller muligvis blot OK)

soerger for at din antispamleverandoer kan relaye.


To: andet domaene      RELAY

soerger for email til dit andet domane ogsaa kan relayes

Email fra internettet til dit antispamdomaene kan ikke relayes, da det
hverken matcher Connect eller To-linjen.

Din antispamleverandoer kan sende til alle domaener (ogsaa dem ikke
hostet hos dig)

Enhver kan sende til de domaener du prefixer med To: - dine andre
domaener.

For at teste kan du goere foelgende (naar sendmail.cf og dit access map
er genbygget):

/usr/lib/sendmail -bt -d21.4

..D{client_addr}ip-paa-antispam-leverandoer
..D{client_name}host-name-paa-antispam-leverandoer
..Dfuser@example.com
check_rcpt <usera@antispamdomaene>

burde komme igennem.

..D{client_addr}ip-paa-mail.yahoo.com
..D{client_name}mail.yahoo.com
..Dfuser@yahoo.com
check_rcpt <usera@antispamdomaene>

burde ikke komme igennem.


..D{client_addr}ip-paa-mail.yahoo.com
..D{client_name}mail.yahoo.com
..Dfuser@yahoo.com
check_rcpt <usera@dit-alm-domaene>

burde komme igennem.

Haaber det hjaelper...


--
Ole Michaelsen, Darmstadt, Germany
http://www.fys.ku.dk/~omic

Dennis (27-11-2003)
Kommentar
Fra : Dennis


Dato : 27-11-03 16:46

> Hvis du bruger FEATURE(delay_checks) og (blacklist_recipients) kan du
> have

Det gjorde jeg ikke - har nu indsat:

FEATURE(`delay_checks')dnl
FEATURE(`blacklist_recipients')dnl

i config.mc

> /usr/lib/sendmail -bt -d21.4
>
> .D{client_addr}ip-paa-antispam-leverandoer
> .D{client_name}host-name-paa-antispam-leverandoer
> .Dfuser@example.com
> check_rcpt <usera@antispamdomaene>
> burde komme igennem.
>
> .D{client_addr}ip-paa-mail.yahoo.com
> .D{client_name}mail.yahoo.com
> .Dfuser@yahoo.com
> check_rcpt <usera@antispamdomaene>
> burde ikke komme igennem.

> .D{client_addr}ip-paa-mail.yahoo.com
> .D{client_name}mail.yahoo.com
> .Dfuser@yahoo.com
> check_rcpt <usera@dit-alm-domaene>
> burde komme igennem.

Jeg synes jeg får relayet alt stadigtvæk? Nedenstående er ved den som ikke
burde komme igennem:

Basic_check_rela returns: OKSOFAR
rewritten as: OKSOFAR
checkrelay returns: OKSOFAR
rewritten as: < ? > user < @ antispamdomain . xxx > $| OKSOFAR
rewritten as: < ? > user < @ antispamdomain . xxx >
check_rcpt returns: < ? > user < @ antispamdomain . xxx >

Jeg har selvfølgelig oprettet access.db filen og genstartet Sendmail. Nogen
gode bud (jeg er gået tilbage til det oprindelige).

Dennis



Dennis (27-11-2003)
Kommentar
Fra : Dennis


Dato : 27-11-03 16:51

> FEATURE(`delay_checks')dnl
> FEATURE(`blacklist_recipients')dnl
> i config.mc

Jeg har forøvrigt dette i min access fil:

#CONNECT:antispamleverandør.xxx RELAY

#TO:otherdomain.xxx RELAY
#TO:other2domain.xxx RELAY
#TO:blaaadomain.xxx RELAY

Det burde vel være rigtigt? Som jeg har forstået det, så vil Sendmail som
default afvise alt post, med mindre der står en regel i accexx filen -
korrekt?
Men kan det passe, at de afviste mails ikke kommer i maillog filen? Jeg vil
jo gerne kunne se, hvilken post der bliver afvist.

Dennis



Ole Michaelsen (29-11-2003)
Kommentar
Fra : Ole Michaelsen


Dato : 29-11-03 16:13

Dennis wrote:
> > FEATURE(`delay_checks')dnl
> > FEATURE(`blacklist_recipients')dnl
> > i config.mc
>
> Jeg har forøvrigt dette i min access fil:
>
> #CONNECT:antispamleverandør.xxx RELAY
>
> #TO:otherdomain.xxx RELAY
> #TO:other2domain.xxx RELAY
> #TO:blaaadomain.xxx RELAY
>
> Det burde vel være rigtigt? Som jeg har forstået det, så vil Sendmail som
> default afvise alt post, med mindre der står en regel i accexx filen -
> korrekt?

Afhaenger lidt af hvordan sendmail i oevrigt er konfigureret - men som
hovedregel: ja.

Jeg har lige proevet selv - og det virker.

Sendmail.mc:

divert(-1)
#
#
# cd /usr/lib/mail/m4
# /usr/ccs/bin/m4 cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# cd /etc/mail
#
divert(0)
VERSIONID(`$Id: generic-solaris2.mc$')dnl
OSTYPE(`solaris8')dnl
DOMAIN(`generic')dnl
define(`confCF_VERSION', `Internal-v3.2')dnl
define(`confLOG_LEVEL', `13')dnl
define(`SMART_HOST', `smtp:mailhub')dnl
define(`confSINGLE_LINE_FROM_HEADER', `true')dnl
define(`QUEUE_DIR', `/var/spool/mqueue/q*')dnl
define(`confPRIVACY_FLAGS', `nobodyreturn,goaway,authwarnings')dnl
define(`LUSER_RELAY', `mailhub2')dnl
define(`confMAX_MESSAGE_SIZE', `50000000')dnl
define(`confFORWARD_PATH', `/var/mail/$u-forward')dnl
define(`LOCAL_MAILER_MAX', `100000000')dnl
define(`confDONT_BLAME_SENDMAIL', `forwardfileinunsafedirpathsafe,forwardfileinunsafedirpath')dnl
FEATURE(`smrsh', `/usr/lib/smrsh')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`redirect')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`no_default_msa')dnl
FEATURE(`access_db', `btree -T<TMPF> /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`delay_checks', `friend')dnl
MAILER(local)dnl
MAILER(smtp)dnl

# pwd
/etc/mail
# ls -al
total 1732
drwxr-xr-x 2 root mail 2560 Nov 29 14:59 .
drwxr-xr-x 27 root sys 3072 Nov 29 14:07 ..
-rw-r--r-- 1 root root 82 Nov 29 15:01 access
-rw-r----- 1 root other 16384 Nov 29 15:01 access.db
-rw-r--r-- 1 root root 23 Nov 29 14:59 aliases
-rw-r----- 1 root smmsp 24576 Nov 29 15:01 aliases.db
-r--r--r-- 1 bin bin 5588 Mar 31 2003 helpfile
-rw-r--r-- 1 root other 0 Nov 29 14:59 local-host-names
-rwxr-xr-x 1 root root 80 Nov 29 15:00 maps
-rw-r--r-- 1 root other 0 Mar 31 2003 relay-domains
-r-sr-xr-x 1 root mail 713304 Feb 23 1999 sendmail
-rw-r--r-- 1 root other 57105 Nov 29 14:59 sendmail.cf
-rw-r--r-- 1 root other 1172 Nov 29 14:59 sendmail.mc
-rw-r--r-- 1 root other 628 Nov 25 16:16 statistics
-rw-r--r-- 1 root root 39013 Oct 23 09:32 submit.cf
-rw-r--r-- 1 root other 803 Mar 31 2003 submit.mc
#

Dvs jeg har intet i local-host-names eller i relay-domains. Det eneste
jeg har er access-filen:

# cat access
To:fys.ku.dk RELAY
Connect:cs71.esoc.esa.int RELAY
#

hvor de tre To-domaener er almindelige domaener jeg hoster (okay, det
goer jeg ikke, men det antager jeg), og cs71 er min antispam-maskine som
har lov til at sende til alle mine domaener, inklusive det hemmelige
antispam-domaene...

Dernaest:

bash-2.03# /usr/lib/sendmail -bt -d21.4
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> .D{client_addr}131.176.85.87
> .D{client_name}cs71.esoc.esa.int
> .Dfuser@example.com
> check_rcpt <ole@whitehouse.gov>

Hvor whitehouse.gov er det hemmelige antispam-domaene

[...]

Basic_check_rela returns: RELAY
rewritten as: RELAY
checkrelay returns: RELAY
rewritten as: ole < @ whitehouse . gov > $| RELAY
rewritten as: ole < @ whitehouse . gov >
check_rcpt returns: ole < @ whitehouse . gov >
>

Saa den er ok.

> .D{client_addr}130.225.96.4
> .D{client_name}info.diku.dk
> .Dfuser@yahoo.com
> check_rcpt <ole@whitehouse.gov>

[...]
sic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
rewritten as: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
checkrcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
rewritten as: < ole @ whitehouse . gov > $| $# error $@ 5 . 7 . 1 $:
"550 Relaying denied"
rewritten as: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
>

Den stoppes. info.diku.dk (en tilfaeldig host paa Internet) maa ikke
relaye for ole@whitehouse.gov.

Men til ole@fys.ku.dk maa den godt:

> check_rcpt <ole@fys.ku.dk>

[...]


Basic_check_rela returns: OK
rewritten as: OK
checkrelay returns: OK
rewritten as: ole < @ fys . ku . dk > $| OK
rewritten as: ole < @ fys . ku . dk >
check_rcpt returns: ole < @ fys . ku . dk >
>

Saa det virker for mig.

Eneste ulempe jeg kan se er at den host du tillader at relaye vha
Connect: linjen, maa relaye alle steder hen.


> Men kan det passe, at de afviste mails ikke kommer i maillog filen? Jeg vil
> jo gerne kunne se, hvilken post der bliver afvist.

Hvis du logger tilstraekkeligt meget, goer de...


--
Ole Michaelsen, Darmstadt, Germany
http://www.fys.ku.dk/~omic

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste