RSF*_*on7 23 security smtp cups nmap
几天前,我开始非常关心我的数据安全,结果我nmap自己:nmap 127.0.0.1
惊喜,惊喜,我有很多活跃的服务监听本地主机:
$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Run Code Online (Sandbox Code Playgroud)
我可能会使用的唯一一个是ssh(虽然它可能没有很好地配置,但我会将这个问题留到另一个问题中去)。
据我所知ipp,CUPS 使用协议来共享我的打印机,我不需要共享它们,只需从服务器访问打印机。
这是netstat -lntuproot 用户的输出,删除本地主机地址:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 497/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2217/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:50022 0.0.0.0:* LISTEN 1021/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 906/rpcbind
tcp6 0 0 :::22 :::* LISTEN 497/sshd
tcp6 0 0 :::42712 :::* LISTEN 1021/rpc.statd
tcp6 0 0 :::445 :::* LISTEN 892/smbd
tcp6 0 0 :::139 :::* LISTEN 892/smbd
tcp6 0 0 :::111 :::* LISTEN 906/rpcbind
udp 0 0 0.0.0.0:51566 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:68 0.0.0.0:* 7362/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 906/rpcbind
udp 0 0 192.168.1.255:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:137 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:655 0.0.0.0:* 906/rpcbind
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2217/dropbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:34805 0.0.0.0:* 1021/rpc.statd
udp6 0 0 :::40192 :::* 1021/rpc.statd
udp6 0 0 :::111 :::* 906/rpcbind
udp6 0 0 :::655 :::* 906/rpcbind
udp6 0 0 :::5353 :::* 615/avahi-daemon: r
udp6 0 0 :::42629 :::* 615/avahi-daemon: r
Run Code Online (Sandbox Code Playgroud)
我如何配置这些服务,以便它们只在我实际使用它们时监听外部世界?
slm*_*slm 27
从netstat命令中获取输出,看起来很多服务实际上是一个非常短的列表:
$ netstat -lntup | awk '{print $6 $7}'|sed 's/LISTEN//'| cut -d"/" -f2|sort|uniq|grep -v Foreign
avahi-daemon:r
dhclient
dropbox
nmbd
rpcbind
rpc.statd
smbd
sshd
Run Code Online (Sandbox Code Playgroud)
查看此列表,我会忽略一些服务。
您可以立即禁用 Samba,它占上述服务中的 2 个,nmbd并且smbd. 值得怀疑的是,您是否真的需要在笔记本电脑上运行它,无论是在本地主机上还是在您面对网络的 IP 上。
要检查它们是否正在运行,您可以使用以下命令status:
$ status nmbd
nmbd start/running, process 19457
$ status smbd
smbd start/running, process 19423
Run Code Online (Sandbox Code Playgroud)
关闭服务可能会与 upstart、/etc/rc.d、business 发生的所有变化混淆,因此可能很难确定哪种服务采用哪种技术。对于 Samba,您可以使用以下service命令:
$ sudo service nmbd stop
nmbd stop/waiting
$ sudo service smbd stop
smbd stop/waiting
Run Code Online (Sandbox Code Playgroud)
现在他们关闭了:
$ status nmbd
nmbd stop/waiting
$ status smbd
smbd stop/waiting
Run Code Online (Sandbox Code Playgroud)
为了让他们远离我一直在使用这个工具,sysv-rc-conf从控制台管理服务,它比大多数都好。它允许您检查要运行的服务以及它们应该在哪个运行级别启动/停止:
$ sudo apt-get install sysv-rc-conf
Run Code Online (Sandbox Code Playgroud)

所以现在 Samba 关闭了,我们只剩下以下内容:
对于剩下的 3 个,您也可以执行我们为 Samba 所做的相同操作来关闭它们。
要关闭 CUPS(顺便说一下您并不真正需要它),您可以按照关闭服务然后禁用它启动的相同步骤。为了能够打印,您需要在系统上单独设置每台打印机。您可以通过system-config-printerGUI 执行此操作。
这确实是您问题的核心,但并没有真正的灵丹妙药使这些服务变得“智能”,以便它们在使用时运行,而不是一直运行。
#1 - systemd 与新贵部分原因是目前systemd和upstart之间的分歧。此处对 2 种竞争技术进行了很好的概述。
两种技术都试图做略有不同的事情,IMO,鉴于它们的功能集,systemd 似乎更适合服务器,而 upstart 似乎更适合桌面卷。随着时间的推移,这将自行解决,IMO,并且这两种服务都将稳定且功能丰富。
最终,这两种服务都将为它们管理的所有服务提供按需启动和停止服务。例如,诸如此类的功能StopWhenUnneeded=yes已经存在systemd,因此这些功能得到充实只是时间问题。
有些服务根本不支持停止/启动。像这样的服务sshd按需运行似乎没有什么意义,尤其是在它们被大量使用的情况下。此外,一些服务(例如 Apache)在其自身内部提供了机制,以启动或多或少的自己的侦听器来管理自己。因此,尚不清楚这些类型的服务如何按需提供systemd或upstart将如何与这些类型的服务集成。
您会听到双方都说这是矫枉过正,或者您应该采取极简主义的方法,只安装您绝对需要的东西,但这确实是个人选择。了解这些服务的存在以及它们的作用才是真正重要的。归根结底,计算机是一种工具,通过使用 Unix 系统,您已经表示您愿意窥视幕后并了解是什么让您的计算机运转。
我想说这种类型的提问正是人们在处理计算机和 Unix 时应该努力的心态。
von*_*and 12
127.0.0.1 不是“外面的世界”,它是在屋内环顾四周。
检查您的防火墙配置(当今 Linux 中的 iptables),其中大部分不应从外部访问。
不要运行不需要的服务。卸载所有不需要的软件。
更改密码以使其更强大。检查您对系统的使用情况,不要随意去追逐任何有趣的网站。检查浏览器的反网络钓鱼、反脚本等配置。修改您对 SSH 和 su/sudo 的使用。