不久前,我创建了一个 AWS Ubuntu 16.04 EC2 实例,并让它运行了一段时间,但实际上什么也没做。现在,当我尝试将该机器投入使用时,我注意到一些我无法解释的事情:
username@hostname:~$ ps aux | grep apache
root 1930 0.0 0.0 4508 748 ? Ss 12:17 0:00 /bin/sh /usr/sbin/apache2ctl -D FOREGROUND
root 1965 0.0 0.7 89980 7752 ? S 12:17 0:00 /usr/sbin/apache2 -D FOREGROUND
www-data 1966 0.0 0.6 379152 6996 ? Sl 12:17 0:00 /usr/sbin/apache2 -D FOREGROUND
www-data 1967 0.0 0.6 379152 6996 ? Sl 12:17 0:00 /usr/sbin/apache2 -D FOREGROUND
username 2732 0.0 0.0 12944 976 pts/1 S+ 12:32 0:00 grep --color=auto apache
apache2
如果可执行文件尚未安装,怎么会有进程呢?
username@hostname:~$ ls -lA /usr/sbin/apache2
ls: cannot access '/usr/sbin/apache2': No such file or directory
username@hostname:~$ ls -lA /usr/sbin/apache2ctl
ls: cannot access '/usr/sbin/apache2ctl': No such file or directory
username@hostname:~$ aptitude search apache2 | grep '^i'
<no output>
此外,这台机器似乎有一个开放的 UDP 端口 68,似乎与 BOOTP 或 DHCP 有关。AWS EC2 实例打开该端口是否正常?这样做有什么好处?
username@hostname:~$ netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
到目前为止,我不知道发生了什么。这一切都是我应该担心的事情吗?我应该清理机器然后重新开始吗?有人能解释一下吗?
答案1
对于 EC2 实例来说,udp/68 是正常的,因为它通过 DHCP 获取其 IP 地址。
我的第一个猜测也是,它们是删除软件包后留下的进程。我会先检查 apt 和 shell 历史记录,也许如果你将它们关联起来,你就会记得到底发生了什么。但是,如果实例最近重新启动过(在删除软件包之后),那么一定有什么可疑的事情发生了。