[Postfix] Fout die ik niet ontdek

Pagina: 1
Acties:

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Hallo allemaal... waarschijnlijk heeft dit voor sommigen een hoog FAQ-gehalte, maar toch stel ik de vraag omdat:
* Ik de handleidingen heb gelezen, 3 dagen heb zitten kloten en er niet uit kom
* Ik mijn probleem niet duidelijk tegenkom in documentatie, die ik nu zoveel gezien heb dat ik er toch overheen zou lezen als het er wel stond.

Mijn probleem is simpel... Postfix start niet doordat mijn config-file niet wordt gepakt. Er zit een fout in, maar ik vindt hem niet |:(

Ik wil een email-server, die uiteindelijk voor beumer.xs4all.nl mail gaat ontvangen (in deze config nog bart-workstation). Alle mailboxes worden virtueel als het kan. Het is de bedoeling dat deze gegevens in een MySQL-database komen te staan.
Ik ga Courier IMAP gebruiken om de gebruikers in staat te stellen hun mail te lezen. In een later stadium kan dit ook met squirrelmail gaan gebeuren (webmail).

mijn /etc/postfix/main.cf config file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# LOCAL PATHNAME INFORMATION
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix

# QUEUE AND PROCESS OWNERSHIP
mail_owner = postfix
#default_privs = nobody

# INTERNET HOST AND DOMAIN NAMES
myhostname = bart-workstation
mydomain = bart-workstation

# SENDING MAIL
myorigin = $myhostname

# RECEIVING MAIL
inet_interfaces = all
mydestination = $myhostname

# TRUST AND RELAY CONTROL
mynetworks = 192.168.1.0/16

# DELIVERY TO MAILBOX
home_mailbox = /var/mailboxes/
mail_spool_directory = /var/spool/mail/

# SHOW SOFTWARE VERSION OR NOT
smtpd_banner = $myhostname ESMTP $mail_name

# PARALLEL DELIVERY TO THE SAME DESTINATION
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 5

# DEBUGGING CONTROL
debug_peer_level = 2

debugger_command =
     PATH=/usr/bin:/usr/X11R6/bin
     xxgdb $daemon_directory/$process_name $process_id & sleep 5

# BART VIRTUALS
local_transport = virtual
virtual_mailbox_base = /
virtual_uid_maps = mysql:/etc/postfix/uids.cf
virtual_gid_maps = mysql:/etc/postfix/gids.cf
virtual_maps = mysql:/etc/postfix/mysql_virt.cf

ik heb dus alleen virtuele users.

mijn /etc/postfix/gids.cf config file:
code:
1
2
3
4
5
6
7
user = postfix
password = DiTis1W8tWoOrD
dbname = SERV_mailconfig
table = users
select_field = gid
where_field = id
hosts = localhost

mijn /etc/postfix/uids.cf config file:
code:
1
2
3
4
5
6
7
user = postfix
password = DiTis1W8tWoOrD
dbname = SERV_mailconfig
table = users
select_field = uid
where_field = id
hosts = localhost

mijn /etc/postfix/mysql_virt.cf config file:
code:
1
2
3
4
5
6
7
user = postfix
password = DiTis1W8tWoOrD
dbname = SERV_mailconfig
table = users
select_field = maildir
where_field =  id
hosts = localhost

mijn /etc/postfix/master.cf config file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#        (yes)  (yes)   (yes)   (never) (50)
# ==========================================================================
smtp      inet  n   -   n   -   -   smtpd
#smtps    inet  n   -   n   -   -   smtpd
#  -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet    n   -   n   -   -   smtpd
#  -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628      inet  n   -   n   -   -   qmqpd
pickup    fifo  n   -   n   60  1   pickup
cleanup   unix  n   -   n   -   0   cleanup
qmgr      fifo  n   -   n   300 1   qmgr
#qmgr     fifo  n   -   n   300 1   nqmgr
#tlsmgr   fifo  -   -   n   300 1   tlsmgr
rewrite   unix  -   -   n   -   -   trivial-rewrite
bounce    unix  -   -   n   -   0   bounce
defer     unix  -   -   n   -   0   bounce
flush     unix  n   -   n   1000?   0   flush
smtp      unix  -   -   n   -   -   smtp
showq     unix  n   -   n   -   -   showq
error     unix  -   -   n   -   -   error
local     unix  -   n   n   -   -   local
virtual   unix  -   n   n   -   -   virtual
lmtp      unix  -   -   n   -   -   lmtp
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
# The Cyrus deliver program has changed incompatibly.
#
cyrus     unix  -   n   n   -   -   pipe
  flags=R user=cyrus argv=/cyrus/bin/deliver -e -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

Dan nu de Database:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql> use SERV_mailconfig
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_SERV_mailconfig |
+---------------------------+
| users            |
+---------------------------+
1 row in set (0.00 sec)

mysql> describe users;
+----------+----------------------+------+-----+---------+----------------+
| Field    | Type            | Null | Key | Default | Extra     |
+----------+----------------------+------+-----+---------+----------------+
| idnr     | int(11)          | | MUL | NULL    | auto_increment |
| id     | varchar(128)    |    | PRI |    |            |
| password | varchar(128)      |    |     |    |            |
| realname | varchar(128)      |    |     |    |            |
| uid   | smallint(5) unsigned |    |     | 8    |          |
| gid   | smallint(5) unsigned |    |     | 208     |           |
| home     | varchar(128)      |    |     | /    |          |
| maildir  | varchar(255)      |    |     |    |            |
| imapon   | tinyint(3) unsigned  | |     | 1    |          |
+----------+----------------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

Kan iemand aangeven wat ik hier fout doe :? PLZ... Ik heb de handleidingen echt gelezen (anders kom je niet zover). Ik ben op het moment erg murf... S.O.S !

Tips zijn natuurlijk ook welkom... maar eerst het grote probleem.

Owja.... Dit is dus nog mijn workstation. De server op beumer.xs4all.nl die uiteindelijk wordt aangepast draait nog op sendmail. Ik wil eerst mijn config werkende hebben op mijn workstation voordat ik postfix operationeel op de server zet (anders kan ik geen mail ontvangen).

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 13-07 11:42

wiho

Certified Nerd

Hmm... de fout moet dus in main.cf zitten? En postfix geeft zeker geen handig regelnummer mee van de config-regel waar 'ie over valt? :) Ook niet als je postfix met de -v optie start?

Zo op 't oog kan ik weinig vreemds ontdekken. Hoogstens de home_mailbox parameter; ik dacht nl. dat die relatief t.o.v. van de user's homedir moest zijn...

"Pas als het proces gecrashed is, dumpt men de core"


  • wiho
  • Registratie: Februari 2000
  • Laatst online: 13-07 11:42

wiho

Certified Nerd

Wacht ff, ik geloof dat ik iets gevonden heb. Ik vermoed dat je virtual_maps gebruikt hebt waar je eigenlijk virtual_mailbox_maps bedoelde.

De virtual_maps tabel wordt gebruikt om mail gericht aan niet (langer) bestaande users te forwarden naar een andere account.

De virtual_mailbox_maps tabel wordt gebruikt om de locatie van de mailbox file/dir van een user op te zoeken. En gezien de info in mysql_virt.cf is dat wat je bedoelt.

Of zit ik er nu helemaal naast? :)

