在输出中
netstat -a | grep LISTEN
通常有很多流程。我如何(在哪里)找到有关它们的信息,它们在系统中的目的是什么以及我是否可以杀死它们?其中哪些是不安全的,哪些是安全的?
答案1
我怎样(在哪里)可以找到有关他们的信息,
首先您必须找出每个端口绑定了哪个程序。不幸的是,没有一种标准方法可以在所有 *ix 类型系统上工作,并且您的问题没有指定一种方法。
某些版本netstat
有一个标志,其中在每个输出行上包含关联的程序名称。例如,--program
在 Linux 或-b
Windows 上。
如果您netstat
没有这样的标志(例如 OS X),您将必须找到另一种适用于您的系统的方法。lsof -i
、/proc
洞穴探险等
他们在系统中的目的是什么
一旦您掌握了程序名称,man progname
通常会给您足够的信息来自己回答该问题。
[我可以]杀掉他们吗?
一旦您知道每个服务器在做什么,您就会明白这一点。
这里的单一答案不适合列出所有你可以杀死的东西。可能性实在是太多了。如果您在阅读其文档后对给定程序不确定,您可以在此处发布另一个问题来询问该程序。有些事情相当明显(例如sshd
),另一些则比较模糊(例如avahi
)。
其中哪些是不安全的,哪些是安全的?
程序很少会默认运行在绝对不安全的新 *ix 系统上。
(在过去糟糕的日子里,情况并非如此。您经常会看到系统运行telnetd
非 chroot 的ftpd
命令r*
......)
任何非默认后台 TCP 侦听器都应该是您或其他受信任的管理员安装的,因此您可能已经解决了任何安全问题。
这里存在灰色地带。您运行的服务器可能不是绝对不安全,而是有条件地不安全。也许它没有正确锁定,也许它有未修补的错误,等等。不过,这是整个计算机安全职业生涯的内容,不适合在这里用一个问题来回答。如果缺乏这种经验,谷歌可能是你最好的首选。如果您在那里找不到所需的内容,您可以在此处发布有关特定服务器的新问题。
答案2
命令
netstat -a | grep LISTEN
列出侦听各种类型套接字的所有进程。这些套接字可以是任何地址系列,例如 ipv4(udp 或 tcp)、ipv6(udp6 或 tcp6)、unix。
条目如下:
tcp 0 0 *:webmin *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
意味着tcp
使用了协议并且某些服务器正在您的计算机上运行,就像我的例子中 webmin 和 ftp 服务器正在运行一样。
条目如下:
tcp6 0 0 [::]:8484 [::]:* LISTEN
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN
表示使用ipv6的tcp6协议。
条目如下:
unix 2 [ ACC ] STREAM LISTENING 13297 /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75
unix 2 [ ACC ] STREAM LISTENING 13305 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
由 ORBit CORBA 创建。这种公共对象请求代理体系结构(CORBA)是由对象管理组(OMG)定义的标准,它使得用多种计算机语言编写并在多台计算机上运行的软件组件能够协同工作,即它支持多种平台。
1. 我如何(在哪里)可以找到有关他们的信息?
假设我想查找有关/tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
.我可以通过执行以下命令来了解详细信息:
$ lsof -Pwn | grep /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
该命令给出了输出:
indicator 1909 pradeep 10u unix 0xf6bd8900 0t0 13305 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
indicator 1909 pradeep 12u unix 0xf6b1f600 0t0 13314 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
这里:
indicator
是与进程关联的 unix 命令的名称。
1909
是进程的PID indicator
。
2. 它们在系统中的用途是什么?
有些过程像
tcp 0 0 *:ftp *:* LISTEN
用于监听 FTP 服务器。
其他人喜欢:
unix 2 [ ACC ] STREAM LISTENING 13297 /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75
用于 CORBA 使用的不同进程之间的进程间通信。
3.我可以杀掉他们吗?
这取决于过程的关键程度。假设如果您终止任何正在侦听的服务器,那么它将停止与该服务器相关的所有通信。
4. 其中哪些是不安全的,哪些是安全的?
所有都是安全的过程。
答案3
netstat -nap | grep LISTEN
将给出以下输出,其中包括姓名和PID的倾听流程:
unix 2 [ ACC ] STREAM LISTENING 20763 2333/gnome-terminal /tmp/orbit-eugene/linc-91d-0-2dbe139bd35e3
unix 2 [ ACC ] STREAM LISTENING 17900 2014/bonobo-activat /tmp/orbit-eugene/linc-7de-0-2b0c0606f265
unix 2 [ ACC ] STREAM LISTENING 18325 2274/gnome-screensa /tmp/orbit-eugene/linc-7ef-0-59f130216cc19
-n
- 显示数字地址,而不是尝试确定符号主机、端口或用户名。
-a
- 显示侦听和非侦听套接字。
-p
显示每个套接字所属程序的 PID 和名称。