如何更新 PayPal IPN 的 cURL OpenSSL 版本

如何更新 PayPal IPN 的 cURL OpenSSL 版本

我运行 Linux Debian 7。

经过几个小时的尝试获取 PayPal IPN (即时付款通知),我发现您必须至少拥有 OpenSSL 1.0.1 版本。问题是,服务器确实有版本 1.0.1,但 cURL 版本是 0.9.8。我尝试了很多指南,但只成功将 cURL 更新到 7.50.0 – 但 OpenSSL 版本仍然是 0.9.8,而 php 中的 cURL 仍然是 7.21.0。

谷歌搜索后我发现它非常复杂并且很多人都有同样的问题。

如何更新服务器中的 cURL?

apt-cache policy php5-curl输出:

 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/ 没有做任何事情。

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

(Rootkit Hunter 报告有 1361 行长,似乎没有发现任何问题。)

我按照你说的做了,现在我的服务器离线了。

答案1

根据我的进一步研究,这台机器可能已经被木马感染了,现在需要小心谨慎。

在任何升级过程之前,即之前

apt-get update && apt-get upgrade

您需要安装rkhunter

apt-get install rkhunter

然后用以下命令更新其数据库:

rkhunter --update

最后扫描木马:

rkhunter -c -sk --enable rootkits

向我报告结果。希望没什么。但谨慎一点总比后悔好。


看来阻止升级软件包的问题是一个自定义的、编写不正确的初始化脚本/etc/init.d/.SSH2,现在备份为/etc/init.d/.SSH2.bak.

我不是说我们删除脚本,我们稍后会修改它。

但首先要做的事情是:

将错误的初始化脚本移出init.d

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

然后执行

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

然后报告结果,如有需要我会提供帮助。

相关内容