制作nat主机,为组建的子网提供一个网关

news/2024/5/17 18:51:04 标签: 防火墙, input, output, internet, tcp, 路由器
方法来自鸟哥的书:
首先贴出我的目的,用我的无线上网卡作为连接上internet的端口,然后设置防火墙,开启linux的封包转发功能:
#!/bin/bash
#made by vbird
# 请先输入您的相关参数,不要输入错误了!
EXTIF="ppp0"              # 这个是可以连上 Public IP 的网路介面
INIF="eth0"             # 内部 LAN 的连接介面;若无请填 ""
INNET="192.168.1.0/24" # 内部 LAN 的网域,若没有内部 LAN 请设定为 ""
export EXTIF INIF INNET
#######
##第一部份,针对本机防火墙设定###########################
# 1. 先设定好核心的网路功能∶
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
      echo "1" > $i
done
for i in /proc/sys/net/ipv4/conf/*/log_martians; do
      echo "1" > $i
done
for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
      echo "0" > $i
done
for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
      echo "0" > $i
done
for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
      echo "0" > $i
done
## 2. 清除规则、设定预设政策及开放 lo 与相关的设定值
PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
## 第二部份,针对后端主机的防火墙设定!##############################
# 1. 先载入一些有用的模组
modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack
ip_conntrack_ftp ip_conntrack_irc"
for mod in $modules
do
      testmod=`lsmod | grep "${mod} "`
      if [ "$testmod" == "" ]; then
            modprobe $mod
      fi
done
## 2. 清除 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
# 3. 开放成为路由器,且为 IP 分享器!
if [ "$INIF" != "" ]; then
   iptables -A INPUT -i $INIF -j ACCEPT
   echo "1" > /proc/sys/net/ipv4/ip_forward
   if [ "$INNET" != "" ]; then
     for innet in $INNET
     do
      iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
     done
   fi
fi
####如果你的MSN一直无法连线,或者是某些网站 OK 某些网站不 OK,
# 可能是 MTU 的问题,那你可以将底下这一行给他取消注解来启动 MTU 限制范围
# iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss \
#         --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
# 4. 内部伺服器的设定∶
# iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 \
#        -j DNAT --to 192.168.1.210:80


http://www.niftyadmin.cn/n/1736073.html

相关文章

ubuntu建立无线热点与windows、手机等共享有线网络

1.什么是热点? 这里只是指把ubuntu当作一个无线路由的意思,也就是用共享有线连接的网络来实现无线网络分享,让其它用win7(也可以是其它的无线设备,比如我的魅族M8手机)来上网 2.ubuntu的版本要求 只有10.04和以上的版本测试 3.什么…

webpack4 源码分析(二) webpack-cli

webpack4 源码分析(二) webpack-cli 上一篇我们分析了webpack4的入口,发现最后都是调用了 webpack-cli 这个工具包,本篇将对这个工具包里进一步发生的事情进行分析。 cli.js 这是webpack-cli 的入口文件,我们来看下它的基本结构 (functio…

ubuntu双网卡共享上网

学校使用锐捷2.56认证,固定IP。 本机双网卡,eth0连接外网。eth1内网接路由。 使用mystar代替锐捷2.56。 1、IP的设置: sudo gedit /etc/network/interfaces 内容如下: auto lo iface lo inet loopback iface eth0 inet static add…

webpack4 源码解析(三)——tapable

webpack4 源码解析(三)——tapable 在解析webpack4 的 Compiler 模块前,我们先要解析以下它赖以实现的也是webpack的核心依赖模块tapable。 tapable 简而言之,就是一个注册钩子函数的模块。 我们知道,webpack之所以…

ubuntu如何查看MAC地址

ubuntu如何查看MAC地址? ubuntu 查看mac地址可使用以下四种不同的命令,大家可根据自己的实际需要进行选择使用: ifconfig | awk /eth/{print $1,$5} arp -a | awk {print $4} sudo lshw -C network sudo lshw -c network | grep serial

webpack 源码分析(四)——complier模块

webpack 源码分析(四)——complier模块 上一篇我们看到,webpack-cli 通过 yargs 对命令行传入的参数和配置文件里的配置项做了转换包装,然后传递给 webpack 的 compiler 模块去编译。 这一篇我们来看看 compiler 做了些什么事。…

modprobe与insmod的使用

insmod 与 modprobe 都是载入 kernel module,不过一般差别于 modprobe 能够处理 module 载入的相依问题。  比方你要载入 a module,但是 a module 要求系统先载入 b module 时,直接用 insmod 挂入通常都会出现错误讯息,不过 mod…

40种javascript设计模式总结及实例代码演示

40种javascript设计模式总结及实例代码演示 前言 讲设计模式的书很多,但是专讲js设计模式的书不多,比较著名的就是曾琛老师的《javascript设计模式与开发实践》,里面讲了14种javascript设计模式以及这些设计模式所遵循的几大编码原则。无意…