popbsmtpd uzstādīšana HOWTO

link: http://www.eclectica.ca/linux/popbsmtpd/doc.php?doc=install

Šajā dokumentā aprakstīts, kā izmantot popbsmtpd, lai atļautu e-pasta lietotājiem, lai nosūtītu izejošā pasta caur to home server, kad viņi ir prom no viņu lokālā tīkla.

BRĪDINĀJUMS: Šis ir jaunu programmatūru. Bet tas ir rakstīts ar drošības prātā, un ir pārbaudīta, tas vēl nav pārcietusi drebuļi pastāvīgā lietošanā vairākus iestatījumus. Uzskata, ka tas pirms uzstādīšanas to par vērtīgu ražošanas serveri. Piezīme: Pēc tam, kad vairāki simti ielāde, šis brīdinājums ir, iespējams, mazāk ko piemēro tūlīt.

BRĪDINĀJUMS:, noteiktos apstākļos, šī programmatūra nav piemērots lietošanai uz liela apjoma pasta serverus (kur “liela apjoma” ir definēts kā regulāri iegūt vairāk nekā vienu POP pieteikšanās katru otro, vai arī tā). Ja sistēmas žurnālā izplatās IP adresi un pieteikšanās panākumus informācija pa vairākiem žurnāla ierakstiem, ir iespējams jaukt user/ip informāciju, kad vienlaicīgi (vai gandrīz vienlaicīgi), logins notikt. Tas var izraisīt nedod releju, piekļuve lietotājs, kurš ir jābūt tā, vai tā rezultātā var piešķirt releju, piekļuve neautorizēts lietotājs. Šis nesankcionētu lietotājam varētu būt releja piekļuvi, līdz atļaujas termiņa beigām (pēc konfigurējama timeout).

Darbības joma

Šis dokuments apraksta instalēšanu, testēšanu un konfigurēšana popbsmtpd kādā Engarde Secure Linux vidi. Tajā ir aprakstīta arī kāda konfigurācija un testēšana, kas nepieciešama, lai veiksmīgi ielādētu un sūtītu vēstules neatkarīgi no pop-up-smtp, bet ne dziļumā.

Atkarībā no lietotāju atsauksmēm šis dokuments var būt vispārīgāks un platformas un izplatīšanas neatkarīgs.

Priekšvēsture

Viens no mūsdienu interneta baniem ir cilvēki, kuri to ļaunprātīgi izmanto, lai nosūtītu savus masu sūtījumus. Lai samazinātu savas izmaksas un slēptu viņu pasta izcelsmi, viņi centīsies identificēt serverus, kurus viņi var nolaupīt. Šie upuru serveri ir pazīstami kā “atvērtie releji”, un tiek uzskatīts, ka tie ir ļoti slikti tīkvītrai. Lai iegūtu papildinformāciju par to, kāpēc tā ir slikta lieta un kāpēc tās tiek iekļautas melnajā sarakstā, apmeklējiet vietni ORDB.org .

Atvērtā releja aizvēršana ierobežo to, kurš var sūtīt e-pastu caur jūsu pasta serveri. Parasti tikai lietotāji no noteiktas tīkla adrešu klāsta, ti, jūsu paša, ir tiesīgi pārsūtīt e-pastu. Tam ir nelabvēlīga blakusparādība, kas liedz jūsu lietotājiem tiesības sūtīt vēstules caur jūsu serveri, kad tie atrodas ārpus biroja.

Ja serveris varētu droši identificēt lietotāju, kurš mēģina nosūtīt pastu, tas varētu atļaut pārraidīšanu neatkarīgi no lietotāja atrašanās vietas. Tomēr SMTP (pasta nosūtīšanai izmantotais protokols) neatbilst šai validācijai. (Pārbaudiet SASL par alternatīvu.)

Tas ir, kad tiek parādīta POP-before-SMTP validācija. Skaidrs, ka jums ir jāidentificē sevi, lai paņemtu savu pastu, tādēļ šajā brīdī pasta serveris zina, ka šajā IP adresē ir zināms derīgs lietotājs. Viss, kas nepieciešams, ir veids, kā nodot šo informāciju no POP servera uz SMTP serveri. Tas ir tieši tas, ko popbsmtpd dara.

Uzstādīšana un uzstādīšana

