web服务器iptables配置脚本实现代码

 更新时间:2017年06月16日 14:40:46   投稿:lqh  
这篇文章主要介绍了web服务器iptables配置脚本实现代码的相关资料,需要的朋友可以参考下

web服务器iptables配置脚本 欢迎一起改进

 实现代码:

#!/bin/bash
# ID 201510192126
# Author Ricky
# E-mail 564001002@qq.com IT运维管理技术交流群 16548318
# CentOS 6 系统初始优化脚本
# version 1.0.0

#add iptables
yum -y install iptables

#iptables conf bak
if [ ! -e "/etc/sysconfig/iptables.bak" ]; then
  cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak > /dev/null 2>&1
fi

#add config
cat > /etc/sysconfig/iptables << EOF
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
# 防火墙规则有先后顺序,修改前请测试确定后更改
# E-Mail:564001002@QQ.COM
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:syn-flood - [0:0]

#RELATED,ESTABLISHED
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#io
-A INPUT -i lo -j ACCEPT

#ping
-A INPUT -p icmp -j ACCEPT

#redis
#-A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 6379 -j ACCEPT

#mysql
#-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT

#memcache
#-A INPUT -p tcp -m tcp --dport 11211 -j ACCEPT
#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 11211 -j ACCEPT

#php
#-A INPUT -p tcp -m tcp --dport 9000 -j ACCEPT
#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 9000 -j ACCEPT

#ssh
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --name SSH --rsource -j DROP
#-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource -j ACCEPT

#http 500 * 90% 需要限制情况下可以取消第一行注释
#-A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

#https 500 * 90% 需要限制情况下可以取消第一行注释
#-A INPUT -p tcp -m tcp --dport 443 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

#---service--------------------------------------------------
#DNS 安装DNS服务器后需要打开
#-A INPUT -p udp --sport 53 -j ACCEPT

#ntp 配置ntp服务器时候需要打开
#-A INPUT -p udp --sport 123 -j ACCEPT

#对外访问,比如api接口 需要结合OUTPUT DROP 全部关闭情况下才需要打开,这种限制非常严格情况下才配置
#-A OUTPUT -p tcp --dport 80 -j ACCEPT
#-A OUTPUT -p tcp --dport 443 -j ACCEPT

######################################################################################
#以下#号部分未测试或为成功,并可能有错误开启之前请先测试,并保证能与你的环境匹配
#syn-flood
#-A syn-flood -p tcp -m limit --limit 500/sec --limit-burst 10000 -j RETURN

#------FIN SYN RST ACK SYN-----------------
#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10/sec --limit-burst 100 -j ACCEPT
######################################################################################

#PORTSAN 端口扫描拒绝,缺少工具没能测试好,请慎用。
#-A INPUT -p tcp --syn -m recent --name portscan --rcheck --seconds 60 --hitcount 10 -j LOG
#-A INPUT -p tcp --syn -m recent --name portscan --set -j DROP

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT
EOF
/sbin/service iptables restart
source /etc/profile
chkconfig iptables on
/sbin/iptables -L -v
chkconfig | grep iptables
echo -e "\033[31m iptables ok \033[0m"


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 教你如何在ubuntu15.04安装 RVM

    教你如何在ubuntu15.04安装 RVM

    rvm 的全称是 Ruby Version Manager ,是一款由 Wayne E. Seguin 开发的一款命令行工具。rvm 能够让你轻松的安装、管理 ruby 生产力环境,诸如不同版本的解释器和 gem 。
    2015-11-11
  • CentOS7安装配置 Redis的方法步骤

    CentOS7安装配置 Redis的方法步骤

    这篇文章主要介绍了CentOS7安装配置 Redis的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 通过SSH连接本地linux虚拟机的过程记录

    通过SSH连接本地linux虚拟机的过程记录

    这篇文章主要介绍了通过SSH连接本地linux虚拟机的过程记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux下Redis设置密码及开机自启动

    Linux下Redis设置密码及开机自启动

    这篇文章主要介绍了Linux下Redis设置密码及开机自启动的相关资料,需要的朋友可以参考下
    2016-12-12
  • Vim命令高级用法

    Vim命令高级用法

    一些高级的Vim命令用法:同时编辑多个文件、文本重排、域操作、缓冲区的使用等命令。
    2013-11-11
  • linux系统下MongoDB单节点安装教程

    linux系统下MongoDB单节点安装教程

    这篇文章主要给大家介绍了在linux系统下mongo在单节点安装的方法教程,文中将实现的方法一步步介绍的非常详细,对大家学习或者使用具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2017-10-10
  • Apache之AllowOverride参数使用说明

    Apache之AllowOverride参数使用说明

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。
    2011-01-01
  • 详解Centos7.2编译安装zabbix3.2(详细步骤)

    详解Centos7.2编译安装zabbix3.2(详细步骤)

    这篇文章主要介绍了详解Centos7.2编译安装zabbix3.2(详细步骤),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Linux查看当前登录用户并踢出用户的命令

    Linux查看当前登录用户并踢出用户的命令

    这篇文章主要介绍了Linux查看当前登录用户并踢出用户的命令,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 清除CentOS 6或CentOS 7上的磁盘空间的方法

    清除CentOS 6或CentOS 7上的磁盘空间的方法

    这篇文章主要介绍了清除CentOS 6或CentOS 7上的磁盘空间的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论