Skip to content

Eternal Center

  • Single Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Other (其它)
    • Ideas (思路)
    • Language (语言)
    • Project (项目)
  • Eternity (永恒)
    • Creations (创作)
    • Classics (经典)
    • Chronicle (编年史)
    • News (消息)

Category: System Login Security (系统登录安全)

Posted on December 15, 2019June 19, 2022

[命令] Linux 命令 firewall-cmd (设置防火墙)

内容一:防火墙信息查询

1.1 防火墙运行状态查询

# firewall-cmd –state

1.2 显示防火墙紧急模式是否开启 (是否拒绝所有网络)

# firewall-cmd –query-panic

1.3 防火墙默认信息查询

1.3.1 显示防火墙的所有区域
# firewall-cmd --get-zones
1.3.2 显示防火墙支持的所有服务
# firewall-cmd --get-services
1.3.3 显示防火墙支持的所有 icmp 协议
# firewall-cmd --get-icmptypes

1.4 显示防火墙当前所在的区域

# firewall-cmd --get-default-zone

1.5 显示防火墙的策略

1.5.1 显示防火墙当前所在区域的策略
1.5.1.1 显示防火墙当前所在区域的所有策略
# firewall-cmd --list-all
1.5.1.2 显示防火墙当前所在区域的复杂 (rich) 策略
# firewall-cmd --list-rich-rules
1.5.2 显示所有区域的所有策略
# firewall-cmd --list-all-zones

(
补充:firewall-cmd 防火墙默认区域有:
1) block 拒绝被访问,并回应一个拒绝的信息
2) work 只允许部分端口被访问,例如 22 端口
3) home 只允许部分端口被访问,例如 22 端口
4) public 只允许部分端口被访问,例如 22 端口
5) dmz 只允许部分端口被访问,例如 22 端口
6) trusted 全部开放
7) drop 禁止被访问,不回应一个拒绝的信息
8) internal 只允许部分端口被访问,例如 22 端口
9) external 只允许部分端口被访问,例如 22 端口
)

1.5.3 显示某个区域的策略
1.5.3.1 显示某个区域的所有策略
1.5.3.1.1 显示某个区域的所有策略的格式
# firewall-cmd --zone=<zone> --list-all
1.5.3.1.2 显示某个区域的所有策略的案例
# firewall-cmd --zone=public --list-all

(补充:这里以显示 public 区域的策略为例)

1.5.3.2 显示某个区域的复杂 (rich) 策略
1.5.3.2.1 显示某个区域的复杂 (rich) 策略的格式
# firewall-cmd --zone=<zone> --list-rich-rules
1.5.3.2.2 显示某个区域的复杂 (rich) 策略的案例
# firewall-cmd --zone=public --list-rich-rules

(补充:这里以显示 public 区域的复杂 (rich) 策略为例)

1.5.4 显示某个区域某个服务的策略
1.5.4.1 显示某个区域某个服务的策略的格式
# firewall-cmd --zone=<zone> --query-service=<service>
1.5.4.2 显示某个区域某个服务的策略的案例
# firewall-cmd --zone=public --query-service=https

(补充:这里以显示 public 区域的 https 服务的策略为例)

1.6 显示网卡所在的区域

1.6.1 显示哪些区域被放入了网卡
# firewall-cmd --get-active-zones

(注意:只有放入了网卡的区域才会处于激活状态)

1.6.2 显示某网卡所属的区域
1.6.2.1 显示某网卡所属的区域的格式
# firewall-cmd –get-zone-of-interface=<network card>
1.6.2.2 显示某网卡所属的区域的案例
# firewall-cmd --get-zone-of-interface=eth0

(补充:这里以显示 eth0 网卡属于哪一个区域为例)

内容二: 区域的网卡管理

2.1 显示网卡所在的区域

2.1.1 显示哪些区域被放入了网卡
# firewall-cmd --get-active-zones

(注意:只有放入了网卡的区域才会处于激活状态)

2.1.2 显示某网卡所属的区域
2.1.2.1 显示某网卡所属的区域的格式
# firewall-cmd –get-zone-of-interface=<network card>
2.1.2.2 显示某网卡所属的区域的案例
# firewall-cmd --get-zone-of-interface=eth0

(补充:这里以显示 eth0 网卡属于哪个区域为例)

2.2 将某网卡放入某个区域

2.2.1 将某网卡放入某个区域的格式
# firewall-cmd --zone=<zone> --add-interface=<network card>
2.2.2 将某网卡放入某区域的案例
# firewall-cmd --zone=public --add-interface=eth0

(补充:这里以往 public 区域里加入 eth0 网卡为例)

