Debian

如何更新 PayPal IPN 的 cURL OpenSSL 版本

  • June 22, 2020

我執行 Linux Debian 7。

在嘗試獲取 PayPal IPN(即時付款通知)數小時後,我發現您必須至少擁有 1.0.1 版的 OpenSSL。問題是,伺服器確實有版本 1.0.1,但 cURL 版本是 0.9.8。我嘗試了很多指南,但只能將 cURL 更新到 7.50.0——但 OpenSSL 版本仍然是 0.9.8,php 中的 cURL 仍然是 7.21.0。

Google搜尋後,我發現它非常複雜,很多人都有同樣的問題。

如何在伺服器中更新 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 行長,似乎沒有發現任何問題。)

我按照你說的做了,現在我的伺服器離線了。

根據我的進一步研究,這台機器可能已經被木馬感染了,我們現在需要謹慎行事。

在任何升級程序之前,即之前

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

然後報告結果,如有必要,我將提供幫助。

引用自:https://unix.stackexchange.com/questions/298346