iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >NAT iptables防火墙(script)(转)
  • 256
分享到

NAT iptables防火墙(script)(转)

2023-06-03 05:06:31 256人浏览 八月长安
摘要

NAT iptables防火墙(script)(转)[@more@]#!/bin/sh# make me executable (chmod a+x rc.firewall ) and run me on boot## djweis@sjd

NAT iptables防火墙(script)(转)[@more@]

#!/bin/sh

# make me executable (chmod a+x rc.firewall ) and run me on boot

#

# djweis@sjdjweis.com

# iptables firewall script

# this script is meant to be run once per boot

# the rules will be double added if you try to run it twice

# if you need to add another rule during runtime, change the

# -A to a -I to add it to the top of the list of rules

# if you use -A it will Go at the end after the reject rule :-(

#

# interface definitions

BAD_IFACE=eth0

DMZ_IFACE=eth2

DMZ_ADDR=x.x.x.96/28

GOOD_IFACE=eth3

GOOD_ADDR=192.168.1.0/24

MASQ_SERVER=x.x.x.98

FTP_SERVER=x.x.x.100

MaiL_SERVER=x.x.x.99

MAIL_SERVER_INTERNAL=192.168.1.3

# testing

#set -x

ip route del x.x.x.96/28 dev $BAD_IFACE

ip route del x.x.x.96/28 dev $DMZ_IFACE

ip route add x.x.x.97 dev $BAD_IFACE

ip route add x.x.x.96/28 dev $DMZ_IFACE

# we need proxy arp for the dmz network

echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

echo 1 > /proc/sys/net/ipv4/conf/eth2/proxy_arp

# turn on ip forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

# turn on antispoofing protection

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done

# flush all rules in the filter table

#iptables -F

# flush built in rules

iptables -F INPUT

iptables -F OUTPUT

iptables -F FORWARD

# deny everything for now

iptables -A INPUT -j DROP

iptables -A FORWARD -j DROP

iptables -A OUTPUT -j DROP

# make the chains to define packet directions

# bad is the internet, dmz is our dmz, good is our masqed network

iptables -N good-dmz

iptables -N bad-dmz

iptables -N good-bad

iptables -N dmz-good

iptables -N dmz-bad

iptables -N bad-good

iptables -N icmp-acc

# accept related packets

iptables -A FORWARD -m state --state INVALID -j DROP

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# internal client masqing

iptables -t nat -A POSTROUTING -s $GOOD_ADDR -o $BAD_IFACE -j SNAT --to $MASQ_SERVER

# mail server masqing

iptables -t nat -A PREROUTING -p tcp -d $MAIL_SERVER --dport smtp -j DNAT --to $MAIL_SERVER_INTERNAL:25

iptables -t nat -A PREROUTING -p tcp -d $MAIL_SERVER --dport Http -j DNAT --to $MAIL_SERVER_INTERNAL:80

iptables -t nat -A PREROUTING -p tcp -d $MAIL_SERVER --dport https -j DNAT --to $MAIL_SERVER_INTERNAL:443

# to allow the above to work you need something like

# iptables -A bad-good -p tcp --dport smtp -d $MAIL_SERVER_INTERNAL -j ACCEPT

# set which addresses jump to which chains

iptables -A FORWARD -s $GOOD_ADDR -o $DMZ_IFACE -j good-dmz

iptables -A FORWARD -s $GOOD_ADDR -o $BAD_IFACE -j good-bad

iptables -A FORWARD -s $DMZ_ADDR -i $DMZ_IFACE -o $BAD_IFACE -j dmz-bad

iptables -A FORWARD -s $DMZ_ADDR -i $DMZ_IFACE -o $GOOD_IFACE -j dmz-good

iptables -A FORWARD -o $DMZ_IFACE -j bad-dmz

iptables -A FORWARD -o $GOOD_IFACE -j bad-good

# drop anything that doesn't fit these

iptables -A FORWARD -j LOG --log-prefix "chain-jump "

