黑客如何访问VPS CentOS 6内容?

只是想了解。 请纠正错误并写下build议

黑客可以访问VPS:

1.通过(使用)控制台terminal,例如使用PuTTY。

要访问,黑客需要知道端口号,用户名和密码。

端口号黑客可以知道扫描开放端口并尝试login。 唯一的方法login,据我所知,需要知道用户名和密码。

要阻塞(使更困难的)端口扫描,需要使用iptablesconfiguration/etc/sysconfig/iptables 。 我遵循这个https://www.digitalocean.com/community/articles/how-to-setup-a-basic-ip-tables-configuration-on-centos-6教程,并得到

 *nat :PREROUTING ACCEPT [87:4524] :POSTROUTING ACCEPT [77:4713] :OUTPUT ACCEPT [77:4713] COMMIT *mangle :PREROUTING ACCEPT [2358:200388] :INPUT ACCEPT [2358:200388] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [2638:477779] :POSTROUTING ACCEPT [2638:477779] COMMIT *filter :INPUT DROP [1:40] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [339:56132] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -s 11.111.11.111/32 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -s 11.111.11.111/32 -p tcp -m tcp --dport 21 -j ACCEPT COMMIT 

关于需要打开的港口。

如果不使用ssl,那么似乎必须离开网站开放端口80。

然后为ssh(默认22)和ftp(默认21)。 并设置IP地址,从中可以连接。 那么如果黑客使用其他的IP地址,他甚至不能访问,甚至不知道用户名和密码?

关于电子邮件不确定。

如果我发送电子邮件,使用Gmail(使用Gmail发送邮件(使用Gmail从其他电子邮件地址发送)),则不需要端口25。

对于在dynadot.com收到的电子邮件,我使用电子邮件转发。 这是否意味着电子邮件“没有到达VPS”(在到达VPS之前,电子邮件被转发到例如Gmail)? 如果电子邮件没有到达VPS,那么似乎110端口也没有必要。

如果仅使用ssl,则必须打开端口443并closures端口80。

不明白关于端口3306

在PuTTY中用/bin/netstat -lnp参见

 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 992/mysqld 

据了解这是为MySQL。 但是不记得我打开过这样的端口(可能是在安装mysql的时候,端口是自动打开的?)。 Mysql安装在同一台服务器上的所有其他内容中。 需要了解端口3306

2.黑客也可以通过VPS主机提供商控制面板(串口控制台紧急访问)访问控制台terminal。

由于只有使用控制台terminal(PuTTY等)才能理解“全局”更改(不能用ftp修改的更改)。

3.黑客可以访问我的VPS利用我的PHP代码中的一些漏洞,并上传,例如,木马。

不幸的是,面对VPS遭到黑客攻击的情况。 据了解,这是因为我使用了ZPanel。 在VPS上(\ etc \ zpanel \ panel \ bin))find了一个php文件,这个文件被一些病毒扫描程序(virustotal.com)识别为木马病毒。

用本地计算机上的文件(wamp)进行实验。

在这里输入图像说明

看来黑客可以看到VPS的所有内容,重命名,删除,上传等。从我的观点来看,如果在PuTTY中使用像chattr +i /etc/php.ini这样的命令,那么黑客就无法修改php.ini。

还有其他方法可以进入VPS吗?

你所描述的是ZPanel的一个漏洞,如果这个文件被放在它的目录中,并且可以通过Web服务器访问 – 我已经看到这在Joomla / WordPress安装上发生了一百万次。

至于提供的截图 – 这看起来像一个PHP shell,它将能够列出文件系统,因为Apache可以访问文件系统。 脚本可以访问/读取的文件/目录取决于为这些文件设置的权限。

现在回答你的问题:

  1. 我会build议使用CSF来保护你的服务器,它提供了保护免受端口震动,并扫描你的SSH日志,看看是否有任何暴力破解攻击,并阻止攻击者的IP地址。 至于离开开放的端口 – 问问自己,服务器将做什么,然后打开所需的端口:
    • 21为FTP
    • 22为SSH
    • 25用于SMTP服务器
    • 80为HTTP
    • 443的HTTPS,如果你正在使用这个
    • 110/995的POP3 / POP3通过SSL – 如果你想在你的VPS上使用邮件服务器
    • IMAP4 / IMAP4的143/993通过SSL – 与POP3连接相同

