可以通过修改/etc/ssh/sshd_config文件并重启sshd服务来实现限制端口。具体步骤如下:首先,使用命令行工具尝试编辑/etc/ssh/sshd_config文件,可能会遇到系统不让修改的情况,如提示“/etc/ssh/sshd_config E212: Can't open file for writing”。此时可以尝试使用sudo gedit /etc/ssh/sshd_config命令,系统会提示输入密码,输入密码后即可进行编辑。在文件中找到端口相关的配置项,进行端口的修改。修改完成后,保存退出。接着,重启sshd服务使修改生效。同时,可以使用命令判断端口是否被占用。例如,可以使用netstat -anp |grep 端口号来查看指定端口是否被占用,如sudo netstat -anp |grep 3306。若出现相关信息,则表示该端口被占用。此外,还可以使用lsof和ss命令检查端口占用情况。如lsof -i:<端口号>和ss -tuln | grep<端口号>,这些命令可以列出占用指定端口的进程信息。
2. 限定 IP
可以通过编辑/etc/hosts.deny和/etc/hosts.allow文件来实现特定 IP 或网段的连接限制。编辑/etc/hosts.deny文件,在其中可以加入特定的规则来限制 IP 连接。例如,可以加入sshd:ALL来限制所有 IP 的 SSH 连接;也可以加入特定的 IP 限制,如sshd:192.168.0.111限制特定 IP 的 SSH 连接;或者加入网段限制,如sshd:192.168.0.*限制特定网段的连接。编辑/etc/hosts.allow文件进行相应的允许设置。例如,sshd:192.168.0.123:allow允许特定 IP 的连接;sshd:192.168.0.*:allow允许特定网段的连接;或者直接加入 IP 或网段,如sshd:192.168.0.123、sshd:192.168.0.*。当hosts.allow和hosts.deny有 IP 地址冲突时,以hosts.allow的设置为准。一般情况下,hosts.allow和hosts.deny结合起来一起使用,才能保证更好的安全性。即在hosts.deny文件中写入“all:all:deny”,禁止一切 IP 地址远程访问所有资源,然后在hosts.allow文件中添加特定的 IP 地址允许远程访问资源即可。多个 IP 地址或 IP 地址段设置相同时,可以用逗号分割开来写在一行。
四、Linux 中访问特定 IP 和端口的方法
在 Linux 系统中,我们常常需要对特定 IP 和端口进行访问控制,以确保系统的安全性和稳定性。下面将介绍给特定 IP 段开放特定端口以及使用防火墙规则限制访问的方法。
关闭端口
可以使用firewall-cmd --zone=public --remove-port=3306/tcp --permanent命令关闭端口。例如,如果我们想要关闭 3306 端口,以防止未经授权的访问,可以执行这个命令。执行后,所有 IP 地址都将无法访问该端口。
开放端口给特定 IP 段
如果我们想要允许特定 IP 段访问特定端口,可以使用firewall-cmd --permanent --add-rich-rule=\"rule family=\"ipv4\" source address=\"192.168.0.0/24\" port protocol=\"tcp\" port=\"3306\" accept\"命令。这个命令允许 IP 地址在 192.168.0.0/24 网段的主机访问 3306 端口。其中,192.168.0.0/24 表示子网掩码为 255.255.255.0 的 IP 地址范围。