Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Soulstealer в Jul 28, 2005, 11:59



Титла: popa3d
Публикувано от: Soulstealer в Jul 28, 2005, 11:59
Добър ден :)

Питах се дали някой не се е занимавал с popa3d...
Опитах се да го пусна, ама нещо май не работи както трябва...
чета от тук:
Създаване на виртуални пощенски кутии с popa3d и postfix
уж всичко става както трябва
но като се опитам да пратя mail от abv.bg примерно и ми се връща следното:
Примерен код
This is the Postfix program at host ns2.netinfo.bg.

I'm sorry to have to inform you that the message returned
below could not be delivered to one or more destinations.

For further assistance, please send mail to <postmaster>

If you do so, please include this problem report. You can
delete your own text from the message returned below.

The Postfix program

<test@domain.name>: host ns.domain.name[ip.add.re.ss] said: 550 relaying to
<test@domain.name> prohibited by administrator (in reply to RCPT TO
command)

а като се опитам да се вържа към pop3 сървъра чрез outlook express ми казва, че ми е грешна паролата...
помислих си, че е заради правата на файла дето е в /home/virtual/popa3d/127.0.0.1/auth
понеже собственика и групата му са root и има права само за четене и писане от собственика
направих
chmod 644 /home/virtual/popa3d/127.0.0.1/auth/test
но пак не стана
някой да има идея ?

мерси ;)


Титла: popa3d
Публикувано от: vlad73 в Jul 28, 2005, 14:55
а до твоя postfix стигат ли писмата?
той какво казва?
По-меродавно ми се види съдържанието на /var/log/maillog, отколкото на това съобщение за грешка, освен това преди да почнеш да усложняваш нещата с други сървъри, първо пробвай вътрешно да прехвърляш поща между потребители на сървъра и следи логовете, много полезни неща срещнах докато мъчех пощата. popa3d е доста лекичък и ми допадна, въпреки, че се спрях все пак на cyrus imap.

Иначе съобщението за грешка (prohibited by administrator (in reply to RCPT TO
command)) ми изглежда да е по-скоро свързано с отхвърляне на писмото от твоя postfix отколкото с popa3d.


Титла: popa3d
Публикувано от: Soulstealer в Jul 28, 2005, 15:20
Прав си, но всъщност те проблемите са независими :)
единия проблем е ,че пощата не може да достигне моя postfix, а отделно от това pop3-то не ми приема паролата...
ето сега ще спра postfix, ще изтрия съдържанието на /var/log/maillog после ще пусна postfix и ще си пратя mail от abv.bg


Титла: popa3d
Публикувано от: Soulstealer в Jul 28, 2005, 15:26
Примерен код
root@mailserver:~# tail /var/log/maillog
Jul 28 15:18:02 mailserver postfix/postfix-script: starting the Postfix mail system
Jul 28 15:18:02 mailserver postfix/master[5181]: daemon started -- version 2.2.5, configuration /etc/postfix
root@mailserver:~#

някаква идея?


Титла: popa3d
Публикувано от: Soulstealer в Jul 28, 2005, 15:29
Примерен код
root@mailserver:~# tail /var/log/maillog
Jul 28 15:18:02 mailserver postfix/postfix-script: starting the Postfix mail system
Jul 28 15:18:02 mailserver postfix/master[5181]: daemon started -- version 2.2.5, configuration /etc/postfix
Jul 28 15:23:52 mailserver postfix/smtpd[8778]: warning: database /etc/postfix/vmailbox.db is older than source file /etc/postfix/vmailbox
Jul 28 15:23:52 mailserver postfix/smtpd[8778]: connect from unknown[85.196.182.22]
Jul 28 15:23:52 mailserver postfix/trivial-rewrite[8780]: warning: do not list domain lannetbg.com in BOTH mydestination and virtual_mailbox_domains
Jul 28 15:23:52 mailserver postfix/trivial-rewrite[8780]: warning: do not list domain lannetbg.com in BOTH mydestination and virtual_mailbox_domains
Jul 28 15:23:52 mailserver postfix/smtpd[8778]: NOQUEUE: reject: RCPT from unknown[85.196.182.22]: 550 <off@lannetbg.com>: Recipient address rejected: User unknown in local recipient table; from=<test2@lannetbg.com> to=<off@lannetbg.com> proto=SMTP helo=<laptop>
Jul 28 15:23:52 mailserver postfix/smtpd[8778]: disconnect from unknown[85.196.182.22]
root@mailserver:~#

