服务器如何配置安全端口?

1、将服务部署在公认的“安全”或“标准”端口上,以便客户端能够正常访问。

服务器怎么在安全端口

2、确保在该端口上提供的服务是加密和安全的,而不仅仅是端口号本身。

下面我将从这两个方面为您详细解释如何操作。

核心概念:什么是“安全端口”?

在网络安全中,并没有一个端口天生是“安全”的,端口的“安全性”取决于其上运行的服务和使用的协议。

标准加密端口通常指运行着加密协议 的知名端口。

端口 443 HTTPS, 用于加密的Web流量。

服务器怎么在安全端口

端口 22 SSH, 用于加密的远程登录和管理。

端口 995 POP3S, 加密的邮件接收。

端口 993 IMAPS, 加密的IMAP邮件协议。

端口 465587 SMTPS, 加密的邮件发送。

非加密端口与之相对,运行明文传输协议的端口被认为是不安全的。

服务器怎么在安全端口

端口 80 HTTP (明文)

端口 21 FTP (明文,密码可被嗅探)

端口 23 Telnet (明文)

端口 25 SMTP (通常为明文)

让服务器在“安全端口”上运行,本质上是:将服务配置为使用支持加密协议的软件,并监听对应的标准加密端口。

如何让服务器在安全端口上运行?(实操步骤)

这里以最常见的Web服务器 (HTTPS - 443)远程管理 (SSH - 22) 为例。

示例一:配置 Web 服务器 (Nginx/Apache) 使用 HTTPS (端口 443)

让网站从 HTTP (端口 80) 升级到 HTTPS (端口 443) 是“在安全端口运行”最典型的应用。

步骤 1:获取 SSL/TLS 证书

这是加密的基础,您可以从机构如 [Let‘s Encrypt](https://letsencrypt.org/)(免费)、DigiCert、Sectigo 等获取证书,使用 Let‘s Encrypt 的工具certbot 可以自动化这个过程。

步骤 2:安装证书

将获得的证书(通常包括.crt.key 文件)放在服务器的一个安全目录下,例如/etc/ssl/

步骤 3:配置 Web 服务器

Nginx 配置示例

修改网站配置文件(如/etc/nginx/sites-available/your_site):

    server {
        # 监听 443 端口并启用 SSL
        listen 443 ssl http2;
        server_name your_domain.com;
        # 指定证书路径
        ssl_certificate /etc/ssl/certs/your_domain.crt;
        ssl_certificate_key /etc/ssl/private/your_domain.key;
        # 其他配置...(如root目录、index文件等)
        # 强烈推荐:自动将HTTP(80)重定向到HTTPS(443)
        server {
            listen 80;
            server_name your_domain.com;
            return 301 https://$server_name$request_uri;
        }
    }

Apache 配置示例

修改虚拟主机文件(如/etc/apache2/sites-available/your_site.conf):

    <VirtualHost *:443>
        ServerName your_domain.com
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/your_domain.crt
        SSLCertificateKeyFile /etc/ssl/private/your_domain.key
        # 其他配置...
    </VirtualHost>
    # HTTP 重定向
    <VirtualHost *:80>
        ServerName your_domain.com
        Redirect permanent / https://your_domain.com/
    </VirtualHost>

步骤 4:重启 Web 服务器

对于 Nginx
sudo systemctl reload nginx
对于 Apache
sudo systemctl reload apache2

您的 Web 服务器就在安全的443 端口上提供加密服务了。

示例二:确保 SSH (端口 22) 的安全

端口 22 是 SSH 的标准端口,但默认配置可能不安全,需要加固。

1、更改默认端口(可选但推荐)

虽然 22 是标准端口,但也是暴力破解的主要目标,可以修改为另一个端口(如6022)。

编辑/etc/ssh/sshd_config

    Port 6022

注意:修改后,连接时必须显式指定端口号:ssh -p 6022 user@yourserver

2、禁用 root 登录

防止攻击者直接攻击 root 账户。

    PermitRootLogin no

3、使用密钥认证,禁用密码认证

密钥比密码安全得多。

    PasswordAuthentication no
    PubkeyAuthentication yes

4、重启 SSH 服务

    sudo systemctl restart sshd

这些操作确保了在22(或您自定义)端口上的服务本身是安全的。

补充安全措施:防火墙

仅仅配置服务还不够,必须使用防火墙来控制端口的访问。

只开放必要的端口一个Web服务器通常只开放80(HTTP)、443(HTTPS)和 22(SSH)

使用防火墙工具

UFW (Uncomplicated Firewall - 简单防火墙)适用于 Ubuntu/Debian。

        sudo ufw allow 22    # 允许SSH
        sudo ufw allow 80    # 允许HTTP
        sudo ufw allow 443   # 允许HTTPS
        sudo ufw enable      # 启用防火墙

firewalld适用于 CentOS/RHEL/Fedora。

        sudo firewall-cmd --permanent --add-service=ssh
        sudo firewall-cmd --permanent --add-service=http
        sudo firewall-cmd --permanent --add-service=https
        sudo firewall-cmd --reload

iptables底层的防火墙工具,功能强大但更复杂。

让服务器在安全端口上运行,是一个多步骤的过程:

1、选择协议:决定使用哪种加密协议(HTTPS, SSH, FTPS等)。

2、获取凭证:获取对应的安全证书(如SSL证书)或密钥对(用于SSH)。

3、配置服务:修改服务端软件(Nginx, Apache, sshd等)的配置文件,指定使用加密协议、监听正确端口并指向您的证书/密钥。

4、配置防火墙:确保防火墙只允许您希望开放的特定端口(如443, 22),并拒绝所有其他不必要的端口。

5、测试与重启:重启服务和应用防火墙规则,然后使用客户端(浏览器、SSH客户端)测试连接是否正常且加密。

端口的安全取决于其上运行的服务和协议,而不仅仅是端口号本身。

文章摘自:https://idc.huochengrm.cn/fwq/15508.html

评论