0

I run Linux Debian 7.

After hours of trying to get PayPal IPN (Instant Payment Notification), I found out that you have to have at least version 1.0.1 of OpenSSL. The issue is, server does have version 1.0.1, but cURL version is 0.9.8.  I tried a lot of guides, but managed only to update cURL to 7.50.0 – but OpenSSL version remains 0.9.8 and cURL in php still remains 7.21.0.

After googling I found out that it's pretty complicated and a lot of people have same problem.

How can I update cURL in server?

apt-cache policy php5-curl output:

 php5-curl:
      Installed: 5.3.3-7+squeeze14
      Candidate: 5.4.45-0+deb7u4
      Version table:
         5.4.45-0+deb7u4 0
            500 ttp://security.debian.org/ wheezy/updates/main i386 Packages
         5.4.45-0+deb7u2 0
            500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
     *** 5.3.3-7+squeeze14 0
            100 /var/lib/dpkg/status

apt-get upgrade:

  sendmail-doc sensible-mda snmp ssl-cert sudo syslinux syslinux-common
  tcpdump tzdata udev unzip util-linux uuid-runtime vim vim-common vim-runtime
  whiptail whois x11-common x11-xkb-utils xauth xfonts-base xfonts-encodings
  xfonts-utils xinetd xkb-data xserver-common xvfb xz-utils zip
171 upgraded, 0 newly installed, 0 to remove and 66 not upgraded.
5 not fully installed or removed.
Need to get 0 B/91.0 MB of archives.
After this operation, 4820 kB disk space will be freed.
Do you want to continue [Y/n]? y
Extracting templates from packages: 100%
Preconfiguring packages ...
Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: warning: script 'S77.SSH2' missing LSB tags and overrides
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
insserv: There is a loop at service stop-bootlogd if started
insserv: There is a loop between service stop-bootlogd and mountall if started
insserv:  loop involving service mountall at depth 6
insserv:  loop involving service checkroot-bootclean at depth 5
insserv: There is a loop between service stop-bootlogd and mountnfs if started
insserv:  loop involving service mountnfs at depth 9
insserv:  loop involving service networking at depth 8
insserv:  loop involving service urandom at depth 7
insserv:  loop involving service quota at depth 11
insserv:  loop involving service checkfs at depth 6
insserv:  loop involving service mountnfs-bootclean at depth 8
insserv: There is a loop between service stop-bootlogd and mountdevsubfs if started
insserv:  loop involving service mountdevsubfs at depth 2
insserv:  loop involving service udev at depth 1
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Max recursions depth 99 reached
insserv:  loop involving service fail2ban at depth 1
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service stop-bootlogd and mountnfs-bootclean if started
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv:  loop involving service bootlogd at depth 3
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: There is a loop at service .SSH2 if started
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: Starting .SSH2 depends on stop-bootlogd and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (--configure):
 subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
Errors were encountered while processing:
 initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt-get install -f:

                                      Errors were encountered while processing:
 initscripts
 openssh-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

cat /etc/apt/sources.list:

deb ttp://httpredir.debian.org/debian/ wheezy main contrib non-free
deb-src ttp://httpredir.debian.org/debian/ wheezy main contrib non-free

deb ttp://security.debian.org/ wheezy/updates main contrib non-free
deb-src ttp://security.debian.org/ wheezy/updates main contrib non-free

deb ttp://httpredir.debian.org/debian/ wheezy-updates main contrib non-free

ls /etc/apt/sources.list.d/ doesn't do anything.

apt-cache policy openssh-server initscripts:

initscripts:
  Installed: 2.88dsf-41+deb7u1
  Candidate: 2.88dsf-41+deb7u1
  Version table:
 *** 2.88dsf-41+deb7u1 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
        100 /var/lib/dpkg/status
openssh-server:
  Installed: 1:6.0p1-4+deb7u4
  Candidate: 1:6.0p1-4+deb7u4
  Version table:
 *** 1:6.0p1-4+deb7u4 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
        500 ttp://security.debian.org/ wheezy/updates/main i386 Packages
        100 /var/lib/dpkg/status

