linux如何通过防火墙iptables做隔离端口的脚本

 更新时间:2023年06月03日 11:50:23   作者:数据湖填坑  
这篇文章主要介绍了linux如何通过防火墙iptables做隔离端口的脚本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

通过防火墙iptables做隔离端口的脚本

vi iptables_fix.sh
#!/bin/bash
#备份旧的规则
iptables-save > “/opt/firewall-“date "+%Y-%m-%d-%H:%M:%S"”.txt”

获取集群内hosts的ip,空格分隔

clusters=cat /etc/hosts | grep -v ::1 | grep -v "^$" | awk '{print $1}'

配置集群外的ip,空格分隔,格式如下

business=“127.0.0.1 172.17.0.1/16”

配置需要隔离的端口,空格分隔,以22为例

block_ports=“22”
echo “FireWall fix…”

新建chain

iptables -t filter -N BIGDATA_BLOCK_PORTS

添加集群内ip白名单

for block_port in $block_ports;
do
for chost in $clusters;
do
#echo $ahost
iptables -I BIGDATA_BLOCK_PORTS -s $chost -p tcp --dport $block_port -j ACCEPT
iptables -I BIGDATA_BLOCK_PORTS -s $chost -p udp --dport $block_port -j ACCEPT
done
done

添加集群外ip白名单

for block_port in $block_ports;
do
for bhost in $business;
do
#echo $ahost
iptables -I BIGDATA_BLOCK_PORTS -s $bhost -p tcp --dport $block_port -j ACCEPT
iptables -I BIGDATA_BLOCK_PORTS -s $bhost -p udp --dport $block_port -j ACCEPT
done
done

最后隔离端口

for block_port in $block_ports;
do
iptables -A BIGDATA_BLOCK_PORTS -p tcp --dport $block_port -j DROP
iptables -A BIGDATA_BLOCK_PORTS -p udp --dport $block_port -j DROP
done
将BIGDATA_BLOCK_PORTS加入INPUT和FORWARD
iptables -I INPUT -j BIGDATA_BLOCK_PORTS
iptables -I FORWARD -j BIGDATA_BLOCK_PORTS
echo "fix finished

同时开启firewall和iptables

使用向导

With the iptables service, every single change means flushing all the old rules and reading all the new rules from /etc/sysconfig/iptables, while with firewalld there is no recreating of all the rules. Only the differences are applied. Consequently, firewalld can change the settings during runtime without existing connections being lost.

翻译

firewalld与iptables(和ip6tables)服务的本质区别是:

iptables服务将配置存储在/etc/sysconfig/iptables和/etc/sysconfig/ip6tables中,而firewalld将配置存储在/usr/lib/firewalld/和/etc/firewalld/中的各种XML文件中。

注意,/etc/sysconfig/iptables文件不存在,因为在Red Hat Enterprise Linux上默认安装了firewalld。

在iptables服务中,每次更改都意味着刷新所有旧规则并从/etc/sysconfig/iptables读取所有新规则,而在firewalld中不需要重新创建所有规则。

只应用差异。因此,firewalld可以在运行时更改设置,而不会丢失现有的连接。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux docker neo4j导出方式(windows导入)

    linux docker neo4j导出方式(windows导入)

    在Docker中无法直接停止Neo4j服务备份,需创建临时容器并挂载宿主机/backup目录,确保版本一致及权限设置,导出文件后退出容器即可在宿主机备份目录获取数据
    2025-08-08
  • Linux下connect超时处理(总结)

    Linux下connect超时处理(总结)

    这篇文章主要介绍了Linux下connect超时处理(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 如何给Linux虚拟机连上WiFi详解

    如何给Linux虚拟机连上WiFi详解

    这篇文章主要介绍了如何给Linux虚拟机连上WiFi,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 如何重置 RHEL7/CentOS7 系统的root密码

    如何重置 RHEL7/CentOS7 系统的root密码

    这篇文章主要介绍了如何重置 RHEL7/CentOS7 系统的root密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Ubuntu16.04下CUDA8.0和CUDA9.0共存

    Ubuntu16.04下CUDA8.0和CUDA9.0共存

    这篇文章主要介绍了Ubuntu16.04下CUDA8.0和CUDA9.0共存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 安装Ubuntu20.04与安装NVIDIA驱动的教程

    安装Ubuntu20.04与安装NVIDIA驱动的教程

    这篇文章主要介绍了安装Ubuntu20.04,安装NVIDIA驱动的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • LNMP环境下搭建yum的方法分析

    LNMP环境下搭建yum的方法分析

    这篇文章主要介绍了LNMP环境下搭建yum的方法,结合实例形式较为详细的分析了LNMP环境下搭建yum的相关命令、配置与使用技巧,需要的朋友可以参考下
    2018-03-03
  • ubuntu20.04中文输入法安装步骤

    ubuntu20.04中文输入法安装步骤

    这篇文章主要介绍了ubuntu20.04中文输入法安装步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux使用cd命令之实现切换目录的完全指南

    Linux使用cd命令之实现切换目录的完全指南

    这篇文章主要介绍了Linux使用cd命令之实现切换目录的完全指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Linux文件系统的创建与挂载方法完整流程

    Linux文件系统的创建与挂载方法完整流程

    在现代操作系统中,文件系统是数据组织、存储和检索的核心机制,Linux 作为一款功能强大且高度灵活的操作系统,支持多种文件系统类型,本文将深入探讨 Linux 中文件系统的创建与挂载方法,需要的朋友可以参考下
    2026-03-03

最新评论