Piezīme. Pašlaik nav pieejamas RPM balstītas pakotnes, bet tas ir plānots nākotnē. Pa to laiku šeit aprakstītā manuālā uzstādīšanas procedūra ir diezgan nenozīmīga.

Lejupielādēt, izkraut un instalēt komponentus

No šejienes iegūstiet pašreizējo versiju, izmantojot FTP , un ievietojiet to root mājas direktorijā. Piesakieties kā root un izpakojiet to:

[root @ host / root] # tar xzvf popbsmtpd- < version > .tar.gz

Tas izveidos direktoriju popbsmtpd, kurā ir projekta faili.

Ir trīs faili, kas jāinstalē; izpildāmā faila, konfigurācijas faila un init script. Konfigurācijas fails nav problēma, taču jums būs jāatspējo LIDS (ja to izmantojat), lai instalētu pārējos divus. Ja LIDS ir iespējota, / usr / sbin un /etc/init.d, šķiet, ir tikai lasāmā ierīcē, un to nevar rakstīt. Lai instalētu failus:

[root @ host / root] # / sbin / lidsadm -S - -LIDS_GLOBAL 
SWITCH 
ievadiet paroli: 
[root @ host / root] # mv popbsmtpd / usr / sbin 
[root @ host / root] # chmod 750 / usr / sbin / popbsmtpd 
[root @ host / root] # chown root.root / usr / sbin / popbsmtpd 
[root @ host / root] # mv popbsmtpd.init /etc/init.d/popbsmtpd 
[root @ host / root] # chmod 700 /etc/init.d/popbsmtpd 
[root @ host / root] # chown root.root /etc/init.d/popbsmtpd 
[root @ host / root] # mv popbsmtpd.conf / etc 
[root @ host / root] # chmod 640 /etc/popbsmtpd.conf 
[root @ host / root] # chown root.root /etc/popbsmtpd.conf 
[root @ host / root] #/usr/sbin/config_lids.pl Izdzēsa 
visus noteikumus. 

READ pilnvaru 
iestatīšana ... WRITE atļauju 
iestatīšana ... DENY atļauju 
iestatīšana ... Objekta / objektu asociāciju 
iestatīšana ... Sertifikāta / atslēgas aizsardzības iestatīšana ... 

PĀRSLĒGŠANA LIDS konfigurācija ... 
[root @ host / root] # / sbin / lidsadm -S - + LIDS_GLOBAL 
SWITCH 
ievadiet paroli: 
[root @ host / root] #

Lai veiktu šīs instalēšanas darbības, izplatīšanas specifiskajos direktorijās ir apvalks.

Lespējot piekļuvi POP3

Ja jūs jau lietojat POP, viss, kas jums jādara, ir nodrošināt, ka pakalpojums ir pieejams neatkarīgi no tā, no kurienes lietotājs piesakās. Tas tiek paveikts ar šādu rindu failā /etc/hosts.allow:

--- sākt --- 
# 
# hosts.allow 
# 
spop3: ALL 

---- beigu ----

Ja jūs vēl neesat palaists POP, jums arī būs jāsāk to darīt un jāpārliecinās, vai tā tiek palaista katru reizi, kad mašīna tiek uzņemta.

[root @ host / root] # /etc/init.d/stunnel-pop3 start 
[root @ host / root] # chkconfig --add stunnel-pop3

Ja jums ir problēmas ar POP servera sertifikātu, šeit ir pieejama daži dokumenti, lai palīdzētu jums to noformēt.

PĀRBAUDES PUNKTS: pirms turpināt , pārliecinieties, vai jūs varat veiksmīgi izgūt e-pastu ar POP no vietējā tīkla ārpus jūsu.

Mainiet Postfix konfigurāciju

Tas ir jautājuma pamatā, jo Postfix nolemj, vai jūsu pasts tiek pieņemts nosūtīšanai.

Nepieciešams izveidot konfigurāciju, kas ļauj pārraidīt no ārējām vietām vienīgi tad, ja ir autorizācijas ieraksts. Šīs atļaujas ierakstus ir ērti meklējis Postfix maiņas tabulā, tāpēc tie ir rakstīti ar popbsmtpd šādā formātā uz /etc/postfix/pop-before-smtp.db.