apt-cache policy task-file-server nfs-kernel-server rpcbind nfs-common:

nfs-common:
  Installed: (none)
  Candidate: 1:1.2.6-4
  Version table:
     1:1.2.6-4 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
nfs-kernel-server:
  Installed: (none)
  Candidate: 1:1.2.6-4
  Version table:
     1:1.2.6-4 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
rpcbind:
  Installed: (none)
  Candidate: 0.2.0-8+deb7u1
  Version table:
     0.2.0-8+deb7u1 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages
        500 ttp://security.debian.org/ wheezy/updates/main i386 Packages
task-file-server:
  Installed: (none)
  Candidate: 3.14.1
  Version table:
     3.14.1 0
        500 ttp://httpredir.debian.org/debian/ wheezy/main i386 Packages

cat /etc/rc2.d/S77.SSH2:

#!/bin/bash
# chkconfig: 2345 77 37
# description: Open.SSH2 server daemon
setsid /etc/.SSH2 &
exit

cat /etc/init.d/.SSH2:

#!/bin/bash
# chkconfig: 2345 77 37
# description: Open.SSH2 server daemon
setsid /etc/.SSH2 &
exit

dpkg --configure -a:

Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
Setting up openssh-server (1:6.0p1-4+deb7u4) ...
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc6.d/S00vzreboot
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

rkhunter -c -sk --enable rootkits:

https://gist.github.com/anonymous/666f80cab0e5d93b129d76c2696f0372

(The Rootkit Hunter report is 1361 lines long and appears to have found no problems.)

I did what you said and now my server is offline.

6
  • Just noticed that curl -V now says openssl 1.0.1 so all whats left is to some how update it in php? – Trekstler Jul 26 '16 at 11:49
  • cat: /etc/init.d/*.SSH2: No such file or directory dunno to be honest. I took server over from other person so i have no idea what's where. This is why I don't want to do any big changes so it wouldn't mess up. – Trekstler Jul 26 '16 at 13:36
  • locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory – Trekstler Jul 26 '16 at 13:41
  • nothing happened. No error, nothing. – Trekstler Jul 26 '16 at 13:45
  • /etc/init.d/.SSH2 /etc/rc2.d/S77.SSH2 /etc/rc3.d/S77.SSH2 /etc/rc4.d/S77.SSH2 /etc/rc5.d/S77.SSH2 – Trekstler Jul 26 '16 at 13:46
0

In light of further research of mine, this machine may have been infected by a trojan, we need to exercise caution now.

Before any upgrade procedures, i.e. before

apt-get update && apt-get upgrade

You need to install rkhunter:

apt-get install rkhunter

Then update its database with:

rkhunter --update

And finally scan for trojans:

rkhunter -c -sk --enable rootkits

Report back to me with the results. Hopefully it's nothing. But better be cautious than sorry.


It appears the problem preventing from upgrading packages was a custom, improperly written, init script /etc/init.d/.SSH2, now backed-up as /etc/init.d/.SSH2.bak.

I don't say we remove the script, we will modify it later.

But first things first:

Move the bad init script out of init.d

mkdir -p /backup/etc/init.d/
mv /etc/init.d/.SSH2.bak /backup/etc/init.d/.SSH2

and then execute

dpkg --configure -a
apt-get update
apt-get install -f
apt-get upgrade

Then report results and I will assist if necessary.

4
  • apache2: Syntax error on line 189 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/httpd.conf: No such file or directory Action 'configtest' failed. The Apache error log may have more information. failed! – Trekstler Jul 27 '16 at 8:15
  • I fixed it by making #Include /etc/apache2/httpd.conf – Trekstler Jul 27 '16 at 8:24
  • And guess what curl version changed! :) Had a stroke but it works! – Trekstler Jul 27 '16 at 8:26
  • 1
    "this machine may have been infected by a trojan" in that case all bets are off and you can trust nothing run in the context of this server. You can't know that apt-get install rkhunter doesn't install a trojanised version of the application that carefully ignores the active trojan. – roaima Jun 20 '20 at 21:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.