2.3 将某网卡从某区域删除

2.3.1 将某网卡从某区域删除的格式
# firewall-cmd --zone=<zone> --remove-interface=<network card>
2.3.2 将某网卡从某区域删除的案例
# firewall-cmd --zone=public --remove-interface=eth0

(补充:这里以从 public 区域删除 eth0 网卡为例)

内容三:防火墙区域设置

3.1 显示防火墙目前所在的区域

# firewall-cmd --get-default

3.2 指定防火墙的区域

3.2.1 指定防火墙的区域的格式
# firewall-cmd --set-default=<zone>
3.2.2 指定防火墙的区域的案例
# firewall-cmd --set-default=public

(补充:这里以将默认区域设置为 public 为例)

内容四:防火墙暂时策略设置 (防火墙重启后失效)

(注意:防火墙的规则没有现后之分,但是拒绝规则永远高于允许规则)

4.1 开放策略相关

4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某端口
4.1.1.1.1 暂时在防火墙当前所在区域里开放某端口的格式
# firewall-cmd --add-port=<port>/tcp
4.1.1.1.2 暂时在防火墙当前所在区域里开放某端口的案例
# firewall-cmd --add-port=80/tcp

(补充:这里以暂时添加 80/TCP 端口为例)

4.1.1.2 暂时在防火墙当前所在区域里开放某服务的所有端口
4.1.1.2.1 暂时在防火墙当前所在区域里开放某服务的所有端口的格式
# firewall-cmd --add-service=<service>
4.1.1.2.2 暂时在防火墙当前所在区域里开放某服务的所有端口号的案例
# firewall-cmd --add-service=http

(补充:这里以暂时添加 http 服务为例)

4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某端口
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"
4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 开放 80/tcp 端口为例)

4.1.1.4 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口
4.1.1.4.1 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"
4.1.1.4.2 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.1.5 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"
4.1.1.5.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某端口
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某端口的格式
# firewall-cmd --remove-port=<port>/tcp
4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某端口的案例
# firewall-cmd --remove-port=80/tcp

(补充:这里以暂时关闭 80/TCP 端口为例)

4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口的格式
# firewall-cmd --remove-service=<service>
4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口号的案例
# firewall-cmd --remove-service=http

(补充:这里以暂时关闭 HTTP 服务为例)

4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某端口
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某端口的格式
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"
4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某端口的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 关闭 80/tcp 端口为例)

4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口的格式
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"
4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某 IP 地址外的 IP 地址开放多个端口
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的格式
# firewall-cmd --remove-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"
4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某 IP 地址外的 IP 地址开放多个端口的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.2 拒绝策略相关

4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某端口
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"

(
补充:
1) 这里以在 public 区域拒绝 192.168.1.0/24 访问 80/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.2.1.2 暂时在防火墙当前所在区域里对某 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对某网段拒绝某端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"

(
补充:
1) 这里以在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.2.1.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(
补充:
1) 这里以拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"

(
补充:
1) 这里以取消在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某 IP 地址拒绝多个端口
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"

(
补充:
1) 这里以取消拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口的格式
# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(
补充:
1) 这里以取消拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应
)

4.3 转发策略相关

4.3.1 开启防火墙转发策略
# firewall-cmd --add-masquerade --permanent

(注意:只有开启了防火墙转发策略之后防火墙才能转发端口)

4.3.2 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口
4.3.2.1 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口的格式
# firewall-cmd --add-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>
4.3.2.2 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口的案例
# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

4.3.3 暂时在防火墙当前所在区域里关闭已开放的某端口跳转到另 1个 IP 地址的另 1 个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的某个端口跳转到另 1 个 IP 地址的另 1 个端口的格式
# firewall-cmd --remove-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>
4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的某个端口跳转到另 1 个 IP 地址的另 1 个端口的案例
# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以取消将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

内容五:将防火墙不带优先级策略的设置方法转换成指定优先级策略的设置方法

(
注意:
1) 此方法只对复杂 (rich) 策略有效
2) 此方法只对较新的 firewall-cmd 防火墙有效
)

5.1 firewall-cmd 防火墙优先级介绍

1) 优先级数字的范围从 -32768 到 32767
2) 数字越低代表优先级越高

5.2 防火墙不带优先级策略的设置方法

和内容一、内容二、内容三、内容四里的相关设置命令一样,例:

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以对 192.168.1.0/24 开放 80/tcp 端口为例)

5.3 防火墙指定优先级策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在其中添加 priority= 参数,例:

