我一直在考虑用 OpenBSD 替换 Ubuntu,以提高本地服务器的安全性。我需要对它进行 ssh 访问,也需要它提供静态 Web 内容 - 因此我需要打开的唯一端口是 22 和 80。
但是,当我安装 OpenBSD 4.8 并启用 ssh 和 http 后,扫描服务器的开放端口时,/etc/rc.conf
httpd_flags=""
sshd_flags=""
我发现它还有其他几个开放的端口:
Port Scan has started…
Port Scanning host: 192.168.56.102
Open TCP Port: 13 daytime
Open TCP Port: 22 ssh
Open TCP Port: 37 time
Open TCP Port: 80 http
Open TCP Port: 113 ident
由于我启用了 httpd 和 sshd,所以 ssh (22) 和 http (80) 应该打开,但为什么其他端口也打开了?我应该担心它们会造成额外的安全漏洞吗?在默认安装中它们应该打开吗?
答案1
白天和时间以及我认为的“遗留”协议。我猜它们包含在默认配置中,以实现传统 UNIX 风格的完整性。它们由 inetd 启动,除非您需要这些服务(如果您不得不询问,您可能不需要),否则您可以通过注释掉您配置文件中的相关行来禁用它们/etc/inetd.conf(看手册页)。
#ident stream tcp nowait _identd /usr/libexec/identd identd -el
#ident stream tcp6 nowait _identd /usr/libexec/identd identd -el
#daytime stream tcp nowait root internal
#daytime stream tcp6 nowait root internal
#time stream tcp nowait root internal
#time stream tcp6 nowait root internal
kill -HUP `cat /var/run/inetd.pid`
答案2
鉴于 pf 默认启用,您可以让 pf.conf 使用默认拒绝方法。假设你的接口是fxp0,这是一个很好的起始规则集。
set skip on lo0
block in fxp0
block out fxp0
pass out on fxp0 proto { tcp, udp, icmp } from any to any modulate state
pass in on fxp0 proto tcp from any to (fxp0) {22 80}
答案3
这个问题已经三年了,但我觉得应该回答:它们在默认安装中没有打开;至少,现在不再打开了。
OpenBSD 5.5 基础安装上的端口扫描仅显示 ssh:
Port Scan has started…
Port Scanning host: 192.168.1.29
Open TCP Port: 22 ssh
Port Scan has completed…
启用 httpd 并禁用 pfpfctl -d
仅显示 ssh 和 http:
Port Scan has started…
Port Scanning host: 192.168.1.29
Open TCP Port: 22 ssh
Open TCP Port: 80 http
Port Scan has completed…
这并不是说他们从未开放过,他们是在以前的版本中。它们是否是漏洞取决于用户。事实上,它们是非常简单的守护进程,我认为很难被利用。更多答案这里。