Това е след като си пратих mail от test2@lannetbg.com до off@lannetbg.com
Но това е може би, защото съм закоментирал mydomain и myorigin в main.cf


Титла: popa3d
Публикувано от: vlad73 в Jul 28, 2005, 17:45
Цитат (Soulstealer @ Юли 28 2005,16:29)
Но това е може би, защото съм закоментирал mydomain и myorigin в main.cf

да така е, все пак postfix-a приема само поща дето си е за него ли изрично си му казал нерщо за нея (backup mx например) :)


Титла: popa3d
Публикувано от: Soulstealer в Jul 28, 2005, 17:56
Става въпрос за локалния трансфер
не мога да пращам към локални пощенски кутии
иначе на теб мога да ти пратя примерно
изпращането на поща не е болка
болката е, че не може да получава...
и не мога да разбера защо
сложих му myorigin и mydomain
и дори сложих local_recipient_maps да е празно
и сега като пращам поща локално и bounce-ва


Титла: popa3d
Публикувано от: vlad73 в Jul 28, 2005, 18:06
Цитат (Soulstealer @ Юли 28 2005,18:56)
Става въпрос за локалния трансфер
не мога да пращам към локални пощенски кутии
иначе на теб мога да ти пратя примерно
изпращането на поща не е болка
болката е, че не може да получава...
и не мога да разбера защо
сложих му myorigin и mydomain
и дори сложих local_recipient_maps да е празно
и сега като пращам поща локално и bounce-ва

идеята е, че ти позволява да изпратиш поща накъдето и да е, ако си в mynetworks, но не приема поща, ако не е описано в *_recipient_maps

по подразбиране local_recipient_maps ползва mydomain, като го сложиш да е празно изчистваш дефолта, коментирай този ред

поогледай документацията на постфикса, има доста полезни неща там, а така няма да стане, все пак main.cf има над 300 параметъра
аз ползвам този мирър, който е направил и стопанисва Mирончо:
http://postfix.mironcho.homelinux.net/