# firewall-cmd --add-rich-rule="rule priority=100 family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以对 192.168.1.0/24 开放 80/tcp 端口并将优先级设置为 100 为例)

内容六:将防火墙当前所在区域策略的设置方法转换成指定区域策略的设置方法

6.1 防火墙当前所在区域策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,例:

# firewall-cmd --add-port=80/tcp

(补充:这里以在当前所在区域添加 80/tcp 端口为例)

6.2 防火墙指定区域策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在其中添加 –-zone= 参数,例:

# firewall-cmd --add-port=80/tcp --zone=public

(补充:这里以在 public 区域添加 80/tcp 端口为例)

内容七:防火墙暂时禁止 icmp 的设置

7.1 防火墙暂时禁止 icmp

# firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

7.2 防火墙暂时取消禁止 icmp

# firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'

内容八:防火墙紧急模式的管理 (拒绝所有网络)

8.1 防火墙开启紧急模式 (拒绝所有网络)

# firewall-cmd –panic-on

8.2 防火墙取消紧急模式 (取消拒绝所有网络)

# firewall-cmd –panic-off

8.3 显示防火墙紧急模式是否开启 (是否拒绝所有网络)

# firewall-cmd –query-panic

内容九:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法

9.1 防火墙暂时策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,例:

# firewall-cmd --add-port=80/tcp

(补充:这里以临时添加 80/tcp 端口为例)

9.2 防火墙永久策略的设置

和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在其中添加 –permanent 参数,例:

# firewall-cmd --add-port=80/tcp --permanent

(补充:这里以永久添加 80/tcp 端口为例)

(注意:永久策略设置后,防火墙要重新加载才会生效)

9.3 防火墙限时策略的设置

和内容一、内容二、内容三、内容四的大部分设置命令一样,但是需要在后面添加 –timeout=<秒> 参数,例:

# firewall-cmd --add-port=80/tcp --timeout=3600

(补充:这里以在 3600 秒期间添加 80/tcp 端口为例)

(注意:此策略会在 3600 秒后失效)

内容十:防火墙策略的加载

10.1 使用防火墙命令加载策略

# firewall-cmd --reload

(注意:此时暂时策略会失效,永久策略会生效)

10.2 在系统层面上重启防火墙以加载策略

# systemctl retart firewalld

(注意:此时暂时策略会失效,永久策略会生效)

相关链接:与 firewall-cmd 相关的 shell 脚本

Shell 在 firewalld 防火墙上批量对多个 IP 地址开发多个端口号

Shell 在 firewalld 防火墙上开放所有正在处于监听状态的端口号

Shell 在 firewalld 防火墙上取消所有已设置的复杂端口号策略

Shell 在 firewalld 防火墙上取消所有已开放的端口号

Posted on December 11, 2019August 15, 2022

[命令] Linux 命令 iptables (设置防火墙) (转载)

一、iptables命令

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

1.1 语法

iptables(选项)(参数)

    1

1.2 选项
选项 	描述
-t<表> 	指定要操纵的表;
-A 	向规则链中添加条目;
-D 	从规则链中删除条目;
-i 	向规则链中插入条目;
-R 	替换规则链中的条目;
-L 	显示规则链中已有的条目;
-F 	清楚规则链中已有的条目;
-Z 	清空规则链中的数据包计算器和字节计数器;
-N 	创建新的用户自定义规则链;
-P 	定义规则链中的默认目标;
-h 	显示帮助信息;
-p 	指定要匹配的数据包协议类型;
-s 	指定要匹配的数据包源ip地址;
-j<目标> 	指定要跳转的目标;
-i<网络接口> 	指定数据包进入本机的网络接口;
-o<网络接口> 	指定数据包要离开本机所使用的网络接口。

1.3 iptables命令选项输入顺序

    iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

1.3.1 表名包括:

    raw:高级功能,如:网址过滤。
    mangle:数据包修改(QOS),用于实现服务质量。
    net:地址转换,用于网关路由器。
    filter:包过滤,用于防火墙规则。