Jauna pārbaude ir jāveic divās vietās Postfix konfigurācijā: viena ir smtpd_client_restrictions , un viena smtpd_recipient_restrictions . Katrā gadījumā jaunais tests ir:
check_client_access hash: / etc / postfix / pop-before-smtp

  • Tests pie smtpd_client_restrictions nodrošina, ka klients netiek noraidīts, pamatojoties uz to, kas tas ir, vai no kurienes tas tiek savienots.
  • Smtpd_recipient_restrictions pārbaude nodrošina, ka klients netiek noraidīts, pamatojoties uz to, uz kuru adresi ir adresēts. Parasti visi galamērķi, kas nav vietējā serverī, tiek noraidīti.

Ja jūsu konfigurācijā šie ierobežojumi netiek izmantoti, alternatīva ir pievienot šo datubāzi mynetworks parametram, piemēram, šis (pieņemot, ka jūsu tīkls atrodas 192.168.1 diapazonā):
mynetworks = 192.168.1.0/24, hash: / etc / postfix / pop-pirms-smtp

Piezīme. Postfix konfigurācijas failos sufiksu .db nekad nav norādīts.

/etc/postfix/pop-before-smtp.db jāizveido pirms Postfix konfigurācijas atkārtotas ielādēšanas. To visu var izdarīt ar šādām komandām:

[root @ host postfix] # touch / etc / postfix / pop-before-smtp 
[root @ host postfix] # postmap hash: / etc / postfix / pop-before-smtp 
[root @ host postfix] # postfix reload

PĀRBAUDES PUNKTS: pirms turpināt , pārliecinieties, ka viss darbojas tāpat kā pirms izmaiņu veikšanas, jo nekas nedrīkst rīkoties citādi, līdz IP adrese parādās /etc/postfix/pop-before-smtp.db. Jo īpašipārliecinieties, ka neesat atvērts relejs (ti, jūs pēc noklusējuma nenododat pastu no jebkuras vietas ārpus vietējā tīkla).

Tagad pārbaudiet, vai atļaujas datu bāzei pievienojot IP adresi ir vēlamais efekts:

  1. No pasta klienta, kas ir savienots ar internetu, izmantojot IP adresi, kas atrodas ārpus jūsu diapazona, mēģiniet nosūtīt pastu no sava servera uz vietni, kas nav vietējais, piemēram, Yahoo vai Hotmail kontu. Tas būtu FAIL .
  2. Savā pasta serverī pievienojiet pasta pakalpnes IP adresi, kas izmantota 1. darbībā, uz /etc/postfix/pop-before-smtp.db (skatiet tālāk).
  3. Testa atkārtojiet 1. darbībā. Tam vajadzētu SUCCEED .

Ja 1. posma testa laikā varat sūtīt e-pastu vai testa 3. solī, pārbaudiet žurnālus un konfigurāciju, lai noteiktu problēmas un novērstu to. Ja tas nedarbojas pareizi, popbsmtpd nedarbosies.

Piezīme. Lai manuāli pievienotu IP adresi uz /etc/postfix/pop-before-smtp.db, pievienojiet līniju teksta failam / etc / postfix / pop-before-smtp (izveidots iepriekš) ar līniju, kurā ir IP adrese , atstarpes vai cilnes un virknes “OK”, piemēram:

--- sākt --- 
192.168.1.1 OK 
---- beigu ----

Pēc tam atjaunojiet datubāzi:

[root @ host postfix] # postmap hash: / etc / postfix / pop-before-smtp

Lai vēlāk izņemtu IP adresi, varat izmantot popbsmtpd:

[root @ host postfix] # popbsmtpd --rebuild

Modificējiet syslog-ng konfigurāciju

Popbsmtpd dēmonam ir nepieciešama piekļuve POP serverim pieejamai pieteikšanās informācijai. Šī informācija tiek ierakstīta sistēmas žurnālos, tāpēc tā ir ērta vieta, no kuras to izgūst.

Tā vietā, lai sekotu kādam no esošajiem žurnāliem, popbsmtpd sagaida, ka tā pati veltīta informācijas plūsma būs pieejama par nosaukto cauruli. Lai to paveiktu, pēc to līdzīgiem kaimiņiem pievienojiet šādas rindas uz /etc/syslog-ng.conf:

--- sākt --- 
# 
# syslog-ng.conf 
# 
... 