iptables -A FORWARD -j DROP

# icmp acceptance

iptables -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT

iptables -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT

iptables -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT

iptables -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT

iptables -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT

# iptables -A icmp-acc -j LOG --log-prefix "icmp-acc "

iptables -A icmp-acc -j DROP

# from internal to dmz

iptables -A good-dmz -p tcp --dport smtp -j ACCEPT

iptables -A good-dmz -p tcp --dport pop3 -j ACCEPT

iptables -A good-dmz -p udp --dport domain -j ACCEPT

iptables -A good-dmz -p tcp --dport domain -j ACCEPT

iptables -A good-dmz -p tcp --dport www -j ACCEPT

iptables -A good-dmz -p tcp --dport https -j ACCEPT

iptables -A good-dmz -p tcp --dport ssh -j ACCEPT

iptables -A good-dmz -p tcp --dport telnet -j ACCEPT

iptables -A good-dmz -p tcp --dport auth -j ACCEPT

iptables -A good-dmz -p tcp --dport ftp -j ACCEPT

iptables -A good-dmz -p tcp --dport 1521 -j ACCEPT

iptables -A good-dmz -p icmp -j icmp-acc

iptables -A good-dmz -j LOG --log-prefix "good-dmz "

iptables -A good-dmz -j DROP

# from external to dmz

iptables -A bad-dmz -p tcp --dport smtp -j ACCEPT

iptables -A bad-dmz -p udp --dport domain -j ACCEPT

iptables -A bad-dmz -p tcp --dport domain -j ACCEPT

iptables -A bad-dmz -p udp --sport domain -j ACCEPT

iptables -A bad-dmz -p tcp --sport domain -j ACCEPT

iptables -A bad-dmz -p tcp --dport www -j ACCEPT

iptables -A bad-dmz -p tcp --dport https -j ACCEPT

iptables -A bad-dmz -p tcp --dport ssh -j ACCEPT

iptables -A bad-dmz -p tcp -d $FTP_SERVER --dport ftp -j ACCEPT

iptables -A bad-dmz -p icmp -j icmp-acc

iptables -A bad-dmz -j LOG --log-prefix "bad-dmz "

iptables -A bad-dmz -j DROP

# from internal to external

iptables -A good-bad -j ACCEPT

# iptables -t nat -A POSTROUTING -o $BAD_IFACE -j SNAT --to $MASQ_SERVER

#iptables -A good-bad -p tcp -j MASQ

#iptables -A good-bad -p udp -j MASQ

#iptables -A good-bad -p icmp -j MASQ

#ipchains -A good-bad -p tcp --dport www -j MASQ

#ipchains -A good-bad -p tcp --dport ssh -j MASQ

#ipchains -A good-bad -p udp --dport 33434:33500 -j MASQ

#ipchains -A good-bad -p tcp --dport ftp -j MASQ

#ipchains -A good-bad -p icmp --icmp-type ping -j MASQ

#ipchains -A good-bad -j REJECT -l

# from dmz to internal

# iptables -A dmz-good -p tcp ! --syn --sport smtp -j ACCEPT

iptables -A dmz-good -p tcp --dport smtp -j ACCEPT

iptables -A dmz-good -p tcp --sport smtp -j ACCEPT

iptables -A dmz-good -p udp --sport domain -j ACCEPT

iptables -A dmz-good -p tcp ! --syn --sport domain -j ACCEPT

iptables -A dmz-good -p tcp ! --syn --sport www -j ACCEPT

iptables -A dmz-good -p tcp ! --syn --sport ssh -j ACCEPT

iptables -A dmz-good -p tcp -d 192.168.1.34 --dport smtp -j ACCEPT

iptables -A dmz-good -p icmp -j icmp-acc

iptables -A dmz-good -j LOG --log-prefix "dmz-good "

iptables -A dmz-good -j DROP

# from dmz to external

iptables -A dmz-bad -p tcp --dport smtp -j ACCEPT

iptables -A dmz-bad -p tcp --sport smtp -j ACCEPT

iptables -A dmz-bad -p udp --dport domain -j ACCEPT

iptables -A dmz-bad -p tcp --dport domain -j ACCEPT

iptables -A dmz-bad -p tcp --dport www -j ACCEPT

iptables -A dmz-bad -p tcp --dport https -j ACCEPT

iptables -A dmz-bad -p tcp --dport ssh -j ACCEPT

iptables -A dmz-bad -p tcp --dport ftp -j ACCEPT

iptables -A dmz-bad -p tcp --dport whois -j ACCEPT

iptables -A dmz-bad -p tcp --dport telnet -j ACCEPT

iptables -A dmz-bad -p udp --dport ntp -j ACCEPT

# ipchains -A good-bad -p udp --dport 33434:33500 -j MASQ

iptables -A dmz-bad -p icmp -j icmp-acc

iptables -A dmz-bad -j LOG --log-prefix "dmz-bad "

iptables -A dmz-bad -j DROP

# from external to internal

iptables -A bad-good -p tcp --dport smtp -d $MAIL_SERVER_INTERNAL -j ACCEPT

iptables -A bad-good -p tcp --dport http -d $MAIL_SERVER_INTERNAL -j ACCEPT

iptables -A bad-good -p tcp --dport https -d $MAIL_SERVER_INTERNAL -j ACCEPT

iptables -A bad-good -j LOG --log-prefix "bad-good "

iptables -A bad-good -j REJECT

# rules for this Machine itself

iptables -N bad-if

iptables -N dmz-if

iptables -N good-if

# set up the jumps to each chain

iptables -A INPUT -i $BAD_IFACE -j bad-if

iptables -A INPUT -i $DMZ_IFACE -j dmz-if

iptables -A INPUT -i $GOOD_IFACE -j good-if

# external iface

iptables -A bad-if -p icmp -j icmp-acc

iptables -A bad-if -j ACCEPT

#ipchains -A bad-if -i ! ppp0 -j DENY -l

#ipchains -A bad-if -p TCP --dport 61000:65095 -j ACCEPT

#ipchains -A bad-if -p UDP --dport 61000:65095 -j ACCEPT

#ipchains -A bad-if -p ICMP --icmp-type pong -j ACCEPT

#ipchains -A bad-if -j icmp-acc

#ipchains -A bad-if -j DENY

# dmz iface

iptables -A bad-if -p icmp -j icmp-acc

iptables -A dmz-if -j ACCEPT

# internal iface

iptables -A good-if -p tcp --dport ssh -j ACCEPT

iptables -A good-if -p ICMP --icmp-type ping -j ACCEPT

iptables -A good-if -p ICMP --icmp-type pong -j ACCEPT

iptables -A good-if -j icmp-acc

iptables -A good-if -j DROP

# remove the complete blocks

iptables -D INPUT 1

iptables -D FORWARD 1

iptables -D OUTPUT

--结束END--

本文标题: NAT iptables防火墙(script)(转)

本文链接: https://www.lsjlt.com/news/233096.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • NAT iptables防火墙(script)(转)
    NAT iptables防火墙(script)(转)[@more@]#!/bin/sh# make me executable (chmod a+x rc.firewall ) and run me on boot## djweis@sjd...
    99+
    2023-06-03
  • 【防火墙】防火墙NAT Server的配置
    Web举例:公网用户通过NAT Server访问内部服务器 介绍公网用户通过NAT Server访问内部服务器的配置举例。 组网需求 某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务,需要在F...
    99+
    2023-10-12
    网络
  • IPTables防火墙怎么用
    这篇文章主要介绍IPTables防火墙怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的...
    99+
    2023-06-27
  • Linux防火墙iptables-基础与编写防火墙规则
    Linux防火墙iptables-基础与编写防火墙规则.txtLinux防火墙基础与编写防火墙规则https://www.cnblogs.com/L2366/p/9285917.htmllinux 防火墙配置规则https://blog.c...
    99+
    2023-06-05
  • 防火墙技术之---NAT(3)
                                         NAT地址转换类型之我见    谈到NAT的类型其实很多时候都搞得很复杂,什么静态NAT,EASY IP,地址池方式,服务器方式等等,但是其实明白了就说了两件事,一...
    99+
    2023-01-31
    防火墙 技术 NAT
  • Linux防火墙iptables怎么用
    这篇文章给大家分享的是有关Linux防火墙iptables怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火...
    99+
    2023-06-13
  • centos7怎么关闭iptables防火墙
    要关闭CentOS 7上的iptables防火墙,可以按照以下步骤进行操作: 以root用户身份登录到CentOS 7服务器。 打...
    99+
    2023-10-24
    centos7
  • Linux防火墙IPtables有什么用
    这篇文章给大家分享的是有关Linux防火墙IPtables有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目标(target)我们已经知道,目标是由规则指定的操作,那些与规则匹配的信息包执行这些操作。除了允...
    99+
    2023-06-13
  • Linux基础命令---iptables防火墙
    iptablesiptables指令用来设置Linux内核的ip过滤规则以及管理nat功能。iptables用于在Linux内核中设置、维护和检查IPv4数据包过滤规则表。可以定义几个不同的表。每个表包含许多内置链,也可能包含用户定义的链。...
    99+
    2023-06-05
  • linux 防火墙 iptables 命令详解
    iptables是Linux操作系统上的一个防火墙工具,它可以控制进入、离开、转发的数据流,是Linux服务器安全性的重要保障。下面是iptables命令的详解及相应的示例: 启动/停止/重启iptables服务: 启动:sudo syst...
    99+
    2023-08-20
    linux 服务器 网络 iptables 防火墙
  • Linux 防火墙配置(iptables和firewalld)
    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall...
    99+
    2023-08-31
    linux 运维 服务器
  • Linux中如何设置iptables防火墙
    这篇文章给大家介绍Linux中如何设置iptables防火墙,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。查看防火墙规则:iptables -L -n添加防火墙规则:vi /etc/sysconfig/iptables...
    99+
    2023-06-05
  • linux防火墙iptables的详细教程
    本篇内容主要讲解“linux防火墙iptables的详细教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux防火墙iptables的详细教程”吧!1 框架图 -->PREROUTI...
    99+
    2023-06-10
  • CentOS下怎么配置iptables防火墙
    本篇内容介绍了“CentOS下怎么配置iptables防火墙”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Linux中设置防火墙,以Cen...
    99+
    2023-06-10
  • Ubuntu Server中iptables防火墙怎么用
    小编给大家分享一下Ubuntu Server中iptables防火墙怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!◆ 基本命令 键入: # iptables...
    99+
    2023-06-13
  • Ubuntu中怎么使用iptables防火墙
    本篇内容主要讲解“Ubuntu中怎么使用iptables防火墙”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu中怎么使用iptables防火墙”吧!iptables是整合在Linux操...
    99+
    2023-07-04
  • 如何用linux配置防火墙iptables
    如何用linux配置防火墙iptables,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。iptables一个详细实例代码如下:/etc/init.d/iptables star...
    99+
    2023-06-13
  • centOS中怎么设置iptables防火墙
    本篇文章为大家展示了centOS中怎么设置iptables防火墙,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、安装iptables防火墙 怎么知道系统是否安装了iptables执行iptable...
    99+
    2023-06-10
  • Centos上 关闭Linux防火墙(iptables) 及 SELinux
    革命尚未成功,同志仍须努力。。。 关闭Linux防火墙(iptables) 及 SELinux 一、关闭防火墙 1、重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2...
    99+
    2023-10-12
    linux 服务器 网络
  • linux怎么增加iptables防火墙规则
    本篇内容介绍了“linux怎么增加iptables防火墙规则”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作