iptables 规则

适用于白名单-端口限制

配合 IP 清单文件一起执行

#!/bin/bash

#writed by Xu
#date:2020-04-27

#获取当前工作目录
dir=$(cd `dirname $0`; pwd)
#echo ${dir}
log=${dir}/iptables.log
#echo ${log}

#---------首次执行请执行以下规则策略---------

#清除预设表filter中的所有规则链的规则
iptables -F
#清除预设表filter中使用者自定链中的规则
iptables -X

#禁止进站访问以及转发
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#开放 icmp
#iptables -A INPUT -p icmp -j ACCEPT
#允许loopback
#iptables -A INPUT -A lo -p all -j ACCEPT

#开放特定端口
#iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

#时间同步服务器
#iptables -A INPUT -s 192.168.2.2 -j ACCEPT

#网管机服务器
#iptables -A INPUT -s 192.168.2.2 -j ACCEPT

#---------追加端口规则请关闭以上规则策略---------

#---------指定 IP 访问特定端口---------

echo -e "Input your port:"
read port

for line in `cat ${dir}/ip.txt`
do
        iptables -I INPUT -s ${line} -p tcp --dport ${port} -j ACCEPT 2>&1 |tee -a ${log}
        if [ $? -eq 0 ];then
                echo -e "端口 `echo ${port}` 针对 IP `echo ${line}` ACCEPT 策略执行成功" 2>&1 |tee -a ${log}
        else
                echo -e "端口 `echo ${port}` 针对 IP `echo ${line}` ACCEPT 策略执行失败,核查相关原因 `echo ${log}`" 2>&1 |tee -a ${log}
                exit
        fi
done

#---------以上是针对端口策略---------

#---------指定特定 IP 策略---------(需将参数 -A 改为 -I)

for line in `cat ${dir}/ip.txt`
do
        iptables -I INPUT -s ${line} -p tcp -j ACCEPT 2>&1 |tee -a ${log}
        if [ $? -eq 0 ];then
                echo -e "针对 IP `echo ${line}` ACCEPT 策略执行成功" 2>&1 |tee -a ${log}
        else
                echo -e "针对 IP `echo ${line}` ACCEPT 策略执行失败,核查相关原因 `echo ${log}`" 2>&1 |tee -a ${log}
                exit
        fi
done

#---------以上是针对 IP 策略---------(需将参数 -A 改为 -I)

#其次封堵该端口
#iptables -A INPUT -p tcp  --dport ${port} -j DROP

#封堵 INPUT 链(默认规则)
#iptables -P INPUT DROP

#开放 OUTPUT 链(默认规则)
#iptables -P OUTPUT ACCEPT

#封堵 FORWARD 链(默认规则)
#iptables -P FORWARD DROP

#保存iptables配置
service iptables save
#重启iptables服务
service iptables restart
#开机启动iptables服务
chkconfig iptables on

#查看 iptables 规则
#iptables -nL --line-number

#删除 iptables 规则
#iptables -D INPUT 1
#!/bin/bash

#writed by Xu
#date:2020-04-27

echo -e "iptables 防火墙策略规则脚本"
echo -e "脚本传参执行:端口,IP,以及相应规则"
PORT=$1
IPADDR=$2
RULE=$3


#获取当前工作目录
dir=$(cd `dirname $0`; pwd)
#echo ${dir}
log=${dir}/iptables.log
#echo ${log}


#开启防火墙
systemctl  start  firewalld 2>&1|tee -a ${log}

#判断传参个数
if [ $# -ne 3 ];then
        echo -e "请输入规范参数,端口,IP,相应规则"
        exit
else
        #判断第一个参数值($1)是否为数字端口
        if [ -n "`echo ${PORT}|sed 's/[0-9]//g'`" ];then
                echo -e "请检查端口输入是否正确" |tee -a ${log}
                exit
        else
                #判断第二个参数($2)是否为有效IP
                if [[ ! ${IPADDR} =~ ^[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[1-9]{1,3}$ ]];then
                        echo -e "请检查 IP 输入是否正确" |tee -a ${log}
                        exit
                else
                        #判断第三个参数($3)是否为字母
                        if [[ ! ${RULE} =~ ^[A-Z]+$ ]];then
                                echo -e "请检查规则输入是否规范" |tee -a ${log}
                                exit
                        else
                                #iptables 命令
                                iptables -I INPUT -s ${IPADDR} -p tcp --dport ${PORT} -j ${RULE} 2>&1 |tee -a ${log}
                                        #判断命令执行是否成功
                                        if [ $? -eq 0 ];then
                                                echo -e "端口 `echo ${PORT}` 针对 IP `echo ${IPADDR}` 执行策略 `echo ${RULE}` 成功" |tee -a ${log}
                                        else
                                                echo -e "端口 `echo ${PORT}` 针对 IP `echo ${IPADDR}` 执行策略 `echo ${RULE}` 失败,请核查相关原因 `echo ${log}`"
                                        fi
                        fi
                fi
        fi
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值