INTERESTING FACTS BLOG

Painting and Sketches

GNU pop3d va Postfixdan foydalanilgan virtual domenlar

Asl maqola - Virtual domains using GNU pop3d and Postfix

Maqola Muallifi(lari) - Jorgen Thomsen

Manba: http://jth.net/virtual.html

GNU pop3d 0.10.3

GNU pop3d 0.10.3 tayyor. Uni bu yerdan yuklab olishingiz mumkin GNU pop3d 0.10.3

O'ZGARISHLAR / TARIX

12/May/2017 0.10.3 Jørgen Thomsen [email protected], http://jth.net/virtual.html

Yangi xususiyatlari

------------

Statusni o'chirib qo'yish: hearderni qo'llab-quvvatlash (RFC 2076)

Login user namega Parametr s- qo’shing (README faylga qarang)

 

22/Mar/2014 0.10.2 Jørgen Thomsen [email protected], http://jth.net/virtual.html

Yangi xususiyatlar

------------

IPv6 konfiguratsiyasini qo’llab quvvatlash --disable--ipv6 va ishlash vaqtida --ipv6

POP3Sni --enable-pop3s bilan qo'llab-quvvatlanadigan

Xinetdning ishlayotgan konfiguratsiyani ishga stunnel incl. namuna sertifikati va kalit orqali tushiriladi

Shart: xinetd va stunnel o'rnatilinishi

Virtual domenlarda (C crypt orqali) shifrlarni qo'llab-quvvatlash (bundan keyin APOP yo'q)

Daemon boshlashni qo'llab-quvvatlashni kengaytirish --enable-service=SERVICE

Endi sysvinit, init, event.d, systemd va yagona user inetd, xinetd uchun konfiguratsiyani qo'llab-quvvatlaydi

(Ehtimol, mukammal emas :) O'rnatishni tekshirib ko'ring)

O’rnatish ildizini konfiguratsiya paytida --enable-rootdir = DIR orqali ko'rsatish mumkin

va yana Root=DIR o'rnatish bilan

o'chirish xususiyati qo'shildi

pop3client.pl dasturi oddiy test uchun va stressli pop3 server testi uchun

glibc crypt () ga mos virtual domenlar uchun parollar yaratish va / yoki shifrlash uchun mkpwd.pl

kill -SIGUSR2 syslog da bir nechta vaziyat o'zgaruvchilari ko'rsatiladi

Daemon: hozirgi vaqtda sessiya sonini va faol bolalarni pidlarini ko'rsatish va hisoblash, bayroqlar qiymatining aniqlanishini bekor qilish.

Child: IP-manzildan ulangan foydalanuvchi uchun ishlatilingan kommand va vaqtlarni ko’rsatadi

O'zgarishlar

-------

extra.c/pop3_syslog endi STDERR (debug=0x1yy) ga log yozadi.

pop3_syslog da individual syslog ustuvorliklari saqlanib turadi.

pop3_syslog orqali ko'proq log yozish.

pop3_syslog da barqarorlikni yaxshilash uchun kutubxona protseduralarini barqarorlikni oshirish uchun kamaytiriladi.

Eskirgan gethostbyname va gethostbyaddr, getaddrinfo va getnameinfo ga almashtirildi

inet_ntoa o'rniga endi inet_ntop

1 soniyalik kechikish robotlar zaif parollarni tekshirishni to'xtatish bilan BAD LOGINni qaytarish uchun.

Help matnlari tozalandi va takomillashdi.

O'rnatilgan skriptni yaxshilash

- qo'shimcha daemon ishga tushirishni boshlash tizimlari bilan ishlash

- stunnel + xinetd yordamida pop3s konfiguratsiyasi

- O'rnatish ildiz katalogining spetsifikatsiyasi

- IPv6 yordami

- firewalld xavfsizlik devori qo'llab-quvvatlanadi

- xususiyatlarni o’chirish

Iltimos, Linux Fedora 12, 15, 18, 20 da o'rnatishni sinashni amalga oshirilganini kuzating, shuning uchun u hamma hollarda mukammal bo'lmasligi mumkin.

GNU-pop3d kerakli konfiguratsion fayllarsiz yagona dastur bo'lib, uni qo'lda /usr/local/sbin/gnu-pop3d ga joylashtirish mumkin

va tizim xizmatlarining boshlang'ich skriptiga kirdi

MD5 kodi yangilangan (Gray Watson) katta/kichik endianni qo'llab-quvvatlaydi

