2025年3月19日 星期三 甲辰(龙)年 月十八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 系统应用 > Linux

linux-iptables安全加固脚本(可重复执行)

时间:06-08来源:作者:点击数:52

linux-iptables安全加固脚本(可重复执行)

  • #!/bin/bash
  • chain_name="zgp" #自定义的规则链
  • ip_list="192.168.5.1" #ip地址,也可以填写网段:192.168.5.0/24
  • tcp_or_udp="tcp udp" #协议类型
  • tcp_port="22 1111" #tcp端口
  • udp_port="53 55" #udp端口
  • logfile="/tmp/iptable.log" #日志
  • ######################################################################
  • #日志函数
  • log(){ echo -e 【INFO `date '+%Y-%m-%d %H:%M:%S'` `hostname`】 "\033[34m$1 \033[0m" |tee -a $logfile; }
  • #iptables保存函数
  • restart_iptables(){ log "save iptables." && service iptables save; }
  • #提示函数
  • Usage(){
  • log "\nUSAGE:\n 【 sh ./iptables.sh install ###配置自定义的iptables规则 】
  • 【 sh ./iptables.sh remove ###移除自定义的iptables规则 】"
  • exit 0
  • }
  • #自定义链及规则
  • install(){
  • log "Ready to add iptables. "
  • chain_m=`iptables -L -n|grep "Chain $chain_name"|grep -v grep |wc -l`
  • if [ $chain_m -eq 0 ];then
  • log "iptables -N $chain_name. " && iptables -N $chain_name
  • fi
  • for x in $tcp_or_udp;do
  • case $x in
  • "tcp")
  • for y in $tcp_port;do
  • log "iptables -A $chain_name -s $ip_list -p $x --dport $y -j ACCEPT. "
  • iptables -A $chain_name -s $ip_list -p $x --dport $y -j ACCEPT
  • done ;;
  • "udp")
  • for z in $udp_port;do
  • log "iptables -A $chain_name -s $ip_list -p $x --dport $z -j ACCEPT. "
  • iptables -A $chain_name -s $ip_list -p $x --dport $z -j ACCEPT
  • done ;;
  • esac
  • done
  • log "add $chain_name to chain INPUT. " && iptables -A INPUT -j $chain_name
  • log "set chain INPUT DROP" && iptables -P INPUT DROP
  • }
  • #移除链及规则
  • remove(){
  • log "set chain INPUT ACCEPT." && iptables -P INPUT ACCEPT
  • n=`iptables -nL INPUT --line-numbers |grep -w -o $chain_name|wc -l`
  • if [ ${n} -ne 0 ];then
  • log "remove chain $chain_name from INPUT" && iptables -D INPUT `iptables -nL INPUT --line-numbers |grep $chain_name|awk '{print $1}'`
  • fi
  • log "clean chain $chain_name. " && iptables -F $chain_name && iptables -X $chain_name
  • }
  • case $1 in
  • 'install')
  • remove; install; restart_iptables ;;
  • 'remove')
  • remove && restart_iptables ;;
  • *)
  • Usage ;;
  • esac

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门