iptables增加和删除防火墙规则

shell脚本:

#!/bin/bash

usage() {
    echo "usage(): "
    echo "xxx_network --add|-a       Append rule "
    echo "xxx_network --delete|-d    Delete rule"
    echo "xxx_network --search|-s    Print the rules"
}

iptables_add() {
    local ret

    ret=`iptables -S | grep "N xxx_service"`
    if [ ! -n "${ret}" ];then
        iptables -N xxx_service
    fi

    ret=`iptables -S | grep "A INPUT -j xxx_service"`
    if [ ! -n "${ret}" ];then
        iptables -I INPUT 1 -j xxx_service
    fi

    ret=`iptables -S | grep "A IN_public -j xxx_service"`
    if [ ! -n "${ret}" ];then
        iptables -I IN_public 1 -j xxx_service
    fi

    ret=`iptables -S | grep "A xxx_service -p udp -m state --state NEW -m udp --dport 5000 -j ACCEPT"`
    if [ ! -n "${ret}" ];then
        iptables -A xxx_service -p udp -m state --state NEW -m udp --dport 5000 -j ACCEPT
    fi

    ret=`iptables -S | grep "A xxx_service -p tcp -m state --state NEW -m tcp --dport 60000 -j ACCEPT"`
    if [ ! -n "${ret}" ];then
        iptables -A xxx_service -p tcp -m state --state NEW -m tcp --dport 60000 -j ACCEPT
    fi
}

iptables_delete() {
    #INPUT (1,1)
    INPUT_RET=`iptables -L INPUT -n --line-number | grep xxx_service | sed -n "1, 1p" | awk '{print $1}'`
    if [ -n "${INPUT_RET}" ];then
        iptables -D INPUT ${INPUT_RET}
    fi

    #IN_public (1,1) 
    IN_PUBLIC_RET=`iptables -L IN_public -n --line-number | grep xxx_service | sed -n "1, 1p" | awk '{print $1}'`
    if [ -n "${IN_PUBLIC_RET}" ];then
        iptables -D IN_public ${IN_PUBLIC_RET}
    fi

    XXX_SERVICE_RET=`iptables -S | grep "N xxx_service"`
    if [ "${XXX_SERVICE_RET}" = "-N xxx_service" ];then
	    #xxx_service
        XXX_RET=`iptables -L xxx_service -n --line-number | awk 'END{print NR}'`
        if [ "${XXX_RET}" -gt 2 ];then
            for i in $(seq 3 ${XXX_RET})
            do
                iptables -D xxx_service 1
            done
        fi

        #-X xxx_service
        XXX_SERVICE=`iptables -S | grep "xxx_service"`
        if [ "${XXX_SERVICE}" = "-N xxx_service" ];then
            iptables -X xxx_service
        fi
    fi
}

iptables_search() {
    iptables -S
}

while :; do
    case "$1" in 
        -a|--add) 
	    shift
            ADD=1
            break
            ;;
        -d|--delete)
	    shift
            DELETE=1
            break
            ;;
        -s|--search)
	    shift
            SEARCH=1
            break
            ;;
    esac
done

参考网址:

(1) Iptables Essentials: Common Firewall Rules and Commands.

GitHub - trimstray/iptables-essentials: Iptables Essentials: Common Firewall Rules and Commands.

(2)iptables基础知识详解

iptables基础知识详解_Larry的博客-CSDN博客_iptables

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
删除iptables防火墙规则,可以使用以下命令: iptables -D \[链名称\] \[规则编号\] 其中,\[链名称\]是要删除规则的链的名称,可以是INPUT、FORWARD或OUTPUT等。\[规则编号\]是要删除规则在链中的编号。 例如,如果要删除INPUT链中的第一条规则,可以使用以下命令: iptables -D INPUT 1 请注意,删除规则后,iptables防火墙的配置文件不会自动更新。如果希望永久删除规则,需要手动编辑配置文件并保存。 引用\[2\]中的命令示例展示了如何添加和删除规则,可以根据需要进行参考和修改。 #### 引用[.reference_title] - *1* [iptables基本管理的删除、清空指定的防火墙规则](https://blog.csdn.net/Z_xiao_feng/article/details/90649008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [iptables防火墙规则的添加、删除、修改、保存](https://blog.csdn.net/smh821025/article/details/43957111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [linux的iptable规则配置-删除规则](https://blog.csdn.net/qq_35488367/article/details/129381176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值