mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-23 00:43:28 +00:00
- new option SENDMAIL_WITH_CONNECTION_RATE
taken from: http://j-chkmail.ensmp.fr/sm/
This commit is contained in:
parent
22af50109c
commit
07f037cbeb
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=105366
@ -13,6 +13,11 @@ MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/ \
|
||||
PKGNAMESUFFIX?= ${TLS_SUFFIX}${SASL_SUFFIX}${LDAP_SUFFIX}${PKGNAMESUFFIX2}
|
||||
DISTNAME= ${PORTNAME}.${PORTVERSION}
|
||||
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
PATCH_SITES= http://j-chkmail.ensmp.fr/sm/
|
||||
PATCHFILES= ratectrl.src-v2.patch ratectrl.cf.patch
|
||||
.endif
|
||||
|
||||
MAINTAINER= dinoex@FreeBSD.org
|
||||
COMMENT= Reliable, highly configurable mail transfer agent with utilities
|
||||
|
||||
@ -46,6 +51,7 @@ PKGMESSAGE= ${WRKSRC}/pkg-message
|
||||
# SENDMAIL_WITH_LDAP=yes
|
||||
# SENDMAIL_WITH_SOCKETMAP=yes
|
||||
# SENDMAIL_WITH_PICKY_HELO_CHECK=yes
|
||||
# SENDMAIL_WITH_CONNECTION_RATE=yes
|
||||
|
||||
.if defined(SENDMAIL_WITH_SMTPS)
|
||||
.if !defined(SENDMAIL_WITH_TLS) && !defined(WITH_TLS)
|
||||
@ -179,6 +185,11 @@ do-configure:
|
||||
'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DPICKY_HELO_CHECK'\'')' \
|
||||
>> ${WCONF}/site.config.m4
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
${ECHO_CMD} \
|
||||
'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-D_FFR_CONNECTION_RATE_CONTROL'\'') \
|
||||
>> ${WCONF}/site.config.m4
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITHOUT_SHMEM)
|
||||
${ECHO_CMD} \
|
||||
'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SHM=0'\'')' \
|
||||
@ -209,6 +220,9 @@ pre-install:
|
||||
@${ECHO_CMD} `${BASENAME} ${i}` | \
|
||||
${AWK} '{print "%%DOCSDIR%%/" $$1}' >>${PLIST}
|
||||
.endfor
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
@${ECHO_CMD} "share/doc/sendmail/CONNECTION_RATE_CONTROL" >>${PLIST}
|
||||
.endif
|
||||
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
|
||||
.endif
|
||||
|
||||
@ -264,6 +278,10 @@ post-install:
|
||||
@${TAR} -C ${WRKSRC}/libmilter/docs -cf - . | \
|
||||
${TAR} -C ${DOCSDIR}/libmilter -xf -
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
${INSTALL_DATA} ${FILESDIR}/CONNECTION_RATE_CONTROL \
|
||||
${DOCSDIR}/CONNECTION_RATE_CONTROL
|
||||
.endif
|
||||
.endif
|
||||
.if exists(${DESTDIR}/etc/mail/mailer.conf)
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
@ -1,2 +1,6 @@
|
||||
MD5 (sendmail.8.12.11.tar.gz) = fafda7f8043f0c34b9aa295618aa598c
|
||||
SIZE (sendmail.8.12.11.tar.gz) = 1899112
|
||||
MD5 (ratectrl.src-v2.patch) = 19fdd5cf759ef693f8f721bcc1b85740
|
||||
SIZE (ratectrl.src-v2.patch) = 19321
|
||||
MD5 (ratectrl.cf.patch) = 5d88ba0fd3416ded5c908983308fa73a
|
||||
SIZE (ratectrl.cf.patch) = 1722
|
||||
|
167
mail/sendmail/files/CONNECTION_RATE_CONTROL
Normal file
167
mail/sendmail/files/CONNECTION_RATE_CONTROL
Normal file
@ -0,0 +1,167 @@
|
||||
|
||||
CONNECTION RATE CONTROL FOR SENDMAIL
|
||||
------------------------------------
|
||||
|
||||
This patch adds connection rate control feature to sendmail.
|
||||
|
||||
This means :
|
||||
|
||||
- sendmail counts on a sliding window the number of connections
|
||||
for each smtp client, and if it exceeds maximum configured
|
||||
value, connection is refused with a TEMPFAIL result.
|
||||
|
||||
- you may surely want to exclude some hosts/networks from this
|
||||
control (local networks, trusted networks, ...). You may
|
||||
indicate the list of trusted servers (by ip address) at
|
||||
some configuration file.
|
||||
|
||||
This file Table of Contents :
|
||||
|
||||
1. Remarks
|
||||
2. Changes and History
|
||||
3. Getting the stuff
|
||||
4. Stuff Contents
|
||||
5. Installing
|
||||
|
||||
******************************************************************
|
||||
|
||||
REMARKS :
|
||||
---------
|
||||
|
||||
* This feature will be integrated into sendmail in a future version.
|
||||
|
||||
* This feature is experimental. Some details on the way it works
|
||||
or its interface may change in the future.
|
||||
|
||||
* The contents of this stuff is valid for sendmail 8.12.9
|
||||
|
||||
All feedback, comments and questions about this stuff are welcome :
|
||||
Jose-Marcio.Martins@ensmp.fr (the maintainer)
|
||||
with CC to
|
||||
sendmail@sendmail.org
|
||||
|
||||
CHANGES AND HISTORY :
|
||||
---------------------
|
||||
|
||||
2003/06/11 - Jose Marcio Martins da Cruz - First Release
|
||||
|
||||
2003/07/03 - Jose Marcio Martins da Cruz
|
||||
Two macros were defined :
|
||||
- {client_rate} : connection rate of the client
|
||||
- {server_rate} : connection rate of the server
|
||||
|
||||
GETTING THE STUFF :
|
||||
-------------------
|
||||
|
||||
You can download all you need at :
|
||||
|
||||
http://j-chkmail.ensmp.fr/sm
|
||||
|
||||
You need the two patches you'll find there.
|
||||
|
||||
STUFF CONTENTS :
|
||||
----------------
|
||||
|
||||
This stuff contains two patches :
|
||||
|
||||
- ratectrl.src.patch : this patch shall be used to modify
|
||||
/PATH_TO_SRC/sendmail-8.12.9/sendmail - sendmail C source
|
||||
files
|
||||
|
||||
- ratectrl.cf.patch : this patch shall be used to modify
|
||||
/PATH_TO_SRC/sendmail-8.12.9/cf - m4 configuration kit
|
||||
for sendmail
|
||||
|
||||
- rate.mc : this is an example of configuration file to be
|
||||
used with this stuff, if you want to do connection rate
|
||||
control with rulesets. To use it, you shall define the
|
||||
variable :
|
||||
D{RuleRateMaxClient}5
|
||||
This contribution comes from Stephane Lentz
|
||||
Stephane.Lentz@ansf.alcatel.fr
|
||||
|
||||
|
||||
INSTALLING :
|
||||
------------
|
||||
|
||||
1. Copy the patches :
|
||||
|
||||
cd /PATH_TO/sendmail-8.12.9
|
||||
cp /elsewhere/ratectrl.src.patch .
|
||||
cp /elsewhere/ratectrl.cf.patch .
|
||||
|
||||
2. Eventually save original source code :
|
||||
|
||||
cp -pr sendmail sendmail.org
|
||||
cp -pr cf cf.org
|
||||
|
||||
3. Apply the patches
|
||||
|
||||
cd sendmail
|
||||
patch < ../ratectrl.src.patch
|
||||
cd ../cf
|
||||
patch < ../ratectrl.cf.patch
|
||||
|
||||
4. Inform sendmail Build system that you want to use this stuff
|
||||
|
||||
Add the following line to the file devtools/Site/site.config.m4 :
|
||||
|
||||
APPENDDEF(`confENVDEF',`-D_FFR_CONNECTION_RATE_CONTROL')
|
||||
|
||||
5. Rebuild sendmail and install
|
||||
|
||||
cd /PATH_TO/sendmail-8.12.9
|
||||
./Build -c
|
||||
su
|
||||
./Build install
|
||||
|
||||
6. Modify your configuration file (sendmail.mc for your site)
|
||||
|
||||
You may add the following lines :
|
||||
|
||||
FEATURE(rate_control)
|
||||
|
||||
This will create the following lines at your sendmail.cf file :
|
||||
|
||||
-----
|
||||
|
||||
O CheckConnectionRate=True
|
||||
|
||||
F{rate_exclude} -o /etc/mail/rate-control-exclude
|
||||
|
||||
# maximum server connection rate (connections / minute)
|
||||
#O MaxConnectionRate=600
|
||||
|
||||
# maximum connection rate per client (connections / minute)
|
||||
#O MaxClientConnectionRate=5
|
||||
|
||||
# Width of the window
|
||||
#O ConnectionRateWindowSize=60
|
||||
|
||||
----
|
||||
|
||||
Configuration parameters you may define at your mc file
|
||||
|
||||
confRATE_EXCLUDE_FILE The name of the file defining class {rate_exclude}.
|
||||
Access to the server will be granted to IP hosts
|
||||
networks matching this class without connection
|
||||
rate control.
|
||||
Default Value : /etc/mail/rate-control-exclude
|
||||
|
||||
confMAX_CLIENT_CONNECTION_RATE : Maximum connections per minute allowed
|
||||
for hosts/networks not matching {rate_exclude}
|
||||
class.
|
||||
Default Value : 5 connections / minute.
|
||||
|
||||
confMAX_CONNECTION_RATE : Maximum connections per minute for the server.
|
||||
Default Value : 600 connections / minute.
|
||||
|
||||
confCONNECTION_RATE_WINDOW_SIZE : Width of the measuring sliding window.
|
||||
The value used to do rate control is the mean
|
||||
of the number of connections inside this window.
|
||||
Default Value : 60 (1 minute)
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -13,6 +13,11 @@ MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/ \
|
||||
PKGNAMESUFFIX?= ${TLS_SUFFIX}${SASL_SUFFIX}${LDAP_SUFFIX}${PKGNAMESUFFIX2}
|
||||
DISTNAME= ${PORTNAME}.${PORTVERSION}
|
||||
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
PATCH_SITES= http://j-chkmail.ensmp.fr/sm/
|
||||
PATCHFILES= ratectrl.src-v2.patch ratectrl.cf.patch
|
||||
.endif
|
||||
|
||||
MAINTAINER= dinoex@FreeBSD.org
|
||||
COMMENT= Reliable, highly configurable mail transfer agent with utilities
|
||||
|
||||
@ -46,6 +51,7 @@ PKGMESSAGE= ${WRKSRC}/pkg-message
|
||||
# SENDMAIL_WITH_LDAP=yes
|
||||
# SENDMAIL_WITH_SOCKETMAP=yes
|
||||
# SENDMAIL_WITH_PICKY_HELO_CHECK=yes
|
||||
# SENDMAIL_WITH_CONNECTION_RATE=yes
|
||||
|
||||
.if defined(SENDMAIL_WITH_SMTPS)
|
||||
.if !defined(SENDMAIL_WITH_TLS) && !defined(WITH_TLS)
|
||||
@ -179,6 +185,11 @@ do-configure:
|
||||
'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DPICKY_HELO_CHECK'\'')' \
|
||||
>> ${WCONF}/site.config.m4
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
${ECHO_CMD} \
|
||||
'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-D_FFR_CONNECTION_RATE_CONTROL'\'') \
|
||||
>> ${WCONF}/site.config.m4
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITHOUT_SHMEM)
|
||||
${ECHO_CMD} \
|
||||
'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SHM=0'\'')' \
|
||||
@ -209,6 +220,9 @@ pre-install:
|
||||
@${ECHO_CMD} `${BASENAME} ${i}` | \
|
||||
${AWK} '{print "%%DOCSDIR%%/" $$1}' >>${PLIST}
|
||||
.endfor
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
@${ECHO_CMD} "share/doc/sendmail/CONNECTION_RATE_CONTROL" >>${PLIST}
|
||||
.endif
|
||||
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
|
||||
.endif
|
||||
|
||||
@ -264,6 +278,10 @@ post-install:
|
||||
@${TAR} -C ${WRKSRC}/libmilter/docs -cf - . | \
|
||||
${TAR} -C ${DOCSDIR}/libmilter -xf -
|
||||
.endif
|
||||
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
|
||||
${INSTALL_DATA} ${FILESDIR}/CONNECTION_RATE_CONTROL \
|
||||
${DOCSDIR}/CONNECTION_RATE_CONTROL
|
||||
.endif
|
||||
.endif
|
||||
.if exists(${DESTDIR}/etc/mail/mailer.conf)
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
@ -1,2 +1,6 @@
|
||||
MD5 (sendmail.8.12.11.tar.gz) = fafda7f8043f0c34b9aa295618aa598c
|
||||
SIZE (sendmail.8.12.11.tar.gz) = 1899112
|
||||
MD5 (ratectrl.src-v2.patch) = 19fdd5cf759ef693f8f721bcc1b85740
|
||||
SIZE (ratectrl.src-v2.patch) = 19321
|
||||
MD5 (ratectrl.cf.patch) = 5d88ba0fd3416ded5c908983308fa73a
|
||||
SIZE (ratectrl.cf.patch) = 1722
|
||||
|
167
mail/sendmail812/files/CONNECTION_RATE_CONTROL
Normal file
167
mail/sendmail812/files/CONNECTION_RATE_CONTROL
Normal file
@ -0,0 +1,167 @@
|
||||
|
||||
CONNECTION RATE CONTROL FOR SENDMAIL
|
||||
------------------------------------
|
||||
|
||||
This patch adds connection rate control feature to sendmail.
|
||||
|
||||
This means :
|
||||
|
||||
- sendmail counts on a sliding window the number of connections
|
||||
for each smtp client, and if it exceeds maximum configured
|
||||
value, connection is refused with a TEMPFAIL result.
|
||||
|
||||
- you may surely want to exclude some hosts/networks from this
|
||||
control (local networks, trusted networks, ...). You may
|
||||
indicate the list of trusted servers (by ip address) at
|
||||
some configuration file.
|
||||
|
||||
This file Table of Contents :
|
||||
|
||||
1. Remarks
|
||||
2. Changes and History
|
||||
3. Getting the stuff
|
||||
4. Stuff Contents
|
||||
5. Installing
|
||||
|
||||
******************************************************************
|
||||
|
||||
REMARKS :
|
||||
---------
|
||||
|
||||
* This feature will be integrated into sendmail in a future version.
|
||||
|
||||
* This feature is experimental. Some details on the way it works
|
||||
or its interface may change in the future.
|
||||
|
||||
* The contents of this stuff is valid for sendmail 8.12.9
|
||||
|
||||
All feedback, comments and questions about this stuff are welcome :
|
||||
Jose-Marcio.Martins@ensmp.fr (the maintainer)
|
||||
with CC to
|
||||
sendmail@sendmail.org
|
||||
|
||||
CHANGES AND HISTORY :
|
||||
---------------------
|
||||
|
||||
2003/06/11 - Jose Marcio Martins da Cruz - First Release
|
||||
|
||||
2003/07/03 - Jose Marcio Martins da Cruz
|
||||
Two macros were defined :
|
||||
- {client_rate} : connection rate of the client
|
||||
- {server_rate} : connection rate of the server
|
||||
|
||||
GETTING THE STUFF :
|
||||
-------------------
|
||||
|
||||
You can download all you need at :
|
||||
|
||||
http://j-chkmail.ensmp.fr/sm
|
||||
|
||||
You need the two patches you'll find there.
|
||||
|
||||
STUFF CONTENTS :
|
||||
----------------
|
||||
|
||||
This stuff contains two patches :
|
||||
|
||||
- ratectrl.src.patch : this patch shall be used to modify
|
||||
/PATH_TO_SRC/sendmail-8.12.9/sendmail - sendmail C source
|
||||
files
|
||||
|
||||
- ratectrl.cf.patch : this patch shall be used to modify
|
||||
/PATH_TO_SRC/sendmail-8.12.9/cf - m4 configuration kit
|
||||
for sendmail
|
||||
|
||||
- rate.mc : this is an example of configuration file to be
|
||||
used with this stuff, if you want to do connection rate
|
||||
control with rulesets. To use it, you shall define the
|
||||
variable :
|
||||
D{RuleRateMaxClient}5
|
||||
This contribution comes from Stephane Lentz
|
||||
Stephane.Lentz@ansf.alcatel.fr
|
||||
|
||||
|
||||
INSTALLING :
|
||||
------------
|
||||
|
||||
1. Copy the patches :
|
||||
|
||||
cd /PATH_TO/sendmail-8.12.9
|
||||
cp /elsewhere/ratectrl.src.patch .
|
||||
cp /elsewhere/ratectrl.cf.patch .
|
||||
|
||||
2. Eventually save original source code :
|
||||
|
||||
cp -pr sendmail sendmail.org
|
||||
cp -pr cf cf.org
|
||||
|
||||
3. Apply the patches
|
||||
|
||||
cd sendmail
|
||||
patch < ../ratectrl.src.patch
|
||||
cd ../cf
|
||||
patch < ../ratectrl.cf.patch
|
||||
|
||||
4. Inform sendmail Build system that you want to use this stuff
|
||||
|
||||
Add the following line to the file devtools/Site/site.config.m4 :
|
||||
|
||||
APPENDDEF(`confENVDEF',`-D_FFR_CONNECTION_RATE_CONTROL')
|
||||
|
||||
5. Rebuild sendmail and install
|
||||
|
||||
cd /PATH_TO/sendmail-8.12.9
|
||||
./Build -c
|
||||
su
|
||||
./Build install
|
||||
|
||||
6. Modify your configuration file (sendmail.mc for your site)
|
||||
|
||||
You may add the following lines :
|
||||
|
||||
FEATURE(rate_control)
|
||||
|
||||
This will create the following lines at your sendmail.cf file :
|
||||
|
||||
-----
|
||||
|
||||
O CheckConnectionRate=True
|
||||
|
||||
F{rate_exclude} -o /etc/mail/rate-control-exclude
|
||||
|
||||
# maximum server connection rate (connections / minute)
|
||||
#O MaxConnectionRate=600
|
||||
|
||||
# maximum connection rate per client (connections / minute)
|
||||
#O MaxClientConnectionRate=5
|
||||
|
||||
# Width of the window
|
||||
#O ConnectionRateWindowSize=60
|
||||
|
||||
----
|
||||
|
||||
Configuration parameters you may define at your mc file
|
||||
|
||||
confRATE_EXCLUDE_FILE The name of the file defining class {rate_exclude}.
|
||||
Access to the server will be granted to IP hosts
|
||||
networks matching this class without connection
|
||||
rate control.
|
||||
Default Value : /etc/mail/rate-control-exclude
|
||||
|
||||
confMAX_CLIENT_CONNECTION_RATE : Maximum connections per minute allowed
|
||||
for hosts/networks not matching {rate_exclude}
|
||||
class.
|
||||
Default Value : 5 connections / minute.
|
||||
|
||||
confMAX_CONNECTION_RATE : Maximum connections per minute for the server.
|
||||
Default Value : 600 connections / minute.
|
||||
|
||||
confCONNECTION_RATE_WINDOW_SIZE : Width of the measuring sliding window.
|
||||
The value used to do rate control is the mean
|
||||
of the number of connections inside this window.
|
||||
Default Value : 60 (1 minute)
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user