只是想了解一下。请纠正错误并写下建议
黑客可以访问VPS:
1.通过(使用)控制台终端,例如使用PuTTY。
要访问,黑客需要知道端口号、用户名和密码。
端口号黑客可以知道扫描开放端口并尝试登录。据我所知,登录的唯一方法需要知道用户名和密码。
要阻止(使更困难)端口扫描,需要使用 iptables configure /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
Run Code Online (Sandbox Code Playgroud)
关于需要开放的端口。
如果不使用 ssl,那么似乎必须为网站保留开放的 80 端口。
然后是 ssh(默认 22)和 ftp(默认 21)。并设置ip地址,从中可以连接。那么如果黑客使用其他IP地址,即使知道用户名和密码也无法访问?
关于电子邮件不确定。
如果我使用 Gmail 发送电子邮件(发送邮件为:(使用 Gmail 从您的其他电子邮件地址发送)),则不需要端口 25。
对于 dynadot.com 收到的电子邮件,我使用电子邮件转发。这是否意味着电子邮件“不会到达 VPS”(在到达 VPS 之前,电子邮件会被转发,例如到 Gmail)?如果电子邮件没有到达 VPS,那么似乎也不需要端口 110。
如果只使用 ssl,必须打开 443 端口,关闭 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
Run Code Online (Sandbox Code Playgroud)
据了解,它适用于 mysql。但是不记得我有打开过这样的端口(可能是安装mysql的时候,端口自动打开了?)。mysql是安装在同一台服务器上,其他内容都在那里。需要了解3306端口
2. 黑客也可以通过 VPS 主机提供商控制面板(串行控制台紧急访问)访问控制台终端。
据了解,仅使用控制台终端(PuTTY 等)可以进行“全局”更改(无法使用 ftp 修改的更改)。
3.黑客可以利用我的php代码中的一些漏洞来访问我的VPS并上传,例如木马。
不幸的是,面临 VPS 被黑客入侵的情况。据了解,这是因为我使用了 ZPanel。在 VPS (\etc\zpanel\panel\bin) 上发现了一个 php 文件,被一些病毒扫描程序(在virustotal.com)识别为木马。
在本地计算机 (wamp) 上对文件进行了试验。

并且看来黑客可以看到VPS的所有内容,重命名,删除,上传等。我认为,如果在PuTTY中使用类似这样的命令,chattr +i /etc/php.ini那么黑客是无法修改php.ini的。
还有其他方法可以进入VPS吗?
你所描述的是 ZPanel 的一个漏洞,如果文件被放置在它的目录中并且可以通过网络服务器访问 - 我已经在 Joomla/Wordpress 安装中看到这种情况发生了一百万次。
至于提供的屏幕截图 - 这看起来像一个 PHP shell,它将能够列出文件系统,因为 Apache 可以访问文件系统。脚本可以访问/读取哪些文件/目录取决于为这些文件设置的权限。
现在回答您的问题:
可以关闭3306-MySQL端口,如果需要远程访问MySQL服务器,可以随时添加iptables规则,只允许远程IP地址访问3306端口。
此外,您可以使用 SSH 密钥进行 root 登录并禁用 root 用户的密码登录( PermitRootLogin without-password ),因此只有在 ~/.ssh/authorized_keys 中添加了 SSH 密钥的用户才能访问 root 帐户。另一种方法是完全禁用root访问并使用另一个帐户,以便您可以遍历root帐户(su - root)。
但是您的安全性与您最薄弱的环节一样强大 - 您可以锁定所有内容,但如果网络应用程序易受攻击 - 他们会找到进入它的方法。
如果您是唯一一个使用服务器的人,您可以在访问面板之前使用 ZPanel 看到添加 HTTP 身份验证,或者如果您在为 Zpanel 提供服务的 VPN 设置 HTTP 服务器以仅允许访问您的 VPN IP 地址。
编辑:添加chattr +i /etc/php.ini将禁用对 php.ini 文件的任何修改,因为它设置了一个不可变的属性,而不是您(root)或任何其他人能够修改该文件。
至于 php.ini 保护,如果这是生产服务器,您可以考虑修改以下选项:
您还可以禁用一些不需要的 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
如果禁用这些功能后您的脚本无法正常工作,请检查需要启用哪个功能,从列表中删除并重新启动您的 HTTP 服务器。
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |