----------------------------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. 【学习总结】C-翁恺老师-入门-第3周<循环>

    [学习总结]C-翁恺老师-入门-总 1-求一个整数的位数:引入循环while 注:循环体内要有改变循环的机会,要不然就死循环了啊! 注:手写推测程序是否正确. 注:测试程序-边界:个位数.10.0.负 ...

  2. java.util(Date和Calendar)

    public class Date implements java.io.Serializable, Cloneable, Comparable<Date> { public Date() ...

  3. Tomcat启用GZIP压缩,提升web性能

    一.前言 最近做了个项目,遇到这么一个问题:服务器返回给客户端的json数据量太大(大概65M),在客户端加载了1分多钟才渲染完毕,费时耗流量,用户体验极其不好.后来网上搜优化的方法,就是Http压缩 ...

  4. java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决

    在pom 文件中添加 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artif ...

  5. 对于tomcat通过catalina.sh停止服务后,tomcat进程没有退出问题解决办法

    例:tomcat路径及名称为/data/apache-tomcat-7.0.67/ vim /data/apache-tomcat-7.0.67/bin/catalina.sh 找到org.apach ...

  6. qtp 自动化测试桌面程序-点滴1(录制设置、共用文件)

    1 automation-record and run settings--设置录制程序 2 将function/repository 放于单独于test的文件夹中-方便多个test使用同一个仓库.函 ...

  7. 使用proxychains 代理终端

    最近在国外的vps上搭建了一个ss服务器,在浏览器里面设置socks5代理上网很方便, 但是终端里面却只支持http方式的代理配置,网上有socks转http代理的方式,但是最近发现一个更为简单的方式 ...

  8. 【python练习题】程序12

    #题目:判断101-200之间有多少个素数,并输出所有素数. #判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. from math import ...

  9. Angular 2 to Angular 4 with Angular Material UI Components

    Download Source - 955.2 KB Content Part 1: Angular2 Setup in Visual Studio 2017, Basic CRUD applicat ...

  10. Atcoder Beginner Contest 118 C-Monsters Battle Royale(贪心)

    题目链接 题意就是要让给出的数字去互相取余,看看能得到最小的数事多少. 那么就可以从小到大排序,每一次都贪心地把最小的数作为攻击者,去攻击其他的数字(也就是大的取余小的),然后再一次排序,循环这个过程 ...