Eng so'nggi GNU config.guessni va config.subni o'rnatadi.

Xatolar aniqlandi

----------

Bundan ham mustahkam child management (band server, DoS hujumlar).

crypt yoki strcmp funktsiyalaridagi so'nggi o'zgarishlar kirish paytida cheksiz loopga sabab bo’ldi.

Virtual domenlarda o'g'irlangan shifrlangan parol yordamida kirishni taqiqlash.

 

07/Fev/2011 0.9.13 Jørgen Thomsen [email protected], http://jth.net

Pop3_signal signalni ishlovchi protsedurasidan syslog ro'yxatidan o'tish, ayniqsa, DoS hujumlar paytida osilgan jarayonlarga sabab bo'ldi yoki

bir vaqtning o'zida ko'pchilik mijozlar tomonidan. Qisman to’g’irlandi (qachon debug maskdagi bu bitni (08) orqali ishlatganda paydo bo'lishi mumkin)

Xatolik: ba'zi kirish usullari ishlamadi (Devid B. Cortarello)

Globalniy child hisoblagich bo’lmish child_procs intdan ‘volatile sig_atomic_t’ ga o'zgarib imkoniyatni kamaytiradi

u to'g'ri yangilanmagan.

Hisoblagich har doim ham qisqartirilmagan, shuning uchun dastur maksimal child bo'lganda, faqat bitta holatni qo'lladi

jarayonlarga noto'g'ri erishildi.

Eng so'nggi GNU config.guess va config.sub o'rnatilindi.

Makefile.in va configure.in ishlab chiqilgan va Atom protsessorlarini aniqlash uchun qo'llab-quvvatlandi va qo'shimcha yordam berish uchun

xizmatni o'rnatish (/etc/init)

RFClar katalogi o'chirildi, chunki RFClar Internetda osonlikcha mavjud

 

26/Apr/2010 0.9.12 Jørgen Thomsen [email protected], http://jth.net

Maxsus xato vaziyatlarda pochta qutisi nomini ikki martalab bo’shating, masalan ikki bir xil loginlar

bir xil pochta qutisi.

config.guess va config.sub taqsimotdan mahrum

Syslog ga dastlabki xabar qo'shildi

 

18/Apr/2010 0.9.11 Jørgen Thomsen [email protected], http://jth.net

Dastur boshqa platformalar bo'yicha sinovdan o'tmagan Linux Fedora platformasida saqlanadi, lekin

Linuxning o'ziga xos xususiyatlaridan qochishga uringan.

Konfiguratsiya skriptini takomillashtirish, jumladan 64 bit CPUni qo'llab quvvatlash.

Nagle (TCP No Delay) algoritimi tezlikda katta takomillashtirish sabab o'chirib qo'yildi.

SO_REUSEADDR daemon socketga restartdan keyin o’rtancha soketni qayta ishlatish uchun qo’shildi.

Signallarni qayta ishlash yanada qulay (sigaction) bo'lishi uchun ishlab chiqilgan va xavfli bo'lmagan chaqiruvlar uzatish ishlovchilaridan olib tashlandi. Bekor qilish

bir signal so'ng, mailbox.lock fayllarini atrofda qoldirmaslik ancha yaxshi bo'lishi kerak.

* Bug * sock o'zgaruvchisi har doim childda -1 edi va haqiqiy socket (sock2) emas, shuning uchun childagi pop3_signal soketni yopmadi.

sync() chaqiriqlar olib tashlangan, masalan katta hajmdagi fayllarni USB diskiga nusxalash osilib qoladi hamma data yozilmagunicha (bir necha daqiqalar)

Yukni olib tashlash kabi o'chirib tashlangan hisobotlarni shartli tuzish juda kichik.

Xatolarni tuzatish parametrlari 2 ta olti raqamli bit maskasi (bolalar, xizmatchi) o'zgartirildi va qo'shimcha ravishda

Debugging bayonnomalar qo'shilgan.

MAXHOSTNAMELEN 128 ga oshdi, IDNA domen nomlari tufayli

gnu-pop3d fayli /etc/event.d included uchun

man sahifasi yangilandi

 

18/Iyul/2007 0.9.10 Jørgen Thomsen [email protected], http://jth.net

Pochta qutisidagi fcntl lock lock yozish uchun o'zgartirildi

sync() har doim qulfdan chaqiriladi

timeout yoqilganda datani o’qish bilan (tanlash) mijozdan ma'lumotni o'qidi, endi bo’lingan pipeni tekshiradi,

agar mijoz kutilmaganda yo'qolsa.

Pochta qutisi yangi pochta qutisiga ko'chirilganda, ba'zi MTA'lar (masalan, postfix) eski pochta qutisiga yozishni davom ettirishi mumkin.

Endi bo'sh eski pochta qutisi mailbox.old sifatida saqlanadi va keyingi safarda bo'sh bo'lmasa, yangi bilan birlashtiriladi.

 

24/Avg/2003 0.9.9-5 Jørgen Thomsen [email protected], http://jth.net

Sarlavha satrlari uchun sinovlar yetarli darajada emas: va X-Status: teng hisoblanadi (Jem Berkes)

Ayrim TCP-paketlar (Nikolas Gregoire) sifatida qabul qilingan bo'lsa, buyruq qatorlari bir qatorga o'rnatilmagan.

 

18/Yan/2003 0.9.9-4 Jørgen Thomsen [email protected], http://jth.net

Postfix X-Original-To ni qo’llab quvvatlash: sarlavha satr uchun Message Disposition Notification.

UIDL hisob-kitoblari endi X-headerlinesni o'z ichiga olmaydi, chunki ular ba'zi pochta o'qiydiganlar tomonidan qo'shilishi mumkin.

"%" '%' chegarachisi sifatida ruxsat etiladi @ virtual foydalanuvchi nomi o'rniga

Kichik ichki o'zgarishlar.

Muallif tomonidan virtdomain.pl uchun qo'shimcha yordam (pochta qutisini qanday topish mumkin)

 

18/Okt/2002 0.9.9-3 Jørgen Thomsen [email protected], http://jth.net/

Birinchi qatorda “From” bo’lmagan noto'g'ri pochta qutisidagi xato tuzatildi.

 

05/Sen/2002 0.9.9-2 Jørgen Thomsen [email protected], http://jth.net/

To'liq disk uchun o'zgartirilgan pochta qutisining .new faylga yozilishiga yo'l qo'yilmasdi. O'zgarishsiz qoldi

 

04/Sen/2002 0.9.9-1 Jørgen Thomsen [email protected], http://jth.net/

Agar pochta qutisi liniya orqali yozilmasa (agar unga xat yozishda nosozlik bo'lsa)

cheksiz aylanma (loop) paydo bo'ldi. Pochta qutisi GNU pop3d tomonidan o'zgartirilgan bo'lsa, u to’g’irlandi.

Yangi pochta qutisini yozishda disk to'la bo'lganda yangi pochta qutisi yozilmasdi

 

19/Avg/2002 0.9.9 Jørgen Thomsen [email protected], http://jth.net/

vm-pop3d passwd fayllari bilan moslik taqdim etildi (to'liq sinovdan o'tkazilmagan)

Signallar (SIGHUP va SIGTERM) yordamida to'xtash qo’shildi.

Oxirgi teginish va versiya raqami 0.9.9 ga o'zgartirildi

 

19/Oct/2001 Jørgen Thomsen [email protected], http://jth.net/

Message Disposition Notification qo’shildi (qaytarib olish, RFC 2298)

Ko'p hollarda config.h ni tahrirlashni oldini olish uchun konfiguratsiya parametrlari qo'shilgan

Yangi fayl yaratish uchun pochta qutisidagi yangilash (mailbox.new)

agar kerak bo'lsa, faylning nusxasini yaxshilash. Bu, ayniqsa, veb-pochta dasturlari uchun tezlikni oshiradi.

Klassik Statusni qo'llab-quvvatladi: RFC 2076 bosh satri (masalan, Null Webmail tomonidan qo'llab-quvvatlandi

http://nullwebmail.sourceforge.net/)

 

17/Okt/2001 Jørgen Thomsen [email protected], http://jth.net/

Children protseslarini yaratish va o'limni yaxshiroq boshqarish uchun eski tuzatkich qo'shildi.

Endi child protseslari zarurat tug'ilganda yaratiladi va parent protsesni doimiy qiladi.

VirtDomain 1.05

Veb GUI interfeysi, har ikkala standart Postfix virtual domenlari va mening lazzat uchun ishlab chiqilgan: jth virtual domenlari. Virtual domen yaratish uchun virtual buyruq satridan va veb-serverdan uni boshqarish uchun chaqirganlardan bir Perl dasturi bo'lib keladi. Postfix VirtDomain 1.05 ning so'nggi versiyasini talab qiladi

#!/usr/bin/perl –w

# ************************************************* *********************

#

# Postfiksdagi virtual domenlarni boshqarish uchun dastur (standartlar ham

# va http://jth.net/virtual.html da tavsiflanganlar ham)

#

# Ushbu dastur global ravishda /var/www/cgi-bin/virtdomain.pl da joylashgan bo'lishi kerak

# huquqlarni o'qib chiqing va ijro eting (chmod o+rx /var/www/cgi-bin/virtdomain.pl).

#

# $main::postfixadmin ni aniqlashni unutmang!

#

# Dasturga birinchi dalil uning funktsiyasini belgilaydi:

# CREATE: root bo’lib commandlinedan chaqirish: yangilash orqali virtual domen yaratish

# /etc/postfix/virtual and virtual_regexp

# va /etc/virtual/domain/passwd va /var/spool/virtual/domain yaratish

# CREATE

# [postfix]

# DELETE: root bo’lib commandlinedan chaqirish: virtual domenni yangilash orqali o'chirib tashlash

# /etc/postfix/virtual and virtual_regexp

# va /etc/virtual/domain/passwd va /var/spool/virtual/domain kabi o'chiriladi

# shuningdek Administrator homedirda .forward fayli

# DELETE

#

# MAILBOUNCE

# mail dan user@domain ga postfix dan chaqirilsa, STDIN dagi email ishlaydi.

# /etc/virtual/domain/passwd da foydalanuvchining sozlashiga asosan.

# MAILBOUNCE: noma'lum foydalanuvchilarga elektron pochtani yuborish, aks holda postmaster pochta qutisida saqlanadi

# Agar postfiksdan mailga postmaster@domain yoki chaqirilsa

# "*** Virtual domain update ***" mavzu va 1-liniyada 1 trans=UPDATE…. bilan

# foydalanuvchi yaratilinadi/yangilanadi/o'chiriladi

# Aksincha yuqorida ko'rsatilgan tartibda elektron pochtani yuboring

# : agar veb-serverdan chaqirsangiz, foydalanuvchini yangilash uchun veb-sahifalarni ko'rsatadi

# virtual domendagi baza, masalan, http://jth.net/cgi-bin/virtdomain.pl

#

# Asos sifatida postmaster foydalanuvchisi domen uchun belgilanishi kerak.

# /etc/virtual/domain/passwd faylida. Foydalanuvchi va guruh identifikatorlari

# hamda shu foydalanuvchidan homedir virtual domen uchun ham ishlatilinadi.

# Har bir virtual foydalanuvchi uchun homedir/.forward+user--domain yaratilinadi.

# Veb-server ushbu fayllarni o'qishga kirish huquqiga ega bo'lishi kerak, shuningdek

# /etc/virtual/domain/passwd faylini ham.

# GNU pop3d deamon men tomonidan qo'llab-quvvatlanadigan ushbu

# virtual domenni qo'llashni qo'llab-quvvatlashdir.

#

# Jth tarzi domenlari uchun pochta xabarlarini etkazish uchun ushbu dasturni ishlatish mos emas

# Perl tarjimonni yuklanishidek yuqori hajmli tizim

# Bu dasturga nisbatan juda katta boshlang'ich CPU foydalanishga ega (jami ish vaqti 90%).

# Biroq, xabarni yetkazib berish uchun boshqa dasturga ulanish uchun qoidadan foydalaning

# foydali bo'lishi mumkin. virtual.awk o'rniga awk yordam dasturidan foydalanish mumkin

#

# ©2002 Jørgen Thomsen [email protected], http://jth.net/virtual.html

# 1.01 2002-08-22 Rasmiy versiya

# 1.02 2003-01-24 Yangi virtual_alias_map parametrini va relay_domains xatti-harakatlarini qo'llab-quvvatlash

# 1.03 2003-04-26 info-da yaxshiroq til yordami va webmail URL-manzilini tuzatish

# 1.04 2003-05-30 Chars | va " kirishdan oldinga olib tashlandi. Endi foydalanuvchi kirita olmaydi, lekin komand yoza oladi"

# 1.05 2004-08-06 O'ziga xos jth.net uchun o'zgarish: /var/www/perl, tananing foni o'zgarib, CGI ishlatilmadi

#

# ************************************************* *********************

Qadimgi, lekin asosan hali ham amal qiladi

GNU pop3d 0.9.8 ga o'zgartishlar

(ba'zi o'zgarishlar virtual domenlar bilan bog'liq emas, shu jumladan, POP-before-SMTP)

Men o'z ehtiyojlarimga asoslanib, GNU-pop3d vers. 0.9.8ni tuzatdim.

Men GNU pop3d pochta ro'yxatidagi ba'zi so'rovlarni tingladim.

Agar sizga virtual domen narsalari kerak bo'lmasa, tuzatish ilovasi ham qo'llanilishi mumkin.

Asosan Jeremy Reedning virtual-patchini oldim, umumiyroq qilib va men o’zimning GNU pop3d o’zgartirishlarimni kiritdim:

Foydalanuvchilarning pochta qutisini izlash jarayoni quyidagi kabi amalga oshiriladi

  1. qidirish MAILSPOOLHOME (masalan /home/user/Mail/mailbox)
  2. qidirish _MAILDIR (masalan /var/mail/user)
  3. qidirish VIRTUAL_MAILDIR (masalan /var/spool/virtual/domain/user)
  4. tashash and ishlatish /dev/null

Patching GNU pop3d

Har bir odamni tuzatib olish o'rniga men buni qildim.

  1. Patch qilingan manbani gnu-pop3d-0.9.11.tar.gzdan yuklab oling
  2. config.h faylini yarating (./configure yoki  ./configure --enable-ip-based-virtual (quyidagi boshqa qo'ng'iroqni ko'ring) )
  3. Agar MAILSPOOLHOME ni belgilashni kerak bo'lsa/xohlasangiz, (masalan, "/Mail/mailbox ") va/yoki config.h da konfiguratsiya da DEFAULT_DOMAIN.
  4. Make ni kompilyatsiya qilish

Texnik o'zgarishlar

Postfix va GNU pop3d da virtual domenlarni qo'llash

Postfixning standart virtual domenlarini ishlatmaslik sababi ikkita:

1) ushbu dastur virtual administratorlar bilan virtual domenlarga qaratilgan

2) quyidagi cheklashlar (Postfix hujjatidan iqtibos (mening diqqatim)):

Ushbu agent dastlab Postfix mahalliy etkazib berish agentiga asoslandi. O'zgarishlar, asosan, qo'llanilmagan yoki bu erda xavfsiz bo'lmagan kodni olib tashlashdan iborat bo’lgan: taxalluslar, ~user/.forward fayllari, "|command"ga yoki /file/name ga yetkazib beradi

Quyida, Postfix va GNU pop3d da kvt.dk virtual domenini qo'llashning bir usuli ko'rsatilgan.

Tizimda real foydalanuvchi kvt_dk belgilandi. Ushbu foydalanuvchi bosh sahifa kvt.dk virtual domenida ba'zi ma'lumotlar mavjud.

Ikki foydalanuvchi kvt.dk: [email protected] (faqat virtual foydalanuvchi) va [email protected] (pochta serverida haqiqiy kvt_dk foydalanuvchi) da belgilangan

Ushbu dastur Redhat Linux 7.0 ga asoslangan

GNU pop3d

Jeremy Reeds virtual patchning original tavsifini

virtual patch quyidagi fayl tuzilmalarni tasavvur qiladi:

/etc/virtual//passwd

foydalanuvchilar, parollar va pochta qutisini aniqlash uchun

Ushbu misolda /etc/virtual/kvt.dk katalogini yarating

Virtual foydalanuvchilar uchun standart pochta qutisi

/var/spool/virtual//

Ushbu misolda /var/spool/virtual/kvt.dk katalogini yarating

Mening serverimda pochtalar pochta foydalanuvchining bosh sahifasida/home//Mail/mailbox saqlanadi, config.h da MAILSPOOLHOME yozilgan bo’lsa.

Menda faqat bitta IP-manzil mavjud va mening asosiy domenim "jth.net" pochta so'rovlaridan GNU pop3d-ga avtomatik tarzda olib qo'yilishini istayman.

Komand orqali config.h faylini yaratdim

./configure --enable-64bit --enable-maildir -enable-default-domain=jth.net --enable-language=DA

GNU pop3dning kompilatsiyasidan oldin, config.h da quyidagilar belgilab qo'yilganligiga ishonch hosil qildim:

#define MAILSPOOLHOME "/Mail/mailbox"

#define USE_VIRTUAL 1

#define DEFAULT_DOMAIN "jth.net"

/etc/virtual/kvt.dk/passwd

Quyidagi tarkib bilan ushbu faylni yarating

kvt:kvtpasswd:601:100:kvtname:/home/kvt_dk/:

abc:abcpasswd:601:100:abcname:.:

601 kvt_dk foydalanuvchisining userid si. 100 groupid (mening serverimdagi guruh pochtasi). '.' homedir abc uchun faqat pwck ni xursand qilish uchun.

[email protected] maili /home/kvt_dk/Mail/mailbox ga yetkaziladi (pastga qarang).

[email protected] maili / var/spool/virtual/kvt.dk/abc ga yetkaziladi.

Agar kvt_dk foydalanuvchisiga ishonsangiz, kvt_dk. foydalanuvchisining bosh sahifasida passwd faylini yarating va /etc/virtual/kvt.dk katalogiga bog'lang

ln -s / home / kvt_dk / passwd /etc/virtual/kvt.dk/passwd

GNU pop3d passwd faylida ko'rsatilgan har qanday foydalanuvchi identifikatori bilan ishlashi sababli bu erda xavfsizlik xatarlari bo'lishi mumkin. Bu haqiqiy tahdidmi, yo’qmi tahlil qilish kerak.

Fayl va katalogdagi egasi va ruxsatnomalar kvt_dk.mail va 700 bo'lishi kerak, masalan

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

Postfiks

Ushbu dastur boshqalardan ko'ra murakkab bo'lishi mumkin, lekin har bir virtual domenning turli administratorlariga domen administratorining bosh sahifasida hamma narsani saqlab qolishga imkon beradi.

/etc/postfix/main.cf

recipient_delimiter = +

home_mailbox = Mail/mailbox

allow_mail_to_commands = forward

allow_mail_to_files = forward

/home/kvt_dk

-rw-r--r-- 1 kvt_dk mail 12 Dec 10 02:52 .forward

-rw-r--r-- 1 kvt_dk mail 25 Dec 10 01:55 .forward+abc--kvt.dk

-rw-r--r-- 1 kvt_dk mail 20 Dec 10 02:53 .forward+kvt--kvt.dk

/home/kvt_dk/.forward

|"exit 67"

[email protected] yoki [email protected] uchun hech qanday xabarni o'chirmang

/home/kvt_dk/.forward+abc--kvt.dk

|/usr/local/bin/virtual

[email protected] elektron pochtasiga kelgan barcha xatlarni abc virtual domenga etkazib berish uchun Delivered-To: sarlavha satrini to'g'risiga o'zgartiring.

/home/kvt_dk/.forward+kvt--kvt.dk

/home/kvt_dk/Mail/mailbox

[email protected] manzilidagi barcha xabarlarni kvt_dk pochta qutisiga yuboring

/etc/postfix/virtual

kvt.dk hamma narsa

[email protected] postmaster

[email protected] jth

Haqiqiy foydalanuvchilar: postmaster va jth post administratori va virtual domen vebmasteri uchun barcha xatlarni qabul qilishlari kerak

/etc/postfix/virtual_regexp

/^(.+)@(.+\.)?(kvt\.dk)$/ kvt_dk+$1--$2$3

Bu ifoda, postfixga [email protected] va [email protected] manzillarini o'z ichiga olgan har qanday elektron pochta manzilini xujjatning haqiqiy kvt_dk manziliga etkazib beradi va asl konvertni qabul qiluvchini yangi qabul qiluvchi manzili uchun kengaytma sifatida saqlaydi.

/usr/local/bin/virtual

awk -F: -f /usr/local/bin/virtual.awk

/usr/local/bin/virtual.awk

# J. Thomsen 2002-04-11 Postfix dasturi

# /usr/local/bin/virtual.awk

#

# Postfix orqali GNU-pop3d virtual domeniga pochta orqali xabar yuborish # uchun ishlatiladi.

#

# Postfix bu yordamchi dasturni mahalliy pochta qutisiga

#Delivered-To sarlavhasini original qabul qiluvchiga

#almashtirib, etkazib berish uchun ishlatiladi

# 2002-04-11 Xabarlarni ajratib olishni ta'minlash uchun msg texti ichidagi 'From ' qatorlarini to'g'rilab, msgsga bo'sh satr qo'sh

#

Virtual domen pochta qutisiga yetkaz, masalan: [email protected] /var/spool/virtual/kvt.dk/abc ga.

Delivered-To: sarlavhasi asl konvert qabul qiluvchi manzilini o'z ichiga olishi uchun o'zgartirildi (taxalluslar bilan mumkin bo'lgan modifikatsiyadan keyin).