• 开放端口和关闭端口


    前言

    最近用 Linux 的时候,经常需要操作端口,开放端口、关闭端口等。比如在服务器上开启 Jupyter notebook 服务,但是因为没有开放端口,访问不到,这时就需要开放端口。为了开放端口,一查发现 Linux 上的网络管理工具挺多的,firewall、ufw、iptables、netstat 等等,一时不知道用哪一个。这篇博客记录一下,Linux 上的 ip 和端口相关的管理,以及 ssh 登录白名单等操作。

    概述

    详细介绍看 [1],下面概述。

    iptables: 不同 Linux 发行版上都有的工具,主要使用来控制 ip 和端口的出和入
    firewall: CentOS 上才有的,底层是 iptables
    ufw: Ubuntu 上才有,底层也是 iptables
    netstat: 查看端口进出的状况

    网络一般分为进和出,Linux 一般禁用所有出口,开放所有入口。为了让外部的主机可以访问当前的 Linux,需要让当前的 Linux 允许数据流出,即开放出口或者直接关闭防火墙。现在的云服务提供商,比如阿里云,会有一个安全组,允许我们操作端口的出入,不过这一套安全组和 Linux 自带的防火墙是两套东西。为了访问阿里云的服务器,不仅需要设置安全组,还需要设置 Linux 的防火墙。

    iptables

    下面记录 iptables 的使用,我用的就是这个。firewall 和 ufw 就不记录了,用到的时候查一下。现在只要知道 CentOS 用 firewall,Ubuntu 用 ufw 就行。防火墙作为一项服务,在 CentOS 上如果用 firewall,需要先关闭 iptables 服务。[1]

    [2] [4] 对 iptables 做了非常详细的介绍。[5] 侧重讲使用和原理。

    广义上的 iptables 实际上是由 netfilter 和 iptables 两个组件组成。而狭义上的 iptables 是指一个命令行工具,用于配置管理信息包的过滤规则。真正起到信息包过滤作用的是 netfilter 组件。

    下面记录命令行工具 iptables 的使用,我并非网络管理人员,只是有时候需要打开关闭一下端口而已,所以下面的记录只记录我需要的几条命令。无非就是查看规则,增加和删除规则。复杂功能等有需要再查,就算学了也记不得哈哈。

    查看规则

    可以看到不同的 chain,不同的 chain 代表数据流动上的一个节点/关卡。我只需要关注 INPUT 和 OUTPUT 就好了。FORWARD 是转发,如果数据包目的不是本机,会进行转发。

    sudo iptables -L                  # 查看所有规则
    sudo iptables -t filter -L        # 查看 filter 表上的规则
    sudo iptables -L INPUT            # 查看 INPUT 节点上的规则
    sudo iptables -L OUTPUT           # 查看 OUTPUT 节点上的规则
    sudo iptables --line -vnL         # 列举规则,带有统计信息和编号(用于删除)
    

    添加规则

    sudo iptables -A INPUT -p tcp --dport 12346 -j ACCEPT
    

    删除规则

    sudo iptables -t filter -D INPUT 3
    

    ssh 黑白名单

    [3] 有详细介绍。有时候 ssh 访问不了,不是因为端口问题,而是因为 ssh 进行了黑名单配置。

    用户黑白名单:在 /etc/ssh/sshd_config 进行配置
    IP 黑白名单:在 /etc/hosts.allow/etc/hosts.deny 进行配置。如果冲突,allow 优先。

    参考链接

    [1] https://blog.csdn.net/xundh/article/details/79160808
    [2] https://blog.konghy.cn/2019/07/21/iptables/
    [3] https://www.cnblogs.com/xiaochina/p/5920057.html
    [4] https://www.zsythink.net/archives/1199
    [5] https://www.zsythink.net/archives/1493

  • 相关阅读:
    迭代器和生成器
    20.03.23作业
    装饰器
    集合
    元组类型
    字典类型
    列表类型
    字符串类型
    for循环
    深浅copy与while循环
  • 原文地址:https://www.cnblogs.com/zzk0/p/15076772.html
Copyright © 2020-2023  润新知