清空规则:
iptales -F
添加默认规则:
iptables -P 链 动作
添加一个放行80端口的规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-A 追加一条规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-F 清空(flush)
-N 新建(new-chain)一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链(delete-chain)
-P 设置指定链的默认策略(policy)
-n 使用数字形式(numeric)显示输出结果
-v 查看规则表详细信息(verbose)的信息
常用的匹配条件:
-p: 协议
-s: 源地址
-d: 目标地址
–dport: 目标端口
–sport: 源端口
动作:
ACCEPT: 放行
DROP: 丢弃
REJECT: 拒绝
#!/bin/bash
while true
do
echo "1.放行端口"
echo "2.封锁端口"
echo "3.放行IP"
echo "4.封锁IP"
read -ep "请输入你的操作:" aa
case $aa in
1)
read -ep "请输入你要放行的端口:" port
echo "正在放行..."
iptables -I INPUT -p tcp --dport $port -j ACCEPT
echo "放行规则添加成功"
read -ep "是否继续输入:" sf
case $sf in
y|yes|Y)
continue
;;
n|no|N)
break
;;
esac
;;
2)
read -ep "请输入你要封锁的端口:" port
echo "正在封锁..."
iptables -I INPUT -p tcp --dport $port -j DROP
echo "封锁成功..."
read -ep "是否继续输入:" sf
case $sf in
y|yes|Y)
continue
;;
n|no|N)
break
;;
esac
;;
3)
read -ep "请输入你要放行的IP:" ip
echo "正在添加放行规则"
iptables -I INPUT -s $ip -j ACCEPT
echo "放行规则添加成功"
read -ep "是否继续输入:" sf
case $sf in
y|yes|Y)
continue
;;
n|no|N)
break
;;
esac
;;
4)
read -ep "请输入你要封锁的IP:" ip
echo "正在封锁..."
iptables -I INPUT -s $ip -j DROP
echo "封锁成功..."
read -ep "是否继续输入:" sf
case $sf in
y|yes|Y)
continue
;;
n|no|N)
break
;;
esac
;;
*)
echo "输入有误,退出脚本"
break
;;
esac
done