Титла: popa3d
Публикувано от: Soulstealer в Aug 11, 2005, 17:30
Добре ... разбрах, че до сега имах проблем с DNS-a оправих го вече. Сега като си пращам поща от abv.bg не ми се връща никаква грешка, но като гледам
tail -f /var/log/maillog
нищо не се случва...
и нямам и нищо в /home/virtual/popa3d/127.0.0.1/mail
не е нищо де, ама не е това дето трябва
има само празен файл на потребителя, който съм създал
...не мога да разбера какво става...
Примерен код
root@mailserver:~# nmap localhost

Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2005-08-11 17:26 EEST
Interesting ports on localhost (127.0.0.1):
(The 1658 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
37/tcp  open  time
110/tcp open  pop3
113/tcp open  auth

Nmap run completed -- 1 IP address (1 host up) scanned in 0.826 seconds
root@mailserver:~#

демоните работят...


Титла: popa3d
Публикувано от: alabal в Aug 11, 2005, 23:47
Пусни си лога на мейла и пробвай така:

Цитат

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.e-dnrs.org ESMTP Postfix
helo a.com
250 mail.e-dnrs.org
mail from:a@a.com
250 Ok
rcpt to:hostmaster@e-dnrs.org
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Test
.
250 Ok: queued as 2DC70326BB
quit
221 Bye
Connection closed by foreign host.

(Разбира се тук ти ще зададеш твои параметри и твои потребители. Ако искаш д авидиш какво ополучават, изпращат лоцалните потребители - инсталирай си mutt - това дава идеи)
И гледай много внимателно какво казва лога.

Виж какво ти връща лога. Освен това с какво пазиш информацията за виртуалните потребители? Я дай конфигурационен файл. Имаш ли конфигурирани в /etc/postfix файлове които да указват как pop3 да "извади" информация от базата данни?

Ето и едно howto което гарантирано работи и под Debian и под Gentoo: http://workaround.org/articles/ispmail-sarge/
хмм сега видях че в хаутуто което посочваш няма база данни, но все пак дай малко конфигурационни файлове.


Титла: popa3d
Публикувано от: Soulstealer в Aug 12, 2005, 00:24
Ето това ми е конфигурацията на postfix:
Примерен код
root@mailserver:~# cat /etc/postfix/main.cf |grep -v "^#"
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = mail.domain.name
mydomain = mail.domain.name
myorigin = $mydomain
inet_interfaces = ip.add.re.ss
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
        mail.$mydomain, www.$mydomain, ftp.$mydomain
local_recipient_maps =
unknown_local_recipient_reject_code = 550
mynetworks = my.ne.tw.ork/22, 127.0.0.0/8
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail
virtual_transport = virtual
virtual_mailbox_base = /home/virtual/popa3d/127.0.0.1/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_mailbox_domains = hash:/etc/postfix/vmaildomains
virtual_minimum_uid = 100
virtual_uid_maps = static:1004
virtual_gid_maps = static:12
virtual_alias_maps = hash:/etc/postfix/virtual
debug_peer_level = 2
debug_peer_list = ip.ad.dr.ess
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/man
sample_directory = /etc/postfix
readme_directory = no
root@mailserver:~#

и
Примерен код
root@mailserver:~# cat /etc/postfix/master.cf |grep -v "^#"
ip.add.re.ss:smtp      inet  n       -       n       -       -       smtpd
127.0.0.1:smtp      inet  n       -       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o fallback_relay=
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix  -       n       n       -       -       pipe
  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
cyrus     unix  -       n       n       -       -       pipe
  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
root@mailserver:~#

и ето какво става, ако се опитам да си пратя писмо от abv.bg примерно:
Примерен код
Aug 11 23:41:54 mailserver postfix/virtual[1194]: 8634544BD77: to=<test@domain.name>, relay=virtual, delay=200608, status=deferred (mailbox /home/virtual/popa3d/127.0.0.1/mail/test: cannot open file: Permission denied)


Примерен код
root@mailserver:~# cd /home/virtual/popa3d/127.0.0.1/mail/
root@mailserver:/home/virtual/popa3d/127.0.0.1/mail# ls -l
total 0
-rw-rw----  1 vmail  mail    0 2005-08-11 16:29 test
root@mailserver:/home/virtual/popa3d/127.0.0.1/mail#


Примерен код
root@mailserver:~# id vmail
uid=1004(vmail) gid=12(mail) groups=12(mail),105(popa3d)
root@mailserver:~#

Уж го правя както са написали Мирончо и Н. Антонов, ама нещо не става... :(


Титла: popa3d
Публикувано от: alabal в Aug 12, 2005, 14:56
Братко, притесняват ме някои  неща. Първо,
документа който цитираш е от 2003 г., от тогава мисля, че има доста промени. Второ, въпросът ти защо postfix не праща писма на локални потребители се оняснява с:
 
Цитат
local_recipient_maps =
- това забранява доставянето на писма за тях - т.е. при mydestination= .... localhost ще доставя само на тези които са виртуални потребители.
Третото което ме притеснява е aliases - в main.cf - ако използваш оригиналния файл подробно е обяснено какво значи aliases и какво е aliasesdb - доста е полезно като информация.
Трябва да има файл aliases.db - т.е. системата трябва да си създаде dbm файл, т.е. изпълни превантивно:
#aliases (или както е при Gentoo - newaliases)
Четвърто - все пак aliases се отнася за локални потребители, докато ти използваш (и в лога ти е показан виртуален потребител test). Как създаде потребителя test?
Лично аз използвах следното при създаване на потребители (като изключим факта, че използвам mysql):
Цитат
Your system can hold mailboxes for thousands of users. You probably do not want to assign a unique UID (user ID) to every user. So I recommend you create a pseudo-user who will become the owner of all mailboxes.

Just enter these lines in a root shell:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m

ето и тази директория:
Цитат
ls -al /home/vmail/
total 13
drwxr-xr-x   3 5000 5000  168 Jul 17 21:00 .
drwxr-xr-x  19 root root 1016 Jul 27 18:14 ..
-rw-r--r--   1 5000 5000  240 Jul 17 20:42 .bash_logout
-rw-r--r--   1 5000 5000  308 Jul 17 20:42 .bash_profile
-rw-r--r--   1 5000 5000 1301 Jul 17 20:42 .bashrc
drwx------  18 5000 5000  440 Aug  8 23:36 e-dnrs.org


Дано с нещо да съм помогнал.


Титла: popa3d
Публикувано от: Soulstealer в Aug 12, 2005, 17:50
Първо. Знам, че документа е стар, но не можах да намеря по-нов.
Второ. Това за локалните потребители вече ми е ясно, пък и не ми е болка.
Трето. Какво по-точно те притеснява в aliases?
Четвърто. Потребителя тест го създадох със perl скрипта add-popa3d-user, като преди това го patch-нах за postfix support (което всъщност само ми икономисва малко писане(самия patch)).
Пето. Какво мислиш за първите четири ? :)
Шесто. Изглежда, че нещата трябва да се решат във virtual таблицата, но не ми е ясно как точно...
Седмо. Защо подяволите не мога да се "authenticate-на" на ши*ания pop3 сървър? Не ми приема паролата...
Осмо. Мерси за вниманието ;)
Девето. Бях направил
Примерен код
iptables -A INPUT -s ! my.net.wo.rk -p tcp --dport 25 -j DROP