1.3.2 规则链名包括

    INPUT链:处理输入数据包。
    OUTPUT链:处理输出数据包。
    PORWARD链:处理转发数据包。
    PREROUTING链:用于目标地址转换(DNAT)。
    POSTOUTING链:用于源地址转换(SNAT

1.3.3 动作包括

    accept:接收数据包。
    DROP:丢弃数据包。
    REDIRECT:重定向、映射、透明代理。
    SNAT:源地址转换。
    DNAT:目标地址转换。
    MASQUERADE:IP伪装(NAT),用于ADSL。
    LOG:日志记录。

二、示列

# 清除已有iptables规则
iptables -F
iptables -X
iptables -Z

# 开放指定的端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

# 屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

# 显示已添加的iptables规则
iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0  

# 删除已添加的iptables规则
iptables -L -n --line-numbers # 将所有iptables以序号标记显示
iptables -D INPUT 8 #比如要删除INPUT里序号为8的规则
————————————————
版权声明:本文为CSDN博主「书香水墨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27870421/article/details/93166786

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
站主补充一:iptables 保证现有连接不会被禁止的防火墙规则
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

站主补充二:iptables 保证本地环路不会被禁止的防火墙规则
# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT

站主补充三:iptables 清空某一张表的规则
3.1 iptables 清空 filter 表的规则
# iptables -t filter -F

3.2 iptables 清空 nat 表的规则
# iptables -t nat -F

站主补充四:iptables 设置某一个链的默认规则
4.1 将某一个默认规则设置成允许
4.1.1 iptables 将 OUTPUT 链的默认规则设置为允许
# iptables -P OUTPUT ACCEPT

(补充:这里以将 OUTPUT 链设置为允许为例)

4.1.2 iptables 将 INPUT 链的默认规则设置为允许
# iptables -P INPUT ACCEPT

(补充:这里以将 INPUT 链设置为允许为例)

4.1.3 iptables 将 FORWAED 链的默认规则设置为允许
# iptables -P FORWARD ACCEPT

(补充:这里以将 FORWARD 链设置为允许为例)

4.2 将某一个默认规则设置成丢掉
4.2.1 iptables 将 OUTPUT 链的默认规则设置为丢掉
# iptables -P OUTPUT DROP

(补充:这里以将 OUTPUT 链设置为丢掉为例)

4.2.2 iptables 将 INPUT 链的默认规则设置为丢掉
# iptables -P INPUT DROP

(补充:这里以将 INPUT 链设置为丢掉为例)

4.2.3 iptables 将 FORWAED 链的默认规则设置为丢掉
# iptables -P FORWARD DROP

(补充:这里以将 FORWAED 链设置为丢掉为例)

站主补充五:iptables 一次性添加多个不连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30,80,3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3306 端口为例)

站住补充六:iptables 一次性添加多个连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30 端口为例)

站住补充七:iptables 一次性添加多个连续和不连续端口的策略
# iptables -I INPUT -p TCP -m multiport --dport 22:30,80,3301:3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3301 到 3306 端口为例)

站主补充八:iptables 一次性给多个 IP 地址添加多个端口的策略
# iptables -I INPUT -s 192.168.1.1,192.168.1.5,192.168.1.100-110 -p TCP -m multiport --dport 22:30,80,3306 -j ACCEPT

(补充:这里以将 INPUT 链里添加允许 192.168.1.1、192.168.1.5、192.168.1.100 到 192.168.1.110 的 22 到 30、80、3301 到 3306 端口为例)

站主补充九:iptables 删除一条规则
9.1 显示所有规则的编号
# iptables --list --line-numbers

9.2 删除某一条规则
# iptables -D INPUT 3

(补充:这里以删除编号为 3 个规则为例)

站主补充十:iptables icmp 也就是 ping 的管理
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 8 #允许 icmp 进去
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 0 #允许 icmp 响应出去

站主补充十一:iptables 的规则保存
# iptables-save

或者:

# service iptables save

(注意:此方法只在 CentOS 7 & RHEL 7 有用)

站主补充十二:iptables 显示所有规则
12.1 iptables 显示所有规则
# iptables -nL

12.2 iptables 显示所有规则以及其中的详细信息
# iptables -nvl

(补充:比起 iptables -nL 命令,iptables -nvl 命令可以显示协议里的更详细内容,比如对 iptables 对 lo 网卡进行的规则)

12.3 iptables 显示所有规则并显示编号
# iptables --list --line-numbers

12.4 iptables 显示某一张表里的所有规则
# iptables -L -v -t filter -n --line-numbers
Posted on November 4, 2019June 18, 2022

[命令] Linux 命令 screen (防终端断开)

内容一:创建 screen 窗口

# screen -S <screen window name>

(补充:这样会同时创建并且进入 screen 窗口中)

内容二:挂起 screen 窗口

2.1 进入 screen 窗口后或者已经在 screen 窗口中时挂起

2.1.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

2.1.2 挂起 screen 窗口

同时按下 “ctrl” 键和 “a” 键和 “d” 键

(补充:这里 d 代表的是 Detached 的意思)

2.2 直接挂起某一个 screen 窗口

# screen -d <screen window name>

内容三:显示所有存在的 screen 窗口

