liunx主机关闭高危端口

我记得有一次,当我在处理公司服务器时,我突然发现某个特定端口(4 4 5 )被频繁扫描,我突然注意到了。
这时,我立刻坐在电脑前,打开终端,开始按照上面的步骤操作。

首先我使用netstat -tuln命令发现4 4 5 端口正在监听。
然后我用 lsof -i:4 4 5 命令检查,发现 smbd 服务正在使用这个端口。
然后我决定使用 systemctl stop smbd 来停止该服务并使用 systemctl disable smbd 来禁用启动。

之后,我打开ufw防火墙并输入命令ufw拒绝4 4 5 /tcp来阻止对该端口的访问。
我记得当终端显示“ufw 添加规则”时,我感觉舒服多了。

为了彻底起见,我还决定检查 iptables 配置,输入命令 iptables -A INPUT -p tcp --dport 4 4 5 -j DROP 并将规则保存在 /etc/iptables/rules.v4 中。

最后,我还修改了smbd配置文件,将“disable”设置为“yes”,并重新启动了xinetd服务。

该过程完成后,我再次使用nmap localhost扫描端口,发现4 4 5 端口确实不再开放。
虽然这个过程有点繁琐,但我还是很高兴服务器安全性得到了提升。

等等,还有一件事:我突然注意到,虽然我们关闭了高风险端口,但服务器上的其他服务也可能面临风险。
那么我们是否应该定期检查以确保服务器安全呢?

linux系统下查看端口的占用情况

直接使用lsof -i:端口号查看端口占用情况。

例如,要检查端口 8 08 0,请输入 lsof -i:8 08 0。

当你看到哪个PID繁忙时,使用kill -9 PID来杀死它。

如果kill不起作用,请尝试kill -9 PID。

但是这样做是有风险的,数据可能会丢失。
你自己看看吧。

linux中怎么查看端口是否被占用

您好,我之前在我的服务器上多次遇到过这个问题,所以我给您一个想法。

上周,一位客户询问如何检查特定端口(例如3 3 06 )是否正在使用。
所有提到的方法都是可靠的。
下面我就详细的告诉大家我的实际操作经验。

第一种方法是使用netstat和grep。
这种方法最为经典,但使用时需要注意细节。
sudo netstat -anp 说了什么 | grep 3 3 06 实际上可以找到它。
关键是要确保输出具有 LISTEN 状态并且是 tcp 协议。
比如我上次检查上海机房服务器的时候,出现了LISTEN 0 5 1 1 mysqld,说明MySQL被占用了。
但是,如果您是普通用户,则需要添加 sudo。
否则,您将不会在最后一列中看到进程名称。
如果直接从 root 运行它,就不会有这个问题。

其次,netstat -nultp 检查所有监听端口。
这种方法比较暴力,直接列出所有占用的物品。
上次我在北京数据中心使用这个命令时,突然出现一个屏幕,我不得不一一搜索。
例如,运行sudo netstat -nultp,直接查找8 2 端口,如果没有找到该端口,则说明该端口未被占用。
但你是对的。
默认情况下,仅显示监听状态。
要查看所有连接,请删除 -l 并更改为 netstat -nutp。

三、区分LISTEN和LISTENING 这一点尤其重要!我以前遇到过陷阱,有时输出中会出现“LISTENING”,但这可能是由于错误标记的工具或非标准输出造成的。
必须同时满足。
协议为tcp或tcp6 ,状态为LISTEN,端口号正确。
这意味着它实际上正在使用中。
例如,如果您在 grep 8 2 之后没有看到任何内容,那么基本上就没有问题。

对于第四种方法,我们推荐使用 ss 命令。
我经常使用它,它比 netstat 快得多。
ss 对 -tulnp 有何评论? grep 8 2 很完美,输出清晰,进程信息清晰。
上次检查老家的小机房,用ss几乎没有延迟,但用netstat就更慢了。

总结我的建议: 检查端口时 netstat -anp | grep 端口号或 ss -tulnp | grep 端口号。
占用确认取决于 LISTEN 状态和进程名称。
普通用户需要添加sudo,root可以直接使用。

但是,如果您是那种喜欢操作命令的人,您可能需要尝试其他方法,例如使用 lsof -i :port number。
你也可以找到这个方法:我前段时间刚刚尝试过,发现ss最方便,所以就没有再改了。

无论如何,这取决于你。
哪种方法适合您取决于您​​的习惯。