и се чудя защо не мога да получавам писма :)


Титла: popa3d
Публикувано от: Soulstealer в Aug 16, 2005, 09:43
Добре, реших си проблемите с доставката на писмата до пощенските кутии, сега остана само един проблем, а именно pop3 сървъра не ми приема паролите... Това не мога да разбера защо е... Някой дали може да ми помогне ?
мерси :)


Титла: popa3d
Публикувано от: vlad73 в Aug 16, 2005, 10:42
ти като кой се представяш пред въпросния pop3 server?
като test или като test@mydomain?

popa3d нямаше ли някакво файлче в home директорията дето да съхранява даните на виртуалните юзери, нещо любопитно там?

прегледай и /var/log/messages и /var/log/maillog за интересни нещица, в момента не мога да се сетя в кой от 2-та файла пише popa3d


Титла: popa3d
Публикувано от: Soulstealer в Aug 16, 2005, 14:56
Ами представям се и по двата начина. Това което виждам в /var/log/messages e
Примерен код
Aug 16 14:42:31 mailserver popa3d[31959]: Authentication failed for UNKNOWN USER

това е за всеки път, който се опитам да се authenticate-на...
Това ми е в params.h
Примерен код
#define AUTH_SHADOW                     1

а това в Makefile-a
Примерен код
LIBS += -lcrypt

някаква идея ? :)


Титла: popa3d
Публикувано от: в Aug 16, 2005, 15:40
VIRTUAL_ONLY беше ли "1" при компилацията?
защото ако е било, "AUTH_SHADOW" не мисля, че се взема под внимание (сега свалих popa3d и разгледах param.h).
А и останах с впечатление, че AUTH_SHADOW ползва директно /etc/shadow, т.е. трябва ти реално съществуващ юзер test.
Огледай директорията за пощата, там трябва да имаш две поддиректории - auth/ и mail/, виж в auth/ дали има нещо относно test, естествено в mail/ трябва да откриеш пощата му и ако те гложди какво си си написал - можеш да го прочетеш  ;)


Титла: popa3d
Публикувано от: Soulstealer в Aug 16, 2005, 16:41
Ето това ми е целия params.h
Примерен код
#ifndef _POP_PARAMS_H
#define _POP_PARAMS_H
#define POP_SERVER                      "popa3d"
#define POP_STANDALONE                  0
#if POP_STANDALONE
#define POP_OPTIONS                     1
#define DAEMON_ADDR                     "0.0.0.0"       /* INADDR_ANY */
#define DAEMON_PORT                     110
#define DAEMON_LIBWRAP                  0
#if DAEMON_LIBWRAP
#define DAEMON_LIBWRAP_IDENT            POP_SERVER
#endif
#define MAX_SESSIONS                    500
#define MAX_SESSIONS_PER_SOURCE         50
#define MAX_BACKLOG                     5
#define MIN_DELAY                       10
#endif
#define POP_VIRTUAL                     1
#if POP_VIRTUAL
#define VIRTUAL_HOME_PATH               "/home/virtual/popa3d/"
#define VIRTUAL_AUTH_PATH               "auth"
#define VIRTUAL_SPOOL_PATH              "mail"
#define VIRTUAL_ONLY                    1
#else
#define VIRTUAL_ONLY                    0
#endif
#define POP_USER                        POP_SERVER
#define POP_CHROOT                      "/var/empty"
#define POP_TIMEOUT                     (10 * 60)
#define POP_SUPPORT_LAST                1
#define MAX_MAILBOX_MESSAGES            2097152
#define MAX_MAILBOX_OPEN_BYTES          2147483647
#define MAX_MAILBOX_WORK_BYTES          2147483647
#if !VIRTUAL_ONLY
#define AUTH_PASSWD                     0
#define AUTH_SHADOW                     1
#define AUTH_PAM                        0
#define AUTH_PAM_USERPASS               0
#define USE_LIBPAM_USERPASS             0
#if AUTH_PAM || AUTH_PAM_USERPASS
#define AUTH_PAM_SERVICE                POP_SERVER
#endif
#endif
#if POP_VIRTUAL || AUTH_PASSWD || AUTH_SHADOW
#define AUTH_DUMMY_SALT                 "xx"
#endif
#define AUTH_FAILED_MESSAGE             "Authentication failed (bad password?)"
#if !VIRTUAL_ONLY
#define MAIL_SPOOL_PATH                 "/var/mail"
#ifndef MAIL_SPOOL_PATH
#define HOME_MAILBOX_NAME               "Mailbox"
#endif
#endif
#define LOCK_FCNTL                      1
#define LOCK_FLOCK                      0
#define SYSLOG_IDENT                    POP_SERVER
#define SYSLOG_OPTIONS                  LOG_PID
#define SYSLOG_FACILITY                 LOG_DAEMON
#define SYSLOG_PRI_LO                   LOG_INFO
#define SYSLOG_PRI_HI                   LOG_NOTICE
#define SYSLOG_PRI_ERROR                LOG_CRIT
#define POP_BUFFER_SIZE                 0x80
#define AUTH_BUFFER_SIZE                (2 * POP_BUFFER_SIZE)
#if POP_VIRTUAL
#define VIRTUAL_AUTH_SIZE               0x100
#endif
#define FILE_BUFFER_SIZE                0x10000
#define RETR_BUFFER_SIZE                0x8000
#define LINE_BUFFER_SIZE                0x20
#endif