"Pas als het proces gecrashed is, dumpt men de core"


  • Tachyon
  • Registratie: Januari 2000
  • Laatst online: 13-08 21:24

Tachyon

pop the glock

Wilde gok die er misschien niks mee te maken heeft:

Hier wilde Postfix eens niet starten omdat hij problemen had met myhostname en mydomain. Dat waren, net als in jouw geval, geen volledige hostnames. Door ze te vermelden in /etc/HOSTNAME en /etc/hosts was het opgelost.

If we do not change our direction, we will likely end up where we are heading.


  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
ok... als ik intik postfix -v start krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
..... hele lap .... geen warning en/of err...
postfix: dict_eval_action: type literal buf /etc/postfix context mail_dict "/usr/local/man" recursive
postfix: dict_eval_action: type literal buf no context mail_dict "/etc/postfix" recursive
postfix/postfix-script: warning: not owned by root: /var/spool/postfix
postfix/postfix-script: warning: not owned by root: /etc/postfix/gids.cf
postfix/postfix-script: warning: not owned by root: /etc/postfix/main.cf
postfix/postfix-script: warning: not owned by root: /etc/postfix/master.cf
postfix/postfix-script: warning: not owned by root: /etc/postfix/mysql_virt.cf
postfix/postfix-script: warning: not owned by root: /etc/postfix/uids.cf
/etc/postfix/post-install: /etc/postfix/post-install:: No such file or directory
postfix/postfix-script: warning: unable to create missing queue directories
postfix/postfix-script: fatal: Postfix integrity check failed!
bart-workstation root #

