Sziasztok!
A múlt héten volt egy olyan problémám, hogy a systemd-login.d betöltése nem sikerült egy levelező szerver újraindítás után. Ez miatt nem indult el a postfix. Próbáltam megjavítani, de elég kilátástalannak tűnt a helyzet ezért egy új merevlemezre újra telepítettem egy virtual domain-es levelező rendszert. Az eredeti szerverből kivettem a /var kötetet. Mielőtt felmountoltam volna ellenőríztem az uid-kat, és a gideket. Ahol eltérés volt a régi szerver és az új között, ott minden uid-t és gid-et beállítottam úgy, ahogy a régi szerveren volt. Beigazítottam a file-ok és a könyvtárak jogosultságait. Ezután felmountoltam a régi /var kötet az új szerverben. Pár dolgon apróbb változtatások kellettek, de nagyjábol minden megy.
Egy valamivel viszont gondom van, a sendmail-el. Az akarmi@akarmi.hu usernek sieve-vel be van állítva, hogy automatikusan válaszoljon az e-mailre, ami neki jön. A mail.logban ezt látom:
Jun 22 14:44:12 host dovecot: lda(akarmi@akarmi.hu): Fatal: execv(/usr/sbin/sendmail) failed: Permission denied
Jun 22 14:44:12 ujmx4 host: lda(akarmi@akarmi.hu): Error: Sendmail process terminated abnormally, exit status 75
Jun 22 14:44:12 ujmx4 host: lda(akarmi@akarmi.hu): Error: sieve: msgid=<30dfd1a2-343e-bdd8-6f5a-f71b87d393e4@akarmi.hu>: failed to send vacation response to <valaki@valami.hu> (refer to server log for more information)
A sendmail jogosultságai a következők:
root@host:/var/spool/postfix# ls -l /usr/sbin/sendmail
-rwxr-xr-x 1 root root 26680 ápr 29 2017 /usr/sbin/sendmail
Ezek szerint mindenkinek van jog futtatni a sendmail-t. Parancssorból root-tal tudok e-mail-t küldeni sendmail segítségével, de sima mezei userként nem.
A /usr/sbin/postfix set-permissions-t már lefuttatam. Van valakinek még ötlete?
Köszi!
Hozzászólások
ACL?
Apparmor/selinux? OS?
Debian 8 az OS. Apparmor/selinux nincs. ACL se:
root@host:~# getfacl /usr/sbin/sendmail
getfacl: Removing leading '/' from absolute path names
# file: usr/sbin/sendmail
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
Vigyázz mert ebben a hónapban lejár az LTS támogatása. Meghekkelnek!!!!4444
Adj az other-nek teljes jogot, ne csak futtatasit (rwx).
Sőt, játszd le RealMedia(tm) lejátszóval! (gy: rm /usr/sbin/sendmail)...
Hmm? Nálam gyárilag így van a rendszeren, nem véletlenül mondtam, mi nem tetszik?
Egy root tulajdonában levő exe, amibe bárki beleírhat??? You must be kiddin'...
Parancsolj:
ll /usr/sbin/sendmail
lrwxrwxrwx. 1 root root 21 Apr 28 09:13 /usr/sbin/sendmail -> /etc/alternatives/mta
Soha nem nyultam hozza, igy telepult (CentOS).
De megneztem egy masik szerveremen is, detto (szinten CentOS):
ll /usr/sbin/sendmail
lrwxrwxrwx. 1 root root 21 May 27 16:28 /usr/sbin/sendmail -> /etc/alternatives/mta
Kivancsisagbol megneztem egy ceges RHEL-t is (csak RHEL-alapu szerverekkel dolgozom), nyilvan pontosan ugyanigy van. Szoval ez a default, gyari telepites, igy meg egyszer, pontosan mi is a problema? Nem veletlenul telepul igy, nem az elvvel vitatkozom, amit mondasz, de ismet, ez a default.
Azok a link jogai, nézd meg az /etc/alternatives/mta jogait, ha a valóságra vagy kíváncsi
Tisztaban vagyok vele, raadasul az is csak egy symlink, a valodi, amire a /etc/alternatives/mta mutat, a sendmail.postfix az ez:
ll /usr/sbin/sendmail.postfix
-rwxr-xr-x. 1 root root 247920 Apr 1 06:09 /usr/sbin/sendmail.postfix
Attol meg a hivatkozott /usr/sbin/sendmail ugy nez ki, amit leirtam.
> Attol meg a hivatkozott /usr/sbin/sendmail ugy nez ki, amit leirtam.
Itt valami zavar van az Erőben, a topiknyitóban ez még nem volt szimlink.
Nincs zavar, az o altala hivatkozott sendmail az _en_ szervereimen igy neznek ki. :)
Háttöö.. na.
A link jogai nem állíthatóak, az fixen 777.
A binárisé állíthatóak.
Ha azt tanácsolod, hogy más a bináris jogait a te linkednek megfelelően állítsa mindenki számára írhatóvá, akkor... akkor inkább ne adjál tanácsot másnak, ha javasolhatom. Bocs a kendőzetlen véleményemért, de ez azért "vak vezet világtalant" kategória.
Na, ma is tanultam valamit, koszi (nem tudtam, hogy a symlink default 777-et kap), tenyleg. Akkor marad a konfig-jogosultsag elteres.
De tenyleg, en azon lepodtem meg, hogy epeszu, nem felcedulas ember azt mondja, hogy az othernek adj irasi jogot. Ezert a legenyhebb helyen is kotel altali fobeloves jar...
Blog | @hron84
via @snq-
OT:
> A link jogai nem állíthatóak, az fixen 777.
Azért vannak oprendszerek, ahol igen :-) chmod - különösen a -h opciót javasolnám figyelmedbe. (OK, kb nulla értelme van, csak hogy ne lepődj majd meg.)
/OT
$ ll la li
-rw-r--r-- 1 zgabor zgabor - 12762 jún. 22 21:11 la
lrwxr-xr-x 1 zgabor zgabor - 2 jún. 22 21:21 li@ -> la
$ chmod g+w li
$ ll la li
-rw-rw-r-- 1 zgabor zgabor - 12762 jún. 22 21:11 la
lrwxr-xr-x 1 zgabor zgabor - 2 jún. 22 21:21 li@ -> la
$ chmod -h o+w li
$ ll la li
-rw-rw-r-- 1 zgabor zgabor - 12762 jún. 22 21:11 la
lrwxr-xrwx 1 zgabor zgabor - 2 jún. 22 21:21 li@ -> la
$
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
Off: aminek esetleg van értelme, az az, hogy szimlink dátumát (mdate) hozzáigazítjuk a tényleges file dátumához.
Attól még úgy néz ki, csak érvként az ügyben, hogy hogyan milyen jogokkal van telepítve a sendmail irreleváns, mint lentebb írták.
Szóval for the record a többieknek, épp itt mutatod, hogy a valódi sendmailt nem lehet írni nem rootnak, mert nincs rajta írási joga a rooton kívül másnak.
Köszi, sokat segítettél...
Igen ez számomra is világos, hogy több mint veszélyes.
Nem lehetséges, hogy a conf fájlok jogaival van probléma és sima felhasználóként nem férsz hozzájuk?
strace-vel megneznem, hogy pontosan mihez nem fer hozza.
Megnéztem az strace-el a sendmait. A lenti fájlokat akarja megnyitni. Egyesével leellenőriztem. Mind megvan, és mind olvasaható bárki által. Esetlrg más meg tudok még nézni az strace-szel?
root@host:~# strace -e open sendmail
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/libpostfix-global.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/libpostfix-util.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libsasl2.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libdb-5.3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
open("/etc/postfix/main.cf", O_RDONLY) = 4
open("/etc/postfix/dynamicmaps.cf", O_RDONLY) = 4
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 4
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
open("/lib/x86_64-linux-gnu/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = 4
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
open("/lib/x86_64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 4
open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 4
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
Mondjuk userként nézz meg egy küldést strace-val :) Ne root-al amire azt írtad, hogy megy.
De ahogy itt lentebb is írták, itt a dovecot LDA cucc akarja hívogatni a sendmailt. Viszont dovecot /var * alól használ elég sok dolgot, ott tuti jók lettek a beállítások UID/GID és egyéb jogosultságok ?
Mert ha jól értem, akkor a régi rendszerből hozott /var* -t úgy ahogy van becsatoltad az új rendszer alá. Itt azért szerintem mászkálhattak el permissionök erre-arra. De csak tipp.
pl /var/spool/* (postfix elsősorban) jogoknál szétnéznék, esetleg /var/run/* egyebek.
Esetleg dovecot loglevel növelés, bár az nem sokat segít ebben az esetben. Többi logba is szétnézni, nem csak a mail.log-ba. Hátha mégis van valahol valami selinux/apparmor/francsetudjami.
chroot* nem kavarhat bele ?
Más ötlet nincs.
strace-szel
Azt a futást kell debuggolni, ami nem megy. Ha az mondjuk egy démon(ból indul), akkor pl:
starce -fp <pidofdemon>
Parancssorból root-tal tudok e-mail-t küldeni sendmail segítségével, de sima mezei userként nem.
Valószínű a használt disztribúciód/MTA-d alapbeállítása az, hogy csak a rootnak engedi meg, hogy levelet küldjön authentikáció nélkül. Mindenki más meg menjen szépen az SMTP portra, és authentikáljon. Ezt jó eséllyel valami fájl/könyvtárjogosultságokkal éri el.
a) opció, hogy megkeresed, ez a beállítás hol van, és kikapcsolod, azaz minden felhasználónak megengeded a gépeden, hogy küldjön levelet (tipikusan ezt egy setuid root vagy setgid valamilyen group beállítással szokták megoldani)
b) opció, hogy nem általánosan kapcsolod ki, hanem csak annak a usernek, akinek a nevében fut a küldő processz a dovecot alatt (ez azért trükkösebb feladat lehet)
c) opció, hogy csinálsz erre a célra egy SMTP felhasználót, és a dovecot-nak egy olyan sendmail binárist adsz, amelyik SMTP-n keresztül akarja kiküldeni a levelet, a megadott felhasználóval és jelszóval bejelentkezve
Nem akarok izé lenni de nem a dovecot mondta hogy nem lehet neki sendmail-t futtatni? Gondolom a hostnév azért az mert az is fut rajta. abból másik verzióval próbálkoztál már?
Jun 22 14:44:12 host dovecot: lda(akarmi@akarmi.hu): Fatal: execv(/usr/sbin/sendmail) failed: Permission denied