> -----Original Message----- > From: [email protected] [mailto:rsyslog- > [email protected]] On Behalf Of George Bonser > Sent: Monday, April 26, 2010 10:52 AM > To: rsyslog-users > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID non-root. > > I think the problem is that it spawns a new thread to load the udp and > tcp modules and that should be done by the main thread so that it gets > done in sequence before the privs are processed.
I think your analysis is right, this is where the race happens. However, the cure is far from being as simple as it sounds: you are actually recommending a full redesign of the input plugin interface. It would also have other implications, including a potential unacceptable startup delay. This is what I quoted with "a lot of work to do". So, unfortunately, it does not look like something I can fix quickly. Let me once again reiterate that the priv drop code is far from being a complete solution. I added the current code when I saw that it was easy to do and useful for some situations. We once had someone who was interested in sponsoring a complete implementation, but that did unfortunately not materialize. As I am currently short on time due to other work to do, I do not find sufficient time to look at this. It is far from being a trivial task, even though I hope to be able to do it without a full redesign. I still think it is 2+ weeks worth of work. Rainer > > > > > -----Original Message----- > > From: [email protected] [mailto:rsyslog- > > [email protected]] On Behalf Of Rainer Gerhards > > Sent: Monday, April 26, 2010 1:37 AM > > To: rsyslog-users > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > non-root. > > > > No problem -- the mailing list processor held it due to size > > constrainst (and > > I rejected it now). The size restriction was actually the prime issue > > why I > > requested it to go to my private mail. So: nothing bad has happened > ;) > > > > I'll try to look at the log asap and let you know what I find. > > > > Rainer > > > > > -----Original Message----- > > > From: [email protected] [mailto:rsyslog- > > > [email protected]] On Behalf Of George Bonser > > > Sent: Monday, April 26, 2010 10:10 AM > > > To: rsyslog-users > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID non- > > root. > > > > > > Oops, sorry, I did not mean to send that attachment to the list. > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:rsyslog- > > > > [email protected]] On Behalf Of Rainer Gerhards > > > > Sent: Sunday, April 25, 2010 11:18 PM > > > > To: rsyslog-users > > > > Subject: Re: [rsyslog] Problem with 4.6.2 TCP binds after UID > > > non-root. > > > > > > > > The privilege drop code is still a hack. It needs proper > > engineering > > > > (as > > > > stated in the doc). So it could very well be a race in this > regard. > > > On > > > > the > > > > other hand, it does not look so. Could you send me complete debug > > > logs > > > > to my > > > > private email address both with and without privilege drop inside > > > your > > > > config. Maybe it is a simple thing, then I could fix it without > the > > > > large > > > > effort really required. > > > > > > > > Rainer > > > > > > > > > -----Original Message----- > > > > > From: [email protected] [mailto:rsyslog- > > > > > [email protected]] On Behalf Of George Bonser > > > > > Sent: Monday, April 26, 2010 2:24 AM > > > > > To: rsyslog-users > > > > > Subject: [rsyslog] Problem with 4.6.2 TCP binds after UID non- > > root. > > > > > > > > > > Can't bind to TCP socket. The tcp module loads but I noticed > > that > > > it > > > > > only tries to bind the socket AFTER it has dropped is privs so > it > > > can > > > > > not bind to a socket less than 1024. UDP bind works as that > > seems > > > to > > > > > bind immediately after module load while the prog is still > > running > > > as > > > > > root. If I set a tcp port >1024, it works. Could this be a > race > > > > > between > > > > > two threads where a different thread is setting the UID/GID and > a > > > > > different one is binding the connections and the UID gets > changed > > > > > before > > > > > the binding thread has a chance to get the socket? > > > > > > > > > > Modules being loaded: > > > > > > > > > > 9572.648625421:7f07c0a216f0: cfline: '$ModLoad imudp' > > > > > 9572.648636228:7f07c0a216f0: Requested to load module 'imudp' > > > > > 9572.648645873:7f07c0a216f0: loading module > > > > '/usr/lib/rsyslog/imudp.so' > > > > > 9572.648713628:7f07c0a216f0: source file imudp.c requested > > > reference > > > > > for > > > > > module 'lmnet', reference count now 4 > > > > > 9572.648734955:7f07c0a216f0: module of type 0 being loaded. > > > > > 9572.648747037:7f07c0a216f0: cfline: '$UDPServerRun 514' > > > > > 9572.648759295:7f07c0a216f0: Trying to open syslog UDP ports at > > > > *:514. > > > > > 9572.648845036:7f07c0a216f0: cfline: '$ModLoad imtcp' > > > > > 9572.648859626:7f07c0a216f0: Requested to load module 'imtcp' > > > > > 9572.648869611:7f07c0a216f0: loading module > > > > '/usr/lib/rsyslog/imtcp.so' > > > > > 9572.648938665:7f07c0a216f0: source file imtcp.c requested > > > reference > > > > > for > > > > > module 'lmnet', reference count now 5 > > > > > 9572.648953892:7f07c0a216f0: caller requested object 'netstrm', > > not > > > > > found (iRet -3003) > > > > > 9572.648968610:7f07c0a216f0: Requested to load module > > 'lmnetstrms' > > > > > 9572.648979310:7f07c0a216f0: loading module > > > > > '/usr/lib/rsyslog/lmnetstrms.so' > > > > > 9572.649053366:7f07c0a216f0: module of type 2 being loaded. > > > > > 9572.649068131:7f07c0a216f0: source file imtcp.c requested > > > reference > > > > > for > > > > > module 'lmnetstrms', reference count now 1 > > > > > 9572.649079163:7f07c0a216f0: caller requested object > 'tcps_sess', > > > not > > > > > found (iRet -3003) > > > > > 9572.649095086:7f07c0a216f0: Requested to load module > 'lmtcpsrv' > > > > > 9572.649105485:7f07c0a216f0: loading module > > > > > '/usr/lib/rsyslog/lmtcpsrv.so' > > > > > 9572.649188177:7f07c0a216f0: source file tcps_sess.c requested > > > > > reference > > > > > for module 'lmnetstrms', reference count now 2 > > > > > 9572.649206712:7f07c0a216f0: source file tcpsrv.c requested > > > reference > > > > > for module 'lmnet', reference count now 6 > > > > > 9572.649217297:7f07c0a216f0: source file tcpsrv.c requested > > > reference > > > > > for module 'lmnetstrms', reference count now 3 > > > > > 9572.649231362:7f07c0a216f0: module of type 2 being loaded. > > > > > 9572.649241801:7f07c0a216f0: source file imtcp.c requested > > > reference > > > > > for > > > > > module 'lmtcpsrv', reference count now 1 > > > > > 9572.649252009:7f07c0a216f0: source file imtcp.c requested > > > reference > > > > > for > > > > > module 'lmtcpsrv', reference count now 2 > > > > > 9572.649287366:7f07c0a216f0: module of type 0 being loaded. > > > > > 9572.649299663:7f07c0a216f0: cfline: '$InputTCPServerRun 514' > > > > > 9572.649321373:7f07c0a216f0: cfline: > '$ActionFileDefaultTemplate > > > > > RSYSLOG_TraditionalFileFormat' > > > > > 9572.649334345:7f07c0a216f0: cfline: '$RepeatedMsgReduction on' > > > > > 9572.649382777:7f07c0a216f0: cfline: '$FileOwner syslog' > > > > > 9572.649703828:7f07c0a216f0: uid 101 obtained for user 'syslog' > > > > > 9572.649720763:7f07c0a216f0: cfline: '$FileGroup adm' > > > > > 9572.649790575:7f07c0a216f0: gid 4 obtained for group 'adm' > > > > > 9572.649805222:7f07c0a216f0: cfline: '$FileCreateMode 0640' > > > > > 9572.649816505:7f07c0a216f0: cfline: '$DirCreateMode 0755' > > > > > 9572.649827020:7f07c0a216f0: cfline: '$Umask 0022' > > > > > 9572.649840237:7f07c0a216f0: umask set to 0022. > > > > > 9572.649850064:7f07c0a216f0: cfline: '$PrivDropToUser syslog' > > > > > 9572.649885709:7f07c0a216f0: uid 101 obtained for user 'syslog' > > > > > 9572.649898391:7f07c0a216f0: cfline: '$PrivDropToGroup syslog' > > > > > 9572.649934688:7f07c0a216f0: gid 103 obtained for group > 'syslog' > > > > > 9572.649948278:7f07c0a216f0: cfline: '$IncludeConfig > > > > > /etc/rsyslog.d/*.conf' > > > > > 9572.650017305:7f07c0a216f0: requested to include config file > > > > > '/etc/rsyslog.d/50-default.conf' > > > > > 9572.650045382:7f07c0a216f0: cfline: 'auth,authpriv.* > > > > > /var/log/auth.log' > > > > > > > > > > GID and UID being changed: > > > > > > > > > > 9572.671888467:7f07be402910: doWrite, pData->pStrm 0x1e11d60, > > > lenBuf > > > > 78 > > > > > 9572.671902407:7f07c0a216f0: logmsg: flags 1, from 'trebuchet', > > msg > > > > > rsyslogd's groupid changed to 103 > > > > > 9572.671920644:7f07c0a216f0: Message has legacy syslog format. > > > > > 9572.671933956:7f07be402910: testing filter, f_pmask 1 > > > > > 9572.671947526:7f07be402910: testing filter, f_pmask 240 > > > > > 9572.671957623:7f07be402910: Called action, logging to builtin- > > pipe > > > > > 9572.671969801:7f07be402910: extend buf to at least 16, done > 128 > > > > > 9572.671982061:7f07be402910: (/dev/xconsole) > > > > > 9572.671999956:7f07c0a216f0: main Q: entry added, size now 2 > > > entries > > > > > 9572.672025520:7f07c0a216f0: wtpAdviseMaxWorkers signals busy > > > > > 9572.672041633:7f07c0a216f0: main Q: EnqueueMsg advised worker > > > start > > > > > 9572.672059720:7f07be402910: Action requested to be suspended, > > done > > > > > that. > > > > > 9572.672085037:7f07be402910: main Q: entry deleted, state 0, > size > > > now > > > > 1 > > > > > entries > > > > > 9572.672099142:7f07c0a216f0: setuid(101): 0 > > > > > 9572.672122289:7f07be402910: testing filter, f_pmask 0 > > > > > 9572.672136161:7f07be402910: testing filter, f_pmask 255 > > > > > 9572.672147659:7f07be402910: Called action, logging to builtin- > > file > > > > > 9572.672162158:7f07c0a216f0: logmsg: flags 1, from 'trebuchet', > > msg > > > > > rsyslogd's userid changed to 101 > > > > > 9572.672179992:7f07c0a216f0: Message has legacy syslog format. > > > > > 9572.672192329:7f07be402910: extend buf to at least 138, done > 256 > > > > > 9572.672200766:7f07be402910: file to log to: /var/log/syslog > > > > > > > > > > UDP socket bind succeeded but TCP bind fails: > > > > > > > > > > 9572.672546363:7f07c0a216f0: initialization completed, > > > transitioning > > > > to > > > > > regular run mode > > > > > 9572.672557359:7f07bc3fe910: Listening on UDP syslogd socket 4 > > > > > (IPv4/port 514). > > > > > 9572.672576606:7f07bc3fe910: --------imUDP calling select, > active > > > > file > > > > > descriptors (max 4): 4 > > > > > 9572.672594858:7f07bdc01910: --------imuxsock calling select, > > > active > > > > > file descriptors (max 5): 3 5 > > > > > 9572.672630154:7f07bd400910: wtpAdviseMaxWorkers signals busy > > > > > 9572.672646478:7f07bbbfd910: caller requested object > 'nsd_ptcp', > > > not > > > > > found (iRet -3003) > > > > > 9572.672663716:7f07bbbfd910: Requested to load module > > 'lmnsd_ptcp' > > > > > 9572.672671184:7f07bbbfd910: loading module > > > > > '/usr/lib/rsyslog/lmnsd_ptcp.so' > > > > > 9572.672745761:7f07bbbfd910: source file nsd_ptcp.c requested > > > > reference > > > > > for module 'lmnetstrms', reference count now 4 > > > > > 9572.672757197:7f07bbbfd910: module of type 2 being loaded. > > > > > 9572.672763826:7f07bbbfd910: source file netstrms.c requested > > > > reference > > > > > for module 'lmnsd_ptcp', reference count now 1 > > > > > 9572.672770522:7f07bbbfd910: creating tcp listen socket on port > > 514 > > > > > 9572.672803781:7f07bbbfd910: error 13 while binding tcp > socketWe > > > > could > > > > > initialize 0 TCP listen sockets out of 1 we recei > > > > > ved - this may or may not be an error indication. > > > > > 9572.672824933:7f07bbbfd910: No TCP listen sockets could > > > successfully > > > > > be > > > > > initializedCalled LogError, msg: Could not crea > > > > > te tcp listener, ignoring port 514. > > > > > 9572.672844597:7f07bbbfd910: logmsg: flags 1, from 'trebuchet', > > msg > > > > > Could not create tcp listener, ignoring port 514. [t > > > > > ry http://www.rsyslog.com/e/2077 ] > > > > > > > > > > _______________________________________________ > > > > > rsyslog mailing list > > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > > http://www.rsyslog.com > > > > _______________________________________________ > > > > rsyslog mailing list > > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > > http://www.rsyslog.com > > > _______________________________________________ > > > rsyslog mailing list > > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > > http://www.rsyslog.com > > _______________________________________________ > > rsyslog mailing list > > http://lists.adiscon.net/mailman/listinfo/rsyslog > > http://www.rsyslog.com > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com

