一个简单的防火墙(iptables)实例

#!/bin/bash
#
#for centos7 iptables table
#
#yum install iptables-services -y
#
#
#规则的排列是有顺序的
#
#清除默认规则

iptables -F
iptables -X
iptables -Z

#设置策略

iptables -P INPUT DROP
#iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#定制规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -s 10.44.148.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.51.177.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.51.181.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.44.148.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.51.179.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.44.167.0/21 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.44.200.0/21 -j ACCEPT

#eth1定制规则
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 52113 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
#mysql
iptables -A INPUT -i eth1 -p tcp --dport 3306 -j ACCEPT
#redis
iptables -A INPUT -i eth1 -p tcp --dport 6380 -j ACCEPT
#mongodb
iptables -A INPUT -i eth1 -p tcp --dport 27017 -j ACCEPT
#svn
iptables -A INPUT -i eth1 -p tcp --dport 3690 -j ACCEPT
#address
iptables -A INPUT -i eth1 -p tcp --dport 7070 -j ACCEPT
#admin117
iptables -A INPUT -i eth1 -p tcp --dport 7474 -j ACCEPT
#bigscreen
iptables -A INPUT -i eth1 -p tcp --dport 9999 -j ACCEPT
#bss
iptables -A INPUT -i eth1 -p tcp --dport 9191 -j ACCEPT
#callcenter
iptables -A INPUT -i eth1 -p tcp --dport 7171 -j ACCEPT
#employee
iptables -A INPUT -i eth1 -p tcp --dport 9292 -j ACCEPT
#jenkins
iptables -A INPUT -i eth1 -p tcp --dport 9595 -j ACCEPT
#mobile
iptables -A INPUT -i eth1 -p tcp --dport 9393 -j ACCEPT
#oa
iptables -A INPUT -i eth1 -p tcp --dport 9494 -j ACCEPT
#选址分析
iptables -A INPUT -i eth1 -p tcp --dport 7373 -j ACCEPT
#mysql-tool
iptables -A INPUT -i eth1 -p tcp --dport 9797 -j ACCEPT
#universiyt
iptables -A INPUT -i eth1 -p tcp --dport 9696 -j ACCEPT
#university_test
iptables -A INPUT -i eth1 -p tcp --dport 7272 -j ACCEPT

iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

#NAT规则

#次规则只需在NAT服务器上配置,其他内网机指定网关(gateway)为此内网IP

#清除NAT table 的规则

#iptables -F -t nat
#iptables -X -t nat
#iptables -Z -t nat
#iptables -t nat -P PREROUTING ACCEPT
#iptables -t nat -P POSTROUTING ACCEPT
#iptables -t nat -P OUTPUT ACCEPT

#iptables -A INPUT -i eth1 -j ACCEPT
#echo "0" > /proc/sys/net/ipv4/ip_forward

#把收到的所有数据包SNAT成101.200.177.83发出去

#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 101.200.177.83
#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 101.200.177.83

#DNAT转换,公网IP 在eth0    内网IP 192.168.1.10(注意内网防火墙)

#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 13306 -j DNAT --to-destination 10.51.177.139:3306
#iptables -t nat -A PREROUTING -i eth1 -d 101.200.177.83 -p tcp --dport 13306 -j DNAT --to-destination 115.28.134.12:3306

#写入防火墙规则
#/etc/init.d/iptables save
#/usr/libexec/iptables/iptables.init save
service iptables save

时间: 2024-10-10 12:22:01

一个简单的防火墙(iptables)实例的相关文章

一个简单的jsp+servlet实例,实现简单的登录

开发环境myeclipse+tomcat5.5 一.先创建web project 在菜单栏选File->New->Web->Dynamic Web Project Project name我命名为JavaWebTest01 (可以随便起) Target runTime 选我们之前tomcat配置的版本. 一直NEXT到Finish 二.新建jsp页面 1.在WebContent下新建一个jsp页面(如果列表里没有jsp选项,到other里去找) 这里我给jsp页面的名字命为welcome

工位上的Python——一个简单的UDP广播实例

最近状态神勇,头脑清晰,趁此良机,多多学习,多多看书,把以前看不懂的地方重新看了下,收获匪浅,现把两个简单的小例子献给大家: 先是一个简单的UDP广播接收的小服务器,使用UDP广播,需要注意下协议的使用,已经最最重要的socket选项的设置,设置为传说中的"socket.SO_BROADCAST",不需要有监听,接收客户端的消息使用recvfrom,发送消息使用sendto: 代码如下: !/usr/bin/env python  #coding:utf-8 import socket

一个简单的Android小实例

一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台 3.安装JDK 二.intellij idea新建Android工程 1.File->New-Project... 2.选择Android->Application Module,下一步 说明:建议选择这个项,建立的是一个可以运行的几乎是空的工程,是用ant进行构建的目录结构: gradle:Android module,建立的工程是以gradle

利用Maven快速创建一个简单的spring boot 实例

Spring Boot的好处:spring boot 大大减少了 使用spring的配置 和大量 xml 文件,并有效解决的项目之间的依赖问题,为想使用 spring项目 大大减轻的工作量 1.先创建一个Maven项目 2.配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

一个简单的.NET MVC实例

看到某博主的文章觉得很有用,拿过来自己动手实现一下: MVC框架里,有些默认的路由规则(当然是可以自定义的),这个规则比较特别 好了,直接来个实例吧! 首先,新建一个空的MVC项目,如图,这里是MVC 2.0版 这里命名为"FirstMvc" ,自动添加好了项目的目录结构 在"Controller"目录下面新建一个控制器,命名为"MemberController.cs" 同时在"View"目录下添加相应的视图,这里添加一个In

【安卓开发】一个简单快递查询APP实例的实现摘要

前言 做毕业设计涉及到安卓开发,决定好好学习安卓开发.在正式做毕业设计之前,有必要先设计和完成一个与毕业设计最终成果相关的demo或者说样例APP.最终毕业设计需要实现的功能包括通过调用PHP端API实现JSON获取和解析,等功能.而快递查询APP恰好具有我最终实现功能大部分的前置效果,故选取制作一个快递查询APP来练手 关键词 安卓开发.JSON .API .HTTP.毕业设计 历程记录 平台和工具(开发.调试.运行) 本案例使用的开发工具为AndroidStudio3.4,在开发向导内选择从

Node.js 一个简单的博客实例

原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第一章,由于版本等的原因,在原教程基础上稍加改动即可实现. 环境: win7旗舰版64位 Node.js:0.10.31 mongodb:2.6.4 express:3.× 效果: 注册界面: 登录界面: 登录成功: 发表博客: 发表成功: 源代码: blog/ blog/package.json { "name": "blog", "version"

一个简单的php函数调用实例

需求分析: funcs.php (这个文件,我们定义了一个函数) 1 <?php 2 3 //我们一个计算,+ - * / 的代码集合->函数 4 //1. function 是一个关键字 5 //2. jiSuan 函数名(由程序员取名) 6 //3. $num1,$num2,$oper 是函数的参数列表(形参) 7 function jiSuan($num1,$num2,$oper){ 8 //$res 表示计算的结果 9 $res=0; 10 switch($oper){ 11 12 c

一个简单的WPF MVVM实例【转载】

引用地址:http://blog.csdn.net/yl2isoft/article/details/20838149 1 新建WPF 应用程序WPFMVVMExample 程序结构如下图所示. 2 Model实现 在Model文件夹下新建业务类StudentModel(类文件StudentModel.cs),类的详细代码如下所示. [csharp] view plain copy using System.ComponentModel; namespace WPFMVVMExample.Mod