http://www.perlmonks.org?node_id=1217893


in reply to Re^5: Centos 7 getadsmtp.pl outputing blank
in thread Centos 7 getadsmtp.pl outputing blank

Thank you for the response and the assistance I am still facing challenges though I will paste the modified script as per your suggestion and the tcpdump logs from both the working server and the troublesome server. I can notice the differences in length value the failing one is zero size and the successful has some big value. It seems like its stopping at some point

# Connecting to Active Directory domain controllers $noldapserver=0; $ldap = Net::LDAP->new($dc1) or $noldapserver=1; if ($noldapserver == 1) { $ldap = Net::LDAP->new($dc2) or die "Error connecting to specified domain controllers $@ \n"; } $mesg = $ldap->bind ( dn => $user, password =>$passwd); if ( $mesg->code()) { die ("error:", $mesg->code(),"\n"); } # How many LDAP query results to grab for each paged round # Set to under 1000 for Active Directory $page = Net::LDAP::Control::Paged->new( size => 990 ); @args = ( base => $hqbase, # Play around with this to grab objects such as Contacts, Public Folde +rs, etc. # A minimal filter for just users with email would be: # filter => "(&(sAMAccountName=*)(mail=*))" filter => "(& (mailnickname=*) (| (&(objectCategory=person) (objectClass=user)(!(homeMDB=*))(!(msExchHomeServe +rName=*))) (&(objectCategory=person)(objectClass=user)(|(home +MDB=*) (msExchHomeServerName=*)))(&(objectCategory=person +)(objectClass=contact)) (objectCategory=group)(objectCategory=publicFolder +) ))", control => [ $page ], attrs => "proxyAddresses", ); my $cookie; while(1) { # Perform search my $mesg = $ldap->search( @args ); # Filtering results for proxyAddresses attributes foreach my $entry ( $mesg->entries ) { my $name = $entry->get_value( "cn" ); # LDAP Attributes are multi-valued, so we have to print each one. foreach my $mail ( $entry->get_value( "proxyAddresses" ) ) { # Test if the Line starts with one of the following lines: # proxyAddresses: [smtp|SMTP]: # and also discard this starting string, so that $mail is only t +he # address without any other characters... if ( $mail =~ s/^(smtp|SMTP)://gs ) { push(@valid, $mail." OK\n"); } } } # Only continue on LDAP_SUCCESS $mesg->code and last; # Get cookie from paged control my($resp) = $mesg->control( LDAP_CONTROL_PAGED ) or last; $cookie = $resp->cookie; last if (!defined($cookie) || !length($cookie)); # Set cookie in paged control $page->cookie($cookie); } if (defined($cookie) && length($cookie)) { # We had an abnormal exit, so let the server know we do not want any +more $page->cookie($cookie); $page->size(0); $ldap->search( @args ); # Also would be a good idea to die unhappily and inform OP at this p +oint die("LDAP query unsuccessful"); } # Only write the file once the query is successful open VALID, ">$VALID" or die "CANNOT OPEN $VALID $!"; print VALID @valid; # Add additional restrictions, users, etc. to the output file below. #print VALID "user\@example.com OK\n"; #print VALID "user1\@example.com 550 User unknown.\n"; #print VALID "bad.example.com 550 User does not exist.\n"; close VALID;

TCP DUMPS LOGS

WORKING SERVER:-

root@mxgw:~# tcpdump -i eth0 port 389 tcpdump: verbose output suppressed, use -v or -vv for full protocol de +code listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 16:34:36.355076 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [S], seq 1470389482, win 5840, options [mss 1460,sackOK,TS val 1191 +504975 ecr 0,nop,wscale 6], length 0 16:34:36.355362 IP srvleon.mailgw.com.ldap > 192.168.135.9.59727: Flag +s [S.], seq 2510267230, ack 1470389483, win 8192, options [mss 1460,n +op,wscale 8,sackOK,TS val 476329174 ecr 1191504975], length 0 16:34:36.355385 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [.], ack 1, win 92, options [nop,nop,TS val 1191504975 ecr 47632917 +4], length 0 16:34:36.356892 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [P.], seq 1:58, ack 1, win 92, options [nop,nop,TS val 1191504976 e +cr 476329174], length 57 16:34:36.360987 IP srvleon.mailgw.com.ldap > 192.168.135.9.59727: Flag +s [P.], seq 1:23, ack 58, win 260, options [nop,nop,TS val 476329174 +ecr 1191504976], length 22 16:34:36.361087 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [.], ack 23, win 92, options [nop,nop,TS val 1191504977 ecr 4763291 +74], length 0 16:34:36.361087 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [.], ack 23, win 92, options [nop,nop,TS val 1191504977 ecr 4763291 +74], length 0 16:34:36.370483 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [P.], seq 58:462, ack 23, win 92, options [nop,nop,TS val 119150497 +9 ecr 476329174], length 404 16:34:36.379843 IP srvleon.mailgw.com.ldap > 192.168.135.9.59727: Flag +s [.], seq 23:1471, ack 462, win 258, options [nop,nop,TS val 4763291 +75 ecr 1191504979], length 1448 16:34:36.379857 IP srvleon.mailgw.com.ldap > 192.168.135.9.59727: Flag +s [.], seq 1471:2919, ack 462, win 258, options [nop,nop,TS val 47632 +9175 ecr 1191504979], length 1448 16:34:36.379868 IP 192.168.135.9.59727 > srvleon.mailgw.com.ldap: Flag +s [.], ack 2919, win 182, options [nop,nop,TS val 1191504981 ecr 4763 +29175], length 0 16:34:36.380276 IP srvleon.mailgw.com.ldap > 192.168.135.9.59727: Flag +s [.], seq 2919:4367, ack 462, win 258, options [nop,nop,TS val 47632 +9177 ecr 1191504981], length 1448

FAILING SERVER:-

[root@vm1000 ~]# tcpdump -i ens32 port 389 tcpdump: verbose output suppressed, use -v or -vv for full protocol de +code listening on ens32, link-type EN10MB (Ethernet), capture size 262144 b +ytes 16:28:02.668058 IP pauline-mkt.mailgw.com.41948 > srvleon.mailgw.com.l +dap: Flags [S], seq 2414468076, win 29200, options [mss 1460,sackOK,T +S val 800294598 ecr 0,nop,wscale 7], length 0 16:28:02.668903 IP srvleon.mailgw.com.ldap > pauline-mkt.mailgw.com.41 +948: Flags [S.], seq 2723246614, ack 2414468077, win 8192, options [m +ss 1460,nop,wscale 8,sackOK,TS val 476285837 ecr 800294598], length 0 16:28:02.668943 IP pauline-mkt.mailgw.com.41948 > srvleon.mailgw.com.l +dap: Flags [.], ack 1, win 229, options [nop,nop,TS val 800294599 ecr + 476285837], length 0 16:28:02.669954 IP pauline-mkt.mailgw.com.41948 > srvleon.mailgw.com.l +dap: Flags [P.], seq 1:58, ack 1, win 229, options [nop,nop,TS val 80 +0294600 ecr 476285837], length 57 16:28:02.674297 IP srvleon.mailgw.com.ldap > pauline-mkt.mailgw.com.41 +948: Flags [P.], seq 1:23, ack 58, win 260, options [nop,nop,TS val 4 +76285837 ecr 800294600], length 22 16:28:02.674431 IP pauline-mkt.mailgw.com.41948 > srvleon.mailgw.com.l +dap: Flags [.], ack 23, win 229, options [nop,nop,TS val 800294605 ec +r 476285837], length 0

2018-07-06 Athanasius added code tags