# screen -ls
        6474.1  (Attached)
        29438.2 (Detached)

(
补充:这里以显示
1) 激活状态(Attached)的 screen 窗口 1 为例
2) 挂起状态(Detached)的 screen 窗口 2 为例
)

内容四:进入已存在的 screen 窗口

4.1 进入处于挂起状态的 screen 窗口

# screen -r <screen window name>

4.2 进入处于工作状态的 screen 窗口

4.2.1 方法一:强制将这个 screen 窗口设置为挂起状态后再进入
4.2.1.1 先挂起 screen 窗口再进入 screen 窗口
4.2.1.1.1 挂起 screen 窗口
# screen -d <screen window name>

(注意:此时正在使用这个 screen 窗口的人会断开)

4.2.1.1.2 进入 screen 窗口
# screen -r <screen window name>
4.2.1.2 同时挂起 screen 窗口并进入 screen 窗口
# screen -d -r <screen window name>

(注意:此时正在使用这个 screen 窗口的人会断开)

4.2.2 方法二:共享这个 screen 窗口
# screen -x <screen window name>

内容五:删除 screen 窗口

5.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

5.2 删除 screen 窗口

# exit

内容六:给某个 screen 再创建一个窗口

6.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

6.2 给某个 screen 窗口再创建一个窗口

同时按下 “ctrl” 键和 “a” 键和 “c” 键

内容七:切换 screen 窗口

7.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

7.2 切换 screen 窗口

同时按下 “ctrl” 键和 “a” 键和 “<screen window name code>”

内容八:在进入 screen 窗口的状态下显示窗口列表

8.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

8.2 在进入 screen 窗口的状态下显示窗口列表

同时按下 “ctrl” 键和 “a” 键和 “w” 键

Posted on October 26, 2019July 29, 2022

[命令] Linux 命令 last (显示系统关机记录和用户登录记录)

案例一:只显示最近的 10 条记录

# last -n 10

或者:

# last -10

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例二:指定 btmp 为查询文件

# last -f /var/log/btmp

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例三:将 IP 地址转换为主机

# last -d

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例四:显示 2019 年 10 月 10 日之前的 10 条记录

# last -10 -t 201910100000

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例五:显示某 1 个用户的记录

# last zhumingyu

(补充:这里以显示用户 zhumingyu 为例)

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例六:显示最后一次重启的时间

# last | grep reboot | head -1

或者:

# last reboot | head -1

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例七:显示最后一次关机的时间

# last | grep -i shutdown | head -1

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例八:显示最后一次用户登录的时间

# last | grep pts | head -1

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例九:显示系统运行等级的变化

# last -x | grep runlevel

(补充:这里 -x 的作用是把系统运行等级的显示也显示出来,同时显示全系统 kernel 的变换)

(注意:last 命令显示用户时最多只会显示前 8 个字符)

案例十:显示系统 kernel (内核) 的变化

# last -xF | egrep "reboot|shutdown|runlevel|system"

(
补充:
1) 这里 -x 的作用是把系统运行等级的显示也显示出来,同时显示全系统 kernel 的变换)
2) 这里 -F 的作用是加大显示结果
)

(注意:last 命令显示用户时最多只会显示前 8 个字符)

Posted on August 25, 2019July 5, 2022

[步骤] Linux 密码的安全 (设置密码默认有效期和密码最小长度)

步骤一:备份用户密码安全策率的文档

# cp /etc/login.defs /etc/login.defs.old

步骤二:修改用户密码安全策略的文档

# vim /etc/login.defs

将部分内容修改如下:

......
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_MIN_LEN  15
PASS_WARN_AGE 7
......

(
补充:这里以
1) 密码有效期为 90 天
2) 密码最小修改间隔为 0 天
3) 密码最小长度为 15 个字符
4) 密码快过期时提前 7 天发出警告
为例
)

Posts navigation

Previous page Page 1 … Page 15 Page 16 Page 17 Next page

Aspiration (愿景):

Everyone can achieve self achievement and self happiness fairly

每个人都能公平地实现自我成就和自我幸福

Position (位置):

Running on Evolution Host and DigitalOcean

正在 Evolution Host 和 DigitalOcean 上运行

Logo (徽标):

Additional Information (其他信息):

About Manual Clone Contact
Disclaimer Donation Friendly Links
关于 说明书 克隆 联系
免责申明 捐赠 友情链接

Standby IP Address (备用 IP 地址):

152.69.204.95  150.230.63.10  Please configure before use / 请先配置再使用

Search Outside Website (站外搜索):

Google Wikipedia Bing
Proudly powered by LNMP Proudly powered by WordPress