Ik heb virtual_maps veranderd in virtual_mailbox_maps, geeft geen soelaas. de file post-install bestaat wel... alleen onder user ROOT geregistreerd?
Ik heb bart-workstation in mijn hosts en hostname staan.

Dat van die -v optie wissik niet :) maar het lijkt alsof hij niet op de config, maar op iets anders vastloopt. :?

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Die files in /etc/postfix MOETEN dus onder ROOT permissie staan... Dat is nu gefixed :P
ook de andere zaken onder ROOT permissie

nu hou ik over:
code:
1
2
3
4
postfix: dict_eval_action: type literal buf no context mail_dict "/etc/postfix" recursive
/etc/postfix/post-install: /etc/postfix/post-install:: No such file or directory
postfix/postfix-script: warning: unable to create missing queue directories
postfix/postfix-script: fatal: Postfix integrity check failed!

Nu zit hij alleen te zeuren dat postfix-script niet bestaat? Ik zie hem toch echt wel

Verwijderd

Oke, misschien zit ik er wel helemaal naast:

Zijn de permissies van dat script wel in orde?

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
code:
1
2
3
4
5
6
7
8
9
10
-rw-r--r--    1 root     root       134 Jul  9 22:50 gids.cf
-rwxr-xr--    1 root     root      1168 Jul 10 15:54 main.cf
-rw-r--r--    1 root     root      2532 Jul  9 22:33 main.cf~
-rw-r--r--    1 root     root      2746 Jul 10 00:11 main_try.cf
-rw-r--r--    1 root     root      4840 Jul  1 12:17 master.cf
-rw-r--r--    1 root     root       138 Jul  9 22:46 mysql_virt.cf
-rwxr-xr-x    1 root     root     17979 Jul  1 12:17 post-install
-rwxr-xr-x    1 root     root      5425 Jul  1 12:17 postfix-script
drwxr-xr-x    2 root     root      4096 Jul  1 12:17 sample
-rw-r--r--    1 root     root       133 Jul  9 22:49 uids.cf

volgens mij is dat in orde

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 13-07 11:42

wiho

Certified Nerd

De permissies van post-install zijn OK. Het script wordt zo te zien ook gewoon aangeroepen vanuit postfix-script tijdens het opstarten van postfix. Alleen gaat er wat fout tijdens het uitvoeren van post-install.

Probeer eens om met de hand "/etc/postfix/post-install create-missing" uit te voeren en kijk of je dezelfde foutmelding krijgt.

post-install is een gewoon shell-scriptje, dus het moet niet zo moeilijk zijn om de oorzaak van de fout te achterhalen.

"Pas als het proces gecrashed is, dumpt men de core"


  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Nou... dat script deed heel vreemd (vond zichzelf niet :? ) dus ik heb even emerge postfix gedaan. Nu heb ik weer in ieder geval gedaan gekregen dat hij het doet.

EDIT: ik heb er nu een probleem bij. Nu denkt postfix dat hij "bart-workstation.bart-workstation" is :'(

Ik zoek verder....

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
Okee... Het gaat al wat lekkerder. De mail wordt geaccepteerd, en hij ziet nu ook dat het een locale user betreft. echter in het logboek vindt ik:

Jul 10 17:13:03 bart-workstation postfix/virtual[9989]: DB64E274E6: to=<bart@bart-workstation>, relay=virtual, delay=0, status=deferred (recipient bart@bart-workstation: bad uid 8 in virtual_uid_maps)

Nu vondt ik die ID's al vaag... maar wat moet ik er mee? waar kies je de waarden van GID en UID voor uit?

Verwijderd

Om een userid op je systeem te geven en een groupid waaronder bestanden weggeschreven worden.

Tja als jij in je Mysql-tabel een uid definieert dat niet bestaat op je systeem, dan wordt het nogal lastig he ;)

Overigens is "postfix check" er de volgende keer, als je dingen wil laten controleren ;)

  • Bart B
  • Registratie: Juli 2000
  • Laatst online: 06-04 17:55
ik dacht dat ook... moet nog maar eens zoeken. Want de UID en GID die ik heb opgegeven zijn bestaand (UID van mail en GID van postfix).
Ik ben in ieder geval een heel eind.

en ja... ik weet nu wel hoe ik de config moet checken. Je moet je alleen indenken dat je 3 dagen met die dingen heb zitten kloten... dan ben je niet meer zo helder :)
Pagina: 1