----------------------------iptables企业应用

****************************单机防火墙列表
#!/bin/bash
#===================<set variable>=================
IPT=/sbin/iptables
SERVER=192.168.0.1
PARTNER=192.168.0.200
#===================<Clear Original Rule>==========
$IPT -A INPUT -p tcp -m state --state INVALID -j DROP
$IPT -A INPUT -p tcp -d $SERVER --dport 25 -j ACCEPT
$IPT -A INPUT -p tcp -d $SERVER --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp -d $SERVER --dport 110 -j ACCEPT
$IPT -A INPUT -p tcp -s $PARTNER -d $SERVER --dport 22 -j ACCEPT
$IPT -A INPUT -p tcp -s $PARTNER -d $SERVER --dport 23 -j ACCEPT
$IPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
****************************网关防火墙列表
-------外网 --------------------网关防火墙-------------------内网PC1 192.168.0.200
10.0.100 eth0 eth1 |
10.0.1.200 192.168.0.1 内网PC2 192.168.0.100
#!/bin/bash
#===================<set variable>=================
IPT=/sbin/iptables
MAIL_SER=10.0.1.100
ACC_PC=192.168.0.200
INTERNAL=192.168.0.0/24
EXTERNAL=10.0.1.200
#===================<Set Default Policy>==========
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
#===================<Clear Original Rule>=========
$IPT -t filter -F
#===================<Set INPUT Rule>==============
$IPT -A INPUT -p tcp -m state --state INVALID -j DROP
$IPT -A INPUT -p tcp -m state --state ESTABLISEHD,RELATED -j ACCEPT
#===================<Set FORWARD Rule>==============
$IPT -A FORWARD -i eth0 -o eth1 -m state --state INVALID -j DROP
$IPT -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISEHD,RELATED -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p tcp -s $ACC_PC -d $MAIL_SER --dport 25:100 -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p all -s $ACC_PC -j DROP
$IPT -A FORWARD -i eth1 -o eth0 -p tcp --dport 25,110 -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p tcp --dport 80,443 -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT
$IPT -A POSTROUTING -o eth0 -s $INTERNAL -j NAT --to $EXTERNAL
****************************发布ssh端口
-------外网 --------------------网关防火墙-------------------内网PC1 192.168.0.200
10.0.100 eth0 eth1 |
10.0.1.200 192.168.0.1 内网PC2 192.168.0.100
#!/bin/bash
#===================<set variable>=================
IPT=/sbin/iptables
INTERNAL=192.168.0.0/24
NAT_E=10.0.1.200
PC1=192.168.0.200
PC2=192.168.0.100
#===================<Set Default Policy>==========
echo 1 > /proc/sys/net/ipv4/ip_forward
#===================<Clear Original Rule>=========
$IPT -t filter -F
$IPT -t nat -F
#===================<Set INPUT Rule>==============
$IPT -A INPUT -p tcp -m state --state INVALID -j DROP
$IPT -A INPUT -p tcp -m state --state ESTABLISEHD,RELATED -j ACCEPT
#===================<Set PREROUTING Chain>==============
$IPT -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to $PC1:22
$IPT -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to $PC1:23
#===================<Set POSTROUTING Chain>==============
$IPT -A POSTROUTING -o eth0 -s $INTERNA -j DNAT --to $NAT_E
*****************升级kernel
# rpm -ivh kernel-2.6.32-431.5.1.el6.src.rpm
# cd rpmbuild/SOURCES
# tar -jxvf linux-2.6.32-431.5.1.el6.tar.bz2 -C /usr/src/
# cd /usr/src/
# ln -sv linux-2.6.32-431.5.1.el6 linux
# tar -zxvf netfilter-layer7-v2.23.tar.gz -C /usr/src/
# cd /usr/src/linux
# patch -p1 < /usr/src/netfilter-layer7-v2.23/kernel-2.6.32-layer7-2.23.patch
# cp /boot/config-2.6.32-431.el6.x86_64 ./config
你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令
#make mrproper
使用make oldconfig可以继承老的kernel的配置,为自己的配置省去很多麻烦
#make oldconfig
#make menuconfig是文字界面下推荐一种方式,在这里可以选择你需要编译到核心的模块
# make menuconfig
yum install gcc* -y
yum install ncurses-devel -y
# make menuconfig
空格键用于选择配置类型
对不同功能的配置选择
[ ]:空选时表示不需要在新内核中使用该功能
[ M ]:表示将此项功能编译为模块,以便在需要时加载 Module
[ * ]:将此项功能直接编入新内核,作为新内核的一部分需要配置哪些内核编译参数
*/
#Networking support --->
# Networking options --->
# Network packet filtering framework (Netfilter) --->
# iP:netfilter configuraton --->
<M> IPv4 connection tracking support (required for NAT)
# Full NAT
#Networking support --->
# Networking options --->
# Network packet filtering framework (Netfilter) --->
# core netfilter configuration --->
<M> Netfilter connection tracking support
# "connlimit" match support"
# "time" match support
# "string" match support
# "layer7" match support
# [*] Layer 7 debugging output
或者:
Networking support → Networking Options →Network packet filtering framework →Code Netfilter Configuration
Ü <M> Netfilter connection tracking support
Ü <M> “layer7” match support
Ü <M> “string” match support
Ü <M> “time” match support
Ü <M> “iprange” match support
Ü <M> “connlimit” match support
Ü <M> “state” match support
Ü <M> “conntrack” connection match support
Ü <M> “mac” address match support
Ü <M> "multiport" Multiple port match support
v Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configuration
Ü <M> IPv4 connection tracking support (required for NAT)
Ü <M> Full NAT
v <M> MASQUERADE target support
# make (报错)
‘ksign_def_public_key’ undeclared (first use in this function)
解决方法:
#make menuconfig(进入基于文本菜单的配置界面)
1.选择”Enable loadable module support“,选择"Module signature verification (EXPERIMENTAL)",按”N“取消该选项。
2.回到主菜单(main menu),选择”Cryptographic API“,取消”In-kernel signature checker (EXPERIMENTAL)“即可。
# make modules
# make modules_install
# make install
# vim /boot/grub/grub.conf (选择新内核)
# reboot
# cp /etc/init.d/iptables ~/
# cp /etc/sysconfig/iptables-config ~/
# rpm -e iptables-1.4.7-11.el6.x86_64 --nodeps
# tar -jxvf iptables-1.4.12.1.tar.bz2 -C /usr/src/
# cd /usr/src/iptables-1.4.12.1/
# cp /usr/src/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* ./extensions/
# ./configure --prefix=/usr --with-ksource=/usr/src/linux
# make
# make install
# tar -zxvf I7-protocols-2009-05-28.tar.gz
# cd l7-protocols-2009-05-28/
# make install
# mv ~/iptables /etc/init.d/
# cp iptables-config /etc/sysconfig/
# cp /usr/sbin/iptables /sbin/
# cp /usr/sbin/iptables-restore /sbin/
# cp /usr/sbin/iptables-save /sbin/
# /etc/init.d/iptables restart
# iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -j DROP
# iptables -A FORWARD -m layer7 --l7proto qq -j REJECT 禁止QQ登录
# iptables -t mangle -I PREROUTING -m layer7 --l7proto edonkey -j DROP
测试:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -j DROP

