V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
monkeydev
V2EX  ›  问与答

Ubuntu 开启 ufw 的问题

  •  
  •   monkeydev · 2023-07-04 21:08:21 +08:00 · 1471 次点击
    这是一个创建于 507 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我买了一台服务器,ssh 端口非 22 ,例如 12121

    在 Ubuntu 上开启了 UFW 防火墙,并且 SSH 端口不是默认的 22 端口,导致无法通过 SSH 连接到 Ubuntu 系统

    请问有什么方式自动判断 ssh 端口,然后添加端口到防火墙昵,再执行 sudo ufw enable
    15 条回复    2023-07-06 09:10:12 +08:00
    Salud
        1
    Salud  
       2023-07-04 21:13:50 +08:00
    westoy
        2
    westoy  
       2023-07-04 21:21:17 +08:00
    自己写个 systemctl 脚本, 尾行 sshd.service , 一启动就去读/etc/ssh/sshd_config 看绑定的是哪个端口, 然后去操作 ufw
    infun
        3
    infun  
       2023-07-04 21:26:44 +08:00   ❤️ 1
    ufw 不是默认开启的
    可以先查看/编辑 SSH 的端口
    ```bash
    vim /etc/ssh/sshd_config
    /etc/init.d/ssh restart
    ```
    然后再设置 ufw
    baobao1270
        4
    baobao1270  
       2023-07-04 21:44:42 +08:00
    1. 查看 /etc/ssh/sshd_config 配置,找到当前配置的 SSH 端口,比如 12121
    2. ufw allow 12121
    3. ufw enable
    monkeydev
        5
    monkeydev  
    OP
       2023-07-04 22:01:48 +08:00
    @infun
    感谢答复
    我是希望在脚本执行的过程中,自动获取到 ssh 端口,然后自动添加,不需要自己去看
    monkeydev
        6
    monkeydev  
    OP
       2023-07-04 22:02:06 +08:00
    @baobao1270
    就是不想自己查看昵
    感谢
    monkeydev
        7
    monkeydev  
    OP
       2023-07-04 22:02:49 +08:00
    @Salud
    这个脚本倒是没问题
    就是想自动读取读取之后,然后自动添加昵
    不想再手动执行啊
    infun
        8
    infun  
       2023-07-04 22:07:37 +08:00
    #!/bin/bash

    # 查询 SSH 端口
    ssh_port=$(sudo grep -i 'Port' /etc/ssh/sshd_config | awk '{print $2}')

    # 启用防火墙规则
    sudo ufw allow $ssh_port

    # 重启防火墙
    sudo ufw reload
    monkeydev
        9
    monkeydev  
    OP
       2023-07-04 22:20:51 +08:00
    @infun
    666
    baobao1270
        10
    baobao1270  
       2023-07-04 22:34:49 +08:00
    @monkeydev 感觉你在问一个 X-Y problem


    对于 X-Y Problem 的意思如下:

    1 )有人想解决问题 X
    2 )他觉得 Y 可能是解决 X 问题的方法
    3 )但是他不知道 Y 应该怎么做
    4 )于是他去问别人 Y 应该怎么做?

    简而言之,没有去问怎么解决问题 X ,而是去问解决方案 Y 应该怎么去实现和操作

    所以你为什么「需要自动判断端口」
    ysc3839
        11
    ysc3839  
       2023-07-04 23:40:47 +08:00 via Android
    @Salud 个人建议换 firewalld ,网络管理器也建议顺便换成 NetworkManager 。
    之前用 ufw 整点高级功能 (如端口转发) 发现不支持,缺少各种功能,然后在另一台 CentOS 的机子上弄过之后发现 firewalld 和 NetworkManager 都挺好用的,也不复杂,就直接换掉了。
    cslive
        12
    cslive  
       2023-07-05 08:50:08 +08:00
    ufw 不太好用,跟 podman 有冲突,死活不放行 podman 容器端口,我直接卸了,用厂商提供的安全组
    monkeydev
        13
    monkeydev  
    OP
       2023-07-05 14:51:18 +08:00
    @baobao1270
    不是你说的意思

    我写了一个脚本,这个脚本需要开启 ufw

    但是开启 ufw 的话,会导致 ssh 断开

    所以我想在我的脚本里面增加一个自动获取 ssh 端口,然后放行这个端口

    这样我整个脚本就可以流畅运行了
    psiKENT
        14
    psiKENT  
       2023-07-06 08:29:39 +08:00 via iPhone
    你的 ssh 端口总是在变化吗?
    monkeydev
        15
    monkeydev  
    OP
       2023-07-06 09:10:12 +08:00
    @psiKENT
    不变化
    只是允许脚本的过程中,我希望实时获取,获取一次就可以
    就是这个脚本我想写成一个
    而不是想把获取 ssh 的单独再写一个,这个意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:00 · PVG 03:00 · LAX 11:00 · JFK 14:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.