################################ ########################### 
# DEFINE PIEEJAMIE IEZĪMĒJUMI, LAI IZVĒLIETIES NO 
############### ############################################ 
... 
galamērķis mail_login { caurule ("/ var / log / pop-imap-login.log"); }; 

################################################## ######### 
# DEFINE PIEEJAMIE LOG FILTRI, KAS JĀBŪVĒT NO 
################################# ########################## 
... 
filtrs f_mail_login {programma ("stunnel") vai programma ("spop3") vai programma ("simap "); }; 

################################################## #########
# DEFINE LOGGING - (avoti; filtri; galamērķi) 
####################################### #################### 
... 
#### log drošu pop / imap aktivitāti pop-before-smtp apstrādes 
log {source (src); filtrs (f_mail_login); galamērķis (mail_login); }; 

---- beigu ----

Tagad izveidojiet cauruli un izveidojiet syslog-ng, lai atkārtoti izlasītu tā konfigurāciju:

[root @ host / root] # mkfifo /var/log/pop-imap-login.log 
[root @ host / root] # killall -HUP syslog-ng

PĀRBAUDES PUNKTS: Pirms turpināt , pārliecinieties, vai syslog faktiski ir rakstījis cauruli. To var izdarīt, palaižot “cat /var/log/pop-imap-login.log” un pēc tam piesakoties ar POP kā jūs agrāk. Jums vajadzētu redzēt žurnāla ierakstus, kad tie ierodas. (Lai izietu, izmantojiet taustiņu kombināciju Ctrl + C).

Tā kā šī ir caurule, nevis fails, šis žurnāls nav jāpārvērš. Tikmēr, kamēr darbojas popbsmtpd, caurule nekad neuzkrāš datus vai neuzaugs.

Sāciet popbsmtpd

Vispirms pārbaudiet /etc/popbsmtpd.conf konfigurāciju. Atsauces rokasgrāmatā ir informācija, kas jums nepieciešama, lai to izdarītu.

Jūs varat izmēģināt programmu interaktīvi, lai pārliecinātos, ka viss darbojas. Palaidiet šādu komandu un uzsākiet kādu pasta darbību:

[root @ host / root] # popbsmtpd --loglevel = 3

Jums vajadzētu redzēt konfigurācijas informāciju un pēc tam apstrādāt sistēmas žurnāla ierakstus, kas uz to ir novirzīti. Kad esat apmierināts, nospiediet Ctrl + C, lai graciozi beigtu programmu.

Tagad, kad viss ir konfigurēts, pārbaudīts un zināms, ka tas darbojas, var uzsākt uzraudzības dēmonu:

[root @ host / root] # /etc/init.d/popbsmtpd start 
[root @ host / root] # chkconfig --add popbsmtpd

Kopsavilkums

Uzstādīšanas procedūru var apkopot šādi:

  • Lejupielādējiet pašreizējo popbsmtpd versiju un izpakojiet to.
  • Instalēt 3 failus; izpildāmā faila, konfigurācijas faila un init script.
  • Iespējot POP3 piekļuvi no jebkuras vietas (vēlams ar stunnel) un pārbaudi .
  • Mainiet Postfix konfigurāciju, lai pārbaudītu autorizācijas datu bāzi un testētu .
  • Modificējiet syslog-ng konfigurāciju, lai padeves pieteikšanās informāciju popbsmtpd un pārbaudītu .
  • Sāciet popbsmtpd.

Konfigurācijas faili

Paraugs popbsmtpd.conf

--- Sākt --- 
# 
# Konfigurācijas fails POP-pirms-SMTP dēmonam 
# 

# Log failu (pipe), lai pārbaudītu veiksmīgas POP autorizāciju. 
source_log = /var/log/pop-imap-login.log 

# Datu bāze, kurai mēs rakstām IP adreses. 
auth_db = /etc/postfix/pop-before-smtp.db 

# Datu bāze, kurai mēs rakstām pieteikšanās informāciju. 
login_db = /etc/postfix/pop-before-smtp-logins.db 