您可以closures3306 – MySQL端口,如果您需要从远程位置访问MySQL服务器,您可以随时添加一个只允许远程IP地址访问端口3306的iptables规则。

另外,可以使用SSH密钥进行rootlogin,并禁用root用户的密码login(PermitRootLogin without-password),所以只有在〜/ .ssh / authorized_keys中添加了SSH密钥的用户才能访问root帐户。 另一种方法是彻底禁用根访问并使用另一个帐户,以便可以遍历到root帐户(su – root)。

但是,您的安全性与您最薄弱的环节一样强大 – 您可以locking所有内容,但是如果Web应用程序易受攻击,则会find一种方法进入。

如果您是唯一使用服务器的人,您可以在访问面板之前使用ZPanel添加HTTP身份validation,或者如果您位于VPN服务器的HTTP服务器后面,则只允许访问您的VPN IP地址。

编辑:添加chattr +i /etc/php.ini将禁用对php.ini文件的任何修改,因为它已经设置了一个不可变的属性,而不是你(root)或者其他任何能修改的文件。

至于php.ini保护,你可以考虑修改以下选项,如果这是一个生产服务器:

  • display_errors – closures
  • expose_php – closures

你也可以禁用一些不需要的PHP函数,这些函数会导致PHP shell脚本不可用:

disable_functions = php_uname, getmyuid, getmypid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix, _getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, phpinfo如果在禁用这些函数后脚本无法正常工作,请检查它需要启用的function,从列表中删除并重新启动HTTP服务器。

嗯,当然! 这一切都取决于攻击面。

从堆栈底部向上的任何东西都是潜在的目标。 不知道更多关于特定的VPS,我们知道他们必须至less:

  • 物理层漏洞(窃听线路,窃取物理服务器)
  • 第2层漏洞(嗅探来自另一个VLAN的stream量,ARP攻击)
  • networking漏洞(拒绝服务)
  • 会话/传输/等(包装层)漏洞(操纵客户端思想证书是有效的,其他SSL问题,劫持等)
  • 演示/应用程序层漏洞(您的旅程从这里开始)

在虚拟化的环境中,堆栈的种类全部开始,以便物理服务器中的应用层承载虚拟环境中的物理层。 例如,假设您正在某个虚拟机pipe理程序的单个物理服务器上托pipe一个VPS。 任何存储,networking或服务器问题都会影响生活在该服务器上的虚拟机。

另一方面,即使在物理世界中一切都很好,虚拟环境托pipe了虚拟硬件,因此您必须重新开始。

但是,这两种环境不需要完全分开考虑。 虽然虚拟环境位于物理环境之上,但它仍然可能到达物理networking。 这是虚拟和物理威胁之间重叠的地方。

例如,您的ISP可能有一个物理边缘路由器来检查和过滤stream量。 它可能会检查非encryptionURL的查询string,以查看是否有错误。 如果fitler足够好,你可能会认为你不必担心外面的stream量(感谢桥接和NAT)。 尽pipe如此,你也可以对querystrings执行你自己的检查。 在这种情况下,stream量已经消失:

  1. 从客户端到ISP边缘filter(物理)
  2. 或者:从ISP边缘filter到客户端,通过物理到虚拟桥接或从ISP边缘filter到客户端网关到客户端
  3. 从客户端过滤到客户端应用程序

我知道这是一个非常迂回的方式来回答你的问题,但我想说的是,你应该考虑你的攻击面 – 特别是最低的水果 – 而不是想一个清单。 如果你允许file upload,你必须有一个可靠的方法来过滤掉坏文件。 如果您允许基本的HTTP身份validation,您将需要防止窃听和蛮力攻击。 如果您允许使用SSH,您可能需要仔细审核login尝试。

所以不要一味地考虑安全性,而应该根据为特定服务运行而创build的攻击面来思考。