我运行 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
然后报告结果,如有需要我会提供帮助。