# Mūsu pašu tīklu IP adreses, tādēļ netiek zaudēts laiks, atļaujot 
# IP adreses, kuras jebkurā gadījumā ir atļautas. Šis ir atdalīts ar 
# atdalīts # tīkla adrešu saraksts ar atlikušajiem periodiem. 
# Pašreizējais maksimālais tīklu skaits, ko jūs varat norādīt, ir 8. 
#
# Piemērs: mynetworks = 192.168.1. 192.168.2. 10. 
# 
mynetworks = # Minūtes 

skaits pirms POP validācijas termiņa beigām. 
# Zema riska vietām 8 stundas (480 minūtes) ir labas. 
auth_duration = 30 

# Maksimālais sekundes skaits, lai gulētu. 
# Monitora atskan katru reizi, kad iestājas derīguma termiņš, un arī pamost 
# ikreiz, kad jaunajā žurnāla ierakstā tiek ierakstīts tā caurule, tādēļ nav iemesla 
#, lai padarītu šo termiņu īsu (izņemot atkļūdošanu). 
# Viena stunda (3600 sekundes) ir saprātīgs laiks. 
sleep_duration = 3600 

# Iekārta, ko izmanto, lai pieslēgtos sistēmai žurnālā; noklusējums LOG_MAIL. 
log_facility = LOG_MAIL 

# Mežizstrādes daudzums.
# Šī vērtība svārstās no 0 līdz 6; jo augstāks skaitlis, jo vairāk produkcijas. 
# Noklusējums ir 1; nulles vērtība izslēdz reģistrēšanu (izņemot kļūdas). 
# Piezīme: šis konfigurācijas mainīgais neietekmē, kamēr SIGHUP nav nokļuvis 
# no palaistās deemona (lai jūs varētu sākt vai pārtraukt reģistrēšanu, kad darbojas). 
log_level = 1 

# Sekojošajās sadaļās ir definēts, kā iegūt 
sistēmas žurnālos ievadīto informāciju . Katram no četriem atbalstītajiem 
# protokoliem ir sadaļa ; pop3, imap, drošs pop un drošs imap. 
# 
# Sadaļu opciju nozīme ir šāda: 
# 
# multi-line - iestatīt uz "1", ja abās IP adresēs un lietotāja ID ir 
# atrasts tajā pašā rindiņā; cits "0".
# dēmons - dēmona nosaukums, kas raksta pirmo rindu, norādot 
#, ka pieteikšanās process ir process. 
# string - pastāvīga virkne, kas notiek kaut kur sākuma līnijā. 
# 
# ip_daemon - dēmons, kas raksta līniju ar IP adresi. 
# ip_string - pastāvīga virkne līnijas identificēšanai. 
# ip_scan - Sscanf (3) -datbilstoša formāta virkne, lai izņemtu 
no līnijas IP adresi. Tam vajadzētu iegūt IP adresi 
# kā vienu virkni, bez apkārtējiem ierobežotājiem vai 
# svešām rakstzīmēm. 
# BRĪDINĀJUMS: ja jūs saņemat šo nepareizu, jūs varat sagraut dēmonu,
# vai SŪKSTEJI, piešķiriet uzbrucējam pilnīgu piekļuvi. 
# 
# user_ * - tas pats, kas aprakstīts ip_ * iepriekš, bet lietotāja ID. 
# 
# fail_daemon - dēmons, kas raksta pieteikšanās kļūmes ziņojumu. 
# 
# fail_string - konstante virkne, kas identificē pieteikšanās kļūdu. 
# 
# Piezīme: pašreizējā laidienā ir tikai parastā konfigurācijas parsētājs, 
# tādēļ pārliecinieties, ka sadaļas sākuma un beigu marķieri 
# "pop {enable 'and'}" katrs atsevišķi ir atsevišķi. 
# Ja kļūdāsiet pareizi vai atstājat gala marķieri, parsētājs 
# ignorēs dažas vai visas sadaļas. 
#
# Lai atspējotu / ignorētu sadaļu, to neizdzēšot, mainiet "ieslēgt" 
# sākuma marķierī, lai to atspējotu. 
# 
# Ja jūs izmantojat vairāk nekā vienu no šīm sadaļām, katrs no tiem apskata 
# katru žurnāla ierakstu tādā secībā, ka tie šeit ir norādīti. 
# 