iptables(3)的更多相关文章

  1. iptables

    一.在服务器上打开 22.80.9011端口: iptables -A INPUT -p tcp --dport 9011 -j ACCEPT iptables -A OUTPUT -p tcp -- ...

  2. 浅谈iptables 入站 出站以及NAT实例

    --------------本文是自己工作上的笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!--------------- iptbales默认ACCEPT策略,也称通策略,这种情况下可以做 ...

  3. Failed to stop iptables.service: Unit iptables.service not loaded.

    redhat 7 [root@lk0 ~]# service iptables stop Redirecting to /bin/systemctl stop iptables.service Fai ...

  4. CentOS7安装iptables防火墙

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  5. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  6. CentOS系统配置 iptables防火墙

    阿里云CentOS系统配置iptables防火墙   虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FO ...

  7. /etc/sysconfig/下找不到iptables文件解决方法

    时间:2014-12-19 01:17来源:csdn 作者:大智 举报 点击:5639次 本想做些防火墙策略.防火墙策略都是写在/etc/sysconfig/iptables文件里面的.可我发现我也没 ...

  8. docker通过iptables修改或新增镜像映射端口

    443 8088 22 端口是初始映射端口 [root@SERVER ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM ...

  9. lnmp 预设iptables设置

    「LNMP」iptables初始配置   首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...

  10. 关闭SELinux和iptables防火墙

    1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...

随机推荐

  1. Mysql drop function xxxx ERROR 1305 (42000): FUNCTION (UDF) xxxx does not exist

    mysql> drop function GetEmployeeInformationByID;ERROR 1305 (42000): FUNCTION (UDF) GetEmployeeInf ...

  2. asp.net Json序列化

    Json作为一种数据传输格式与标准被广泛的使用在项目开发中,可以说简直离不开它.那么怎么来生成JSON格式的数据就成了我们首先需要解决的问题这里我们使用.net. 首先是获取数据 public ban ...

  3. python--logging日志

    一个非常详细的日志使用请看这里:http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html # 导入日志模块 import loggin ...

  4. C# 父子页面传值

    业务需求是:父页面点击“选择任务”按钮进入任务列表页.(项目进度周报) 父页面如下: 任务列表页: 选择某一个任务,点击“确定”后返回父页面所需数据. 父页面“选择任务” 按钮触发事件. /// &l ...

  5. Vagrant系列(二)----Vagrant的配置文件Vagrantfile详解

    一.简介 在我们的工作目录下有一个Vagrantfile文件,里面包含有大量的配置信息,通过它可以定义虚拟机的各种配置,如网络.内存.主机名等,主要包括三个方面的配置,虚拟机的配置.SSH配置.Vag ...

  6. VUE 处理文本框获焦点高亮

    先贴例子代码  这里又三个div对应的三个input输入框 <!-- 登录的表单 --> <div class="input_group" :class=&quo ...

  7. python之路--MySQL数据库初识

    一 . MySQL安装 # 下载MySQL地址 https://dev.mysql.com/downloads # 要选稳定的,不要选最新的,稳定的就是半年以上没有出现过bug 现在5.6.43为绝大 ...

  8. elasticsearch概念及倒排索引简单介绍

    一.概念 集群:一个或者多个节点组织在一起 节点:一个节点是集群中的一个服务器,由一个名字来标识,默认是一个随机的漫威角色名字. 分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片相应请求 ...

  9. jmeter 启动报错:not able to find java executable or version

    1 运行cmd输入:java -version 查看 提示没有命令 2 查看环境变量path 3 执行 %JAVA_HOME% 提示找不到文件件 4 修改 文件夹名称 5 运行cmd java -ve ...

  10. 转 My97日历控件常用功能记录

    My97相信大家都不陌生,应该是我所见过的最强大的一个日历控件了,最近的项目中也比较多地用到了此控件,而且项目中经常会有不同时间范围的需求,在此列出一些比较常用的日期范围格式的设置,尽管在My97的官 ...