Original English version: http://jth.net/virtual.html
GNU pop3d 0.10.3
GNU pop3d 0.10.3 er klar. Du kan laste det ned her GNU pop3d 0.10.3
ENDRINGER/HISTORIE
12/mai/2017 0.10.3 Jørgen Thomsen [email protected], http://jth.net/virtual.html
Nye funksjoner
------------
Deaktivering Status: header støtte (RFC 2076)
Lagt parameter s- til brukernavn (se README fil)
22/mars/2014 0.10.2 Jørgen Thomsen [email protected], http://jth.net/virtual.html
Nye funksjoner
------------
IPv6-støtte med konfigurasjon --disable - ipv6 og under kjøring --ipv6
POP3S støtte med --aktiver-POP3S
Vil installere arbeider konfigurasjon av xinetd bruke tunnel inkl. Prøven sertifikatet og nøkkelen
Forutsetning: xinetd og tunnel installert
Støtte for kryptert (ved C krypten) passord i virtuelle domener (ikke APOP da)
Daemon start støtte utvidet enable-service = SERVICE
nå bære konfigurasjon for sysvinit, init, event.d, systemd og enkeltbruker inetd, xinetd
(Sannsynligvis ikke perfekt :) Sjekk installasjonen)
Installasjon rot kan spesifiseres under konfigurasjon --enable-rootdir = DIR samt
av make install ROOT = DIR
avinstallere funksjonen lagt til
pop3client.pl program for enkel prøving og stresstesting av en POP3-server
mkpwd.pl for å lage og/eller kryptering av passord for virtuelle domener som er kompatible med glibc krypten ()
drepe -SIGUSR2 vil vise noen statusvariabler i syslog
Daemon: Displayet teller og PIDs av aktive barn, verdien av flagg bestemme oppsigelse, samt antall økter til nå.
Child: visningstiden som brukes og kommandoer for å opprettholde forbindelsen fra IP-adresse
Endringer
-------
extra.c/pop3_syslog kan logge til standardfeil (debug = 0x1yy).
Individuelle syslog prioriteringer holdt i pop3_syslog.
Mer logging via pop3_syslog.
Redusert bruk av bibliotekets rutiner pop3_syslog for bedre stabilitet.
Foreldet gethostbyname og gethostbyaddr erstattet av getaddrinfo og getnameinfo
inet_ntoa erstattet av inet_ntop
Et opphold på 1 sekund for å returnere BAD LOGIN for å avskrekke roboter som sjekker for svake passord.
Hjelpetekster ryddet opp og forbedret.
Forbedret installasjon script
- håndtering av ekstra daemon startsystemer
- konfigurasjon av POP3S ved hjelp av tunnel + xinetd
- spesifisering av installasjons rotkatalogen
- IPv6-støtte
- brannmur firewalld støttes
- avinstallere funksjonen
Vær så snill, oppmerksom på at testing av installasjon har bare blitt gjort på Linux Fedora 12, 15, 18, 20, så det kan ikke være perfekt i alle tilfeller.
Som GNU-pop3d er bare ett program uten nødvendige konfigurasjonsfiler kan manuelt legges i / usr / local / sbin / gnu-pop3d
og inngått oppstartsskriptet av systemtjenester
MD5 kode oppdatert (Gray Watson) å legge til støtte for stor/liten endian
Nyeste GNU config.guess og config.sub installert.
bugs fast
----------
Mer robust barnet management (opptatt server, DoS-angrep).
Siste endringer i krypten eller strcmp funksjoner tilsynelatende forårsaket en uendelig loop når du logger inn i visse tilfeller.
Logg inn med stjålet krypterte passord i virtuelle domener forhindret.
07/februar/2011 0.9.13 Jørgen Thomsen [email protected], http://jth.net
Syslog logging fra pop3_signal signal HANDLER rutinen forårsaket hengende prosesser, spesielt i løpet av DoS angrep eller
av mange samtidige klienter. Delvis fast (kan fortsatt oppstå ved bruk av denne biten (08) i debug maske)
Feilretting: visse påloggingsmetoder fungerte (David B. Cortarello)
De globale barne telleren child_procs endret fra int til 'flyktige sig_atomic_t' for å redusere muligheten for
det ikke blir oppdatert riktig.
Telleren var ikke alltid minsket slik at programmet brukes bare ett tilfelle, da max barn
prosesser ble feilaktig nådd.
Nyeste GNU config.guess og config.sub installert.
Makefile.in og configure.in forbedret og støtte for påvisning av Atom-prosessorer tilsatt og mer støtte for
tjeneste installasjon (/etc/init)
RFC katalog slettet som RFC er lett tilgjengelig på internett
26/Apr/2010 0.9.12 Jørgen Thomsen [email protected], http://jth.net
Mulig dobbelt fri for postboksnavnet variabel i spesielle feilsituasjoner for eksempel ved to samtidige pålogginger til
samme postboks.
config.guess og config.sub mangler fra distribusjons
Lagt til en start melding til syslog
18/Apr/2010 0.9.11 Jørgen Thomsen [email protected], http://jth.net
Programmet er opprettholdt på en Linux Fedora plattform uten testing tilgjengelig på andre plattformer, men
med et forsøk på å unngå Linux spesifikke funksjoner.
Forbedringer til configure skriptet inkludert 64 bit CPU støtte.
Den Nagle (TCP No Delay) algoritmen har blitt deaktivert forårsaker en stor forbedring i hastighet.
SO_REUSEADDR tilsatt til daemon-kontakt for umiddelbar gjenbruk av kontakten etter en ny start.
Signalhåndtering forbedret for å være mer flyttbar (sigaction) og usikre anrop er fjernet fra signalbehandleren. Avslutning
etter et signal skal nå være mye bedre å ikke forlate mailbox.lock filer rundt.
* Feil * sokken variabel i barnet var alltid -1 og ikke selve kontakten (sock2) så pop3_signal i et barn ikke lukke kontakten.
Fjernet sync () kaller som f.eks kopierer store filer til en USB-disk ville føre til en hang til alle data ble skrevet til disken (flere minutter)
Betinget kompilering av debugging uttalelser fjernet som overhead er så liten.
Den feilsøking parameter er blitt endret til en 2-hex-sifret bit mask (barn, nissen) og ytterligere
debugging uttalelser er satt inn.
MAXHOSTNAMELEN økt til 128 på grunn av Idna domenenavn
gnu-pop3d fil for /etc/event.d inkludert
mannen siden oppdateres
18/juli/2007 0.9.10 Jørgen Thomsen [email protected], http://jth.net
FCNTL lås på postkassen endret til å skrive lås
sync () alltid kalt ved opplåsing
lese data fra klient når timeout aktivert (velg) nå sjekker for ødelagte rør også forårsaker umiddelbar exit,
hvis klienten forsvinner plutselig.
Når postkasse ble kopiert til ny postkasse, kan noen MTAer (e, g, postfix) fortsette å skrive til den gamle postkassen.
Nå tomt gamle postboks holdes så mailbox.old og slått sammen med den nye hvis ikke tom på neste løp.
24/august/2003 0.9.9-5 Jørgen Thomsen [email protected], http://jth.net
Testen for topptekst var ikke strenge nok Status: og X-Status: anses lik (Jem Berkes)
Kommandolinjer ble ikke satt sammen til en linje som er mottatt som separate TCP-pakker (Nicolas Gregoire)
18/Jan/2003 0.9.9-4 Jørgen Thomsen [email protected], http://jth.net
Støtte for Postfix X-Original-To: header linje for Message Disposition Notification.
UIDL beregningen vil ikke lenger omfatte røntgen headerlines, da de kan legges til ved noen mailreaders.
'%' Er tillatt som skilletegn i stedet for @ i en virtuell brukernavn (e-postadresse)
Mindre interne endringer.
Ytterligere støtte for virtdomain.pl av forfatteren (hvordan finne postkassen)
18/oktober/2002 0.9.9-3 Jørgen Thomsen [email protected], http://jth.net/
Korrigert en feil når en dårlig postkasse ikke inneholder 'From' som første linje.
05/Sep/2002 0.9.9-2 Jørgen Thomsen [email protected], http://jth.net/
Reparasjonen for disk full hindret endrede postkasse som skal skrives til .new filen. Det ble beholdt uforandret
04/Sep/2002 0.9.9-1 Jørgen Thomsen [email protected], http://jth.net/
Hvis postkassen ikke avslutte med et linjeskift (hvis krasjet mens du skriver en melding inn i det)
en uendelig løkke var oppstått. Hvis postboksen er endret av GNU pop3d, vil det være løst.
Når disken ble full når du skriver den nye postkassen det ikke ble funnet og den nye postkassen ble avkortet
19/august/2002 0.9.9 Jørgen Thomsen [email protected], http://jth.net/
Kompatibilitet med vm-pop3d passwd filer introdusert (ikke testet)
Lagt elegante stopp ved å fange de signaler (SIGHUP og SIGTERM).
Den endelige innslag og versjonsnummeret endret til 0.9.9
19/oktober/2001 Jørgen Thomsen [email protected], http://jth.net/
Lagt Message Disposition Notification (kvittering, RFC 2298)
Lagt konfigurere alternativer for å unngå redigering config.h i de fleste tilfeller
Endret oppdatering av postkassen fra å kopiere i filen for å skape en ny fil (mailbox.new)
hvis nødvendig, og forbedret kopiering inne i filen. Dette forbedrer hastigheten veldig spesielt for webmail programmer.
Introdusert støtte for den klassiske Status: header linje RFC 2076 (understøttet av ekv Null Webmail
http://nullwebmail.sourceforge.net/)
17/oktober/2001 Jørgen Thomsen [email protected], http://jth.net/
Lagt en gammel lapp for bedre håndtering av barn behandler opprettelse og død.
Nå barn prosesser er opprettet etter behov og bare den overordnede prosessen er permanent.
VirtDomain 1,05
Det web GUI-grensesnitt er funksjonell for både standard Postfix virtuelle domener og mine smaks: j-te virtuelle domener. Den kommer som en enkelt Perl program, som noen kalles fra kommandolinjen for å skape en virtuell domene og fra webserveren til å administrere den. Krever nylige utgivelsen av Postfix VirtDomain 1,05
#!/usr/bin/perl-w
# ************************************************* *********************
#
# Utility for å administrere virtuelle domener i postfix (både standard
# enere og de som er definert i http://jth.net/virtual.html)
#
# Dette programmet bør ligge i /var/www/cgi-bin/virtdomain.pl med global
# Lese og kjøre rettigheter (chmod o+rx/var/www/cgi-bin/virtdomain.pl).
#
# Husk å definere $hoved :: postfixadmin nedenfor!
#
# Det første argumentet til programmet bestemmer dens funksjon:
# CREATE: ring fra kommandolinja som root: lage virtuelle domenenavn ved å oppdatere
# /etc/postfix/virtual og virtual_regexp
# Og oppretter /etc/virtuell/domene/passwd og/var/spool/virtuell/domene
# LAG <domenenavn> <virkelige bruks administrering domenet>
# <Passwd> [postfiks]
# SLETT: ringe fra kommandolinja som root: slette virtuelt domene ved å oppdatere
# /etc/postfix/virtual og virtual_regexp
# Og sletting /etc/virtuell/domene/passwd og/var/spool/virtuell/domenet
# Samt .forward filer i administratorene homedir
# SLETT <domenenavn> <virkelige bruks administrering domenet> <passwd>
# <Blank>
# MAILBOUNCE
# Hvis kalles fra postfix som mail til bruker@domene e-posten på STDIN vil bli behandlet
# I henhold til oppsettet av brukeren i /etc/virtuell/domene/passordet.
# MAILBOUNCE: sprette e-post til ukjente brukere ellers lagre i postmester postkasse
# <Blank> hvis kalt fra postfiks som e-post til postmaster@domene eller <postfixadmin + master>
# Med emnet "*** Virtual domene oppdatering ***" og linje 1 er trans = UPDATE ....
# En bruker vil bli opprettet/oppdatert/slettet
# Ellers prosessen epost normalt som ovenfor
# <Blank>: Hvis kalles fra en webserver viser nettsider for å oppdatere bruker
# Base i et virtuelt domene e, g, http://jth.net/cgi-bin/virtdomain.pl
#
# Som grunnlag brukeren postmester må defineres for domenet.
# I/etc/virtual/domene/passwd fil. De bruker og gruppe-ID som
# Samt homedir fra denne brukeren brukes for det virtuelle domenet.
# For hver virtuell bruker filen homedir/.forward+bruker - domenet er opprettet.
# Webserveren skal ha lesetilgang til disse filene, samt
# /etc/virtual/domene/passwd fil.
# GNU pop3d deamon som vedlikeholdes av meg er å støtte dette
# Virtuell domene gjennomføring.
#
# Ved hjelp av dette programmet for å levere post for j-te stil domener er ikke egnet for
# Et høyt volum system, som lasting Perl tolk
# Har en ganske høy første CPU-bruken i forhold til dette programmet (90% av total kjøretid).
# Men ved å bruke bestemmelsen for hooking i et annet program for å levere posten
# Kan være nyttig. En awk verktøyet kan anvendes i stedet virtual.awk
#
# © 2002 Jørgen Thomsen [email protected], http://jth.net/virtual.html
# 1,01 2002-08-22 offisielle utgivelsen
# 1,02 2003-01-24 Støtte for nye virtual_alias_map parameter og relay_domains atferd
# 1,03 2003-04-26 Bedre språkstøtte og fikse webmail URL i info
# 1,04 2003-05-30 Tegn | og "ble fjernet fra fremover i inngangs Nå bruker skal ikke gå inn |., men starter kommandoer med"
# 1,05 2004-08-06 Endringer bestemt til jth.net: /var/www/perl, kropp bakgrunn endret, brukes ingen CGI
#
# ************************************************* *********************
Gamle, men i utgangspunktet fortsatt gyldig
Endringer i GNU pop3d 0.9.8
(inkludert noen endringer som ikke er relatert til virtuelle domener f.eks POP-før-SMTP)
Basert på mine egne behov Jeg har laget en patch for GNU-pop3d vers. 0.9.8
Jeg har også lyttet til noen av forespørsler på GNU pop3d postliste.
Plasteret kan brukes også hvis du ikke trenger den virtuelle domene ting.
Basicallly jeg tok virtuell-oppdateringen av Jeremy Reed, gjorde det mer generelle og lagt mine egne GNU pop3d endringer:
- slik at virtuelle domenebrukere til å være reelle brukere også med postkasser andre steder
- tilsette apop støtte for virtuelle domenet brukere
- legge standarddomene skal strykes hvis det brukes for den virkelige domenenavn f.eks “[email protected]” -> “brukerID”
- tilsatt logging av ikke-null feilkoder av kommandoer
- tilsatt UIDL commmand gir unike-IDer for alle meldinger
- korrigert ved beregning av meldingsstørrelsen
- renset koden litt, særlig frigjøre allokert hukommelse
- J6: tilsatt”fra <IP-adresse>” til den logmessage ‘Innkommende forbindelse åpnes’
- J7: tilsatt ny msg “autentisert IP <IP-adresse>” til den maillog for POP-før-SMTP-støtte
- J8: fjernet (kommentert ut) den maillog msg “autentisert IP <IP-adresse>”
tilsatt”fra <IP-adresse>” til den logmessage ‘Bruker% s pålogget med postboksen% s’, slik at POP-før-SMTP verktøy av Bennett Todd kan anvendes uten modifisering
Jakten på en brukers postboks utføres som
- søk MAILSPOOLHOME (f.eks/home/bruker/Mail/postkasse)
- søk _MAILDIR (f.eks/var/mail/bruker)
- søke VIRTUAL_MAILDIR (for eksempel/var/spool/virtuell/domene/bruker)
- gi opp og bruke/dev/null
Patching GNU pop3d
I stedet for alle å bruke lappene har jeg gjort det.
- Last ned lappet kilde gnu-pop3d-0.9.11.tar.gz
- Opprett config.h fil ved
./configure
eller
./configure -enable-ip-basert virtuell
(Se også en annen samtale nedenfor) - Hvis trengte/ønsket definere MAILSPOOLHOME (for eksempel “/Mail/postkasse”) og/eller DEFAULT_DOMAIN i config.h
- Kompiler ved å utføre gjøre
De tekniske endringer
- formatet for den virtuelle domene passordfilen har blitt gjort lik standard /etc/ passwd filformat
brukernavn: passord: bruker-id: (gruppe id) 🙁 brukernavn): postkasse katalogen: (skall)
som tillater det å bli kontrollert av den pwck kommando f.eks
pwck -r /etc/virtual/domain.com/passwd
de vedlagte i parentes felt brukes ikke. Postkasse katalogen bør være “. hvis den ikke brukes - APOP støtte ble deaktivert i 0.9.8 distribusjon. Det aktiveres bortsett fra testen, som en APOP brukeren ikke skal få lov til å bruke bruker kommandoen for å logge inn. Dette er ikke logisk som brukere kan bruke ulike postprogrammer for å sjekke e-post. Noen av disse kan ikke støtte APOP
- den opprinnelige virtuelle patch bruker krypterte passord i passwd filen. For å støtte APOP fra den samme filen passordene er nå ukryptert
- den unike-id av en melding blir beregnet som en MD5-sammendrag av den opprinnelige “Fra“-line og alle header linjene exluding behovet for den valgfrie Message-ID: ningsanordningene på spillefeltet
- linjebufferlengde øket fra 80 til 160 tegn for å unngå å lese en linje med 2 fgets-anrop i de fleste tilfeller. Folk som bruker proporsjonale skrifter kan lett overstige 80 tegn/linje
- lagt til “UIDL” til de funksjonene som vises av CAPA kommandoen
- tilsatt meldingen “autentisert IP abcd” til maillog samt IP-adresse til “Innkommende forbindelse åpnes” for POP-før-SMTP-støtte
Implementering av virtuelle domener i Postfix og GNU pop3d
Grunnen til ikke å bruke standard Postfix virtuelle domener er todelt:
1) denne implementeringen fokuserer på virtuelle domener med hver sin egen administrator
2) Følgende begrensninger (sitat fra Postfix dokumentasjon (min utheving)):
Denne agenten ble opprinnelig basert på postfix lokal levering middel. Modifikasjoner hovedsakelig besto av å fjerne kode som enten var ikke aktuelt, eller det var ikke trygg i denne sammenheng: aliaser, ~ bruker/.forward filer, levering til “kommandoen” eller til/fil/navn
Det følgende viser en måte å implementere en virtuell domene, kvt.dk, i Postfix og GNU pop3d.
En ekte bruker kvt_dk er definert på systemet. Hjemmet katalog av denne brukeren inneholder noen data for den virtuelle domene kvt.dk.
To brukere er definert kvt.dk: [email protected] (virtuell bruker bare) og [email protected] (reell brukermedvirkning kvt_dk på postserver)
Gjennomføringen er basert på Redhat Linux 7.0
GNU pop3d
Jeremy siv opprinnelige beskrivelse av den virtuelle patch
Den virtuelle patch forutsetter følgende filstrukturer:
/etc/virtual/<domene>/passwd
for definisjonen av brukere, passord og postkasse katalog
I dette eksempelet lage katalogen /etc/virtual/kvt.dk
Standard postkasse for en virtuell bruker er
/var/spool/virtuell/<domene>/<bruker>
I dette eksempelet lage katalogen /var/spool/virtual/kvt.dk
På min server posten er lagret i brukerens hjemmekatalog /home/ <usr> /Mail/ postboks krever definisjonen av MAILSPOOLHOME i config.h.
Jeg har også kun én IP-adresse og vil ha min hoveddomenet “jth.net” for å automatisk bli fjernet fra post forespørsler til GNU pop3d.
Jeg genererte config.h fil med kommandoen
./configure enable-64bit enable-maildir -enable-default-domain = jth.net enable-language = DA
Før kompilering GNU pop3d jeg sørget følgende konstanter ble definert i config.h:
#define MAILSPOOLHOME "/Mail/postkasse"
#define USE_VIRTUAL en
#define DEFAULT_DOMAIN "jth.net ”
/etc/virtual/kvt.dk/passwd
Lag denne filen med følgende innhold
kvt: kvtpasswd: 601: 100: kvtname: /home/kvt_dk/:
abc: abcpasswd: 601: 100: abcname:.:
601 er en bruker-ID for brukeren kvt_dk. 100 er groupid (gruppe post på serveren min). Den ” homedir for abc er bare å gjøre pwck lykkelig.
Mail for [email protected] leveres til/home/kvt_dk/Mail/postkasse (se nedenfor).
Mail for [email protected] leveres til/var/spool/virtual/kvt.dk/abc
Hvis du stoler på kvt_dk brukeren, og deretter opprette passwd fil i hjemmekatalogen til brukeren kvt_dk. og koble den inn i /etc/virtual/kvt.dk katalogen
ln -s/home/kvt_dk/passwd/etc/virtual/kvt.dk/passwd
Legg merke til at det kan være en sikkerhetsrisiko her, fordi GNU pop3d vil kjøre med noen brukerid angitt i passwd filen. Hvorvidt dette er en reell trussel gjenstår å bli analysert.
Eieren og rettigheter på filer og kataloger bør være kvt_dk.mail og 700 f.eks
chmod 700 /etc/virtual/kvt.dk /etc/virtual/kvt.dk/passwd /var/spool/virtual/kvt.dk
chown kvt_dk.100 /etc/virtual/kvt.dk /etc/virtual/kvt.dk/passwd /var/spool/virtual/kvt.dk
Postfix
Denne implementeringen kan være mer komplisert enn andre, men det gir forskjellige administratorer av hver virtuelle domenenavn holde alt i hjemmekatalogen til domeneadministratoren.
/etc/postfix/main.cf
recipient_delimiter = +
home_mailbox = Mail/postboks
allow_mail_to_commands = termin
allow_mail_to_files = fremover
/ Home / kvt_dk
RW-r - r-- 1 kvt_dk post 12.12.10 02:52 .forward
RW-r - r-- 1 kvt_dk post 25.12.10 01:55 .forward + abc--kvt.dk
-rw- r - r-- 1 kvt_dk post 20.12.10 02:53 .forward + kvt--kvt.dk
/home/kvt_dk/.forward
| "exit 67"
Sprette en melding ikke for [email protected] eller [email protected]
/home/kvt_dk/.forward+abc-kvt.dk
| /usr/local/bin/virtual
Levere all post for [email protected] til den virtuelle domenenavn postkasse for abc endre Levert til: header linje til det riktige.
/home/kvt_dk/.forward+kvt-kvt.dk
/home/kvt_dk/Mail/postkasse
Levere all post for [email protected] til postkassen for kvt_dk
/etc/postfiks/virtuell
kvt.dk noe
[email protected] postmester
[email protected] j-te
De reelle brukere: postmaster og j-te skal motta all post for postmaster og webansvarlig for den virtuelle domene
/etc/postfiks/virtual_regexp
/^(.+)@(.+\.)?(kvt\.dk)$/ kvt_dk + $1 - $2 $3
Dette uttrykket vil føre postfix til å levere noen post med adresser [email protected] og [email protected] til den virkelige bruker kvt_dk holde den opprinnelige mottakeren konvolutt som en forlengelse av den nye mottakeradresse.
/usr/local/bin/virtual
awk -F: -f /usr/local/bin/virtual.awk
/usr/local/bin/virtual.awk
# J. Thomsen 2002-04-11 Postfix verktøyet
# /usr/local/bin/virtual.awk
#
# Brukes av Postfix for å levere post til en GNU-pop3d virtuell domene
# postkassen.
#
# Postfix vil bruke dette verktøyet for å levere en melding til den lokale
# postboks omskriving Levert til header linje til den opprinnelige mottakeren
# adresse.
# 2002-04-11 Fix avsender linjer i msg legeme og legge tom linje for å msgs for å sikre separasjon av meldinger
#