如何更新 PayPal IPN 的 cURL OpenSSL 版本
我執行 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
然後報告結果,如有必要,我將提供幫助。