secure-pop {enable 
   multiline = 1 
   daemon = "stunnel" 
   string = "spop3 savienots no" 

   ip_daemon = "stunnel" 
   ip_string = "spop3 savienots no" 
   ip_scan = "spop3 savienots no% [^:]:% * d" 

   user_daemon = "spop3" 
   user_string = "Ieiet lietotājs =" 
   user_scan = "Ieiet lietotājs =% s uzņēmēja =% * s [% * [^]]]"

   fail_string = "Pieteikšanās mazspēja lietotājs =" 
} 

pop {atslēgt 
   Multiline = 0 
   dēmons = "spop3" 
   string = "Login lietotājs =" 

   ip_daemon = "spop3" 
   ip_string = "pieteikšanās lietotāja =" 
   ip_scan = "pieteikšanās lietotāja =% * s host = % * s [% [^]]] " 

   user_daemon =" spop3 " 
   user_string =" Ieiet lietotājs = " 
   user_scan =" Ieiet lietotājs =% s saimniekdators =% * s [% * [^]]] " 

   fail_daemon =" spop3 " 
   fail_string = "Pieteikšanās kļūme lietotājs =" 
) 

---- beigu ----

Paraugs Postfix main.cf

Tiem, kas ir mazāk pazīstami ar Postfix konfigurāciju, šeit ir paraugs main.cf, kas darbojas. Izpētiet to rūpīgi un vai nu modificējiet savu esošo konfigurāciju, vai pielāgojiet šo paraugu atbilstoši savai situācijai. Dokumentāciju skatiet vietnē www.postfix.org .

--- sākt --- 
# globālo Postfix konfigurācijas failu 

# kur viss dzīvo šajā sistēmā. 
queue_directory = / var / spool / postfix 
komandu_direktorija = / usr / sbin 
daemon_directory = / usr / libexec / postfix 
virtual_maps = hash: / etc / postfix / virtuālā 
relocated_maps = hash: / etc / postfix / relocated 
transport_maps = hash: / etc / postfix / transport 
alias_maps = hash: / etc / postfix / aliases 
alias_database = hash: / etc / postfix / aliases 

# Identifikācija - lietotājs, resursdatora nosaukums, tīkli. 
mail_owner = postfix 
myhostname = mail.domain.tld 
mynetworks = 127.0.0.0/8, 192.168.1.0/24 
inet_interfaces = visi 
myorigin = $ myhostname
mydestination = $ myhostname, localhost. $ mydomain, $ mydomain 
relay_domains = $ mydestination 
masquerade_domains = $ mydomain 
masquerade_exceptions = root 

# pārbaudīti melnie saraksti pirms ienākošās pasta pieņemšanas. 
maps_rbl_domains = relays.ordb.org, relays.osirusoft.com 

# Ierobežojumi, kuriem atļauts pieslēgties. 
smtpd_client_restrictions = permit_mynetworks, 
  check_recipient_access hash: / etc / postfix / recipient_access, 
  check_client_access hash: / etc / postfix / pop-before-smtp, 
  check_sender_access hash: / etc / postfix / sender_access, 
  reject_invalid_hostname, 
  reject_non_fqdn_hostname, 
  reject_unknown_client, 
  reject_maps_rbl, 
  check_relay_domains

# Ierobežojumi, kas tiek pieņemti POSTĀ NO: komanda. 
smtpd_sender_restrictions = permit_mynetworks, 
  check_recipient_access hash: / etc / postfix / recipient_access, 
  check_sender_access hash: / etc / postfix / sender_access, 
  reject_non_fqdn_sender, 
  reject_unknown_sender_domain, 
  permit 

# Ierobežojumi, kas tiek pieņemti RCPT TO komandā. 
smtpd_recipient_restrictions = permit_mynetworks, 
  check_recipient_access hash: / etc / postfix / recipient_access, 
  check_client_access hash: / etc / postfix / pop- 
  up -smtp, reject_non_fqdn_recipient, 
  reject_unauth_pipelining, 
  check_relay_domains 

# satura ierobežojumi.
header_checks = regexp: / etc / postfix / regex-header-checks 

# Daži uzvedības ierobežojumi. 
biff = no 
disable_vrfy_command = jā 
local_destination_concurrency_limit = 2 
default_destination_concurrency_limit = 10 
message_size_limit = 10240000 
delay_warning_time = 4 
smtpd_banner = $ myhostname ESMTP 

---- End ----

Copyright © 1996, 2017 Marcus Redivo.