Иначе е ясно за тези две директории, нали аз съм ги създал...
в директорията auth има файл на име test и той съдържа следното:
Примерен код
vmail:$1$22535067$itnu1ZoeOq.3UD0EkEOu81::

А що се отнася до директорията mail там е mailbox файла за този потребител
ако искаш прочети тук, за да разбереш какво точно съм направил


Титла: popa3d
Публикувано от: Soulstealer в Aug 16, 2005, 16:57
Пробвах и с реален потербител и пак е същото...


Титла: popa3d
Публикувано от: vlad73 в Aug 16, 2005, 18:16
Това през inetd (xinetd) ли го стартираш?
Не знам дали има някаква разлика при authentication, но аз само като standalone service съм го пробвал, а гледам, че POP_STANDALONE ти е 0.
Иначе нормално да не става с реален потребител, VIRTUAL_ONLY ти е "1" и #define AUTH_SHADOW  1 не играе.
Eдна тъпа идея: виж дали юзера с който се стартира popa3d  има права да прави нещо в /var/empty и mail, както и поне да чете в auth.

Успех!


Титла: popa3d
Публикувано от: Soulstealer в Aug 17, 2005, 13:50
Стартирам го през inetd като root
а какво ще рече
Цитат
#define AUTH_SHADOW  1 не играе.
?


Титла: popa3d
Публикувано от: vlad73 в Aug 17, 2005, 16:15
ами погледни в param.h
аз не съм много силен в C, но мисля, че тази конструкция ще се изпълни при VIRTUAL_ONLY=0
Примерен код

#if !VIRTUAL_ONLY
#define AUTH_PASSWD                     0
#define AUTH_SHADOW                     1
#define AUTH_PAM                        0
#define AUTH_PAM_USERPASS               0
#define USE_LIBPAM_USERPASS             0
#if AUTH_PAM || AUTH_PAM_USERPASS
#define AUTH_PAM_SERVICE                POP_SERVER
#endif
#endif


мисля, че това и е идеята - ако искаш само виртуални кутии да не се интересува от реалните юзери

За идеи къде е ключа от бараката се поизчерпах, мен ситуацията със стартирането като root не ми допада много, но не вярвам тя да е проблема, иначе мога тези дни ако остане време да пробвам вкъщи ситуацията и ако постигна нещо ще свиркам.
Ако не ти е голям проблем, защо не  пробваш да го прекомпилираш като stand-alone service? Аз така го правих, вижда ми се по-добро от това да се стартира през друга услуга.


Титла: popa3d
Публикувано от: Soulstealer в Aug 17, 2005, 23:44
Ако искаш да кажеш, че блока след if ще се изпълни при VIRTUAL_ONLY=0 - да прав си. Аз обаче все още не виждам какъв му е проблема на тоя popa3d ... та дори да го направа standalone ...
Иначе ако ти се занимава да пробваш и ти, ще се радвам :)
мерси! :)