NAT DHCP WWW rc.local

来源:互联网 发布:关于网络推广员的文章 编辑:程序博客网 时间:2024/05/17 03:54
/*****   外网访问内网的主机,可以在内网主机搭建WWW服务器让外网访问;内网主机既可以动态获取IP访问外网,也可以手动设置IP访问外网!

一,搭建NAT服务器实现内网与外网相互访问;
二,搭建DHCP服务器便于对内网主机网络参数的管理;
三,在内网主机上搭建WWW服务器(这里是在"192.168.1.80"主机上);
以下是具体实现过程:
(eth1为外网接口,etho为内网接口)   *****/

/*****   在/bin下新建nat.sh,内容如下:   *****/
/*****   nat.sh   *****/

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#INET_IF="ppp0"
INET_IF="eth1"
LAN_IF="eth0"
INET_IP="218.198.18.56"    #(根据具体网络环境设定)
WWW_IP="192.168.1.80"    #(搭建www服务器的内网主机)
LAN_IP_RANGE="192.168.1.0/24"
IPT="/sbin/iptables"
TC="/sbin/tc"
MODPROBE="/sbin/modprobe"

$MODPROBE ip_tables

$MODPROBE iptable_nat
$MODPROBE ip_nat_ftp
$MODPROBE ip_nat_irc
$MODPROBE ipt_mark
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_conntrack_irc
$MODPROBE ipt_MASQUERADE

for TABLE in filter nat mangle ; do
$IPT -t $TABLE -F
$IPT -t $TABLE -X
$IPT -t $TABLE -Z
done

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT

# 拒绝INTERNET客户访问
$IPT -A INPUT -i $INET_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
#$IPT -A INPUT -i $INET_IF -p tcp -s 123.5.0.0/16 --dport 22 -j ACCEPT
#$IPT -A INPUT -i $INET_IF -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $LAN_IF -p udp --dport 67 -j ACCEPT
$IPT -A INPUT -i $INET_IF -m state --state NEW,INVALID -j DROP

for DNS in $(grep ^n /etc/resolv.conf|awk '{print $2}'); do
$IPT -A INPUT -p tcp -s $DNS --sport domain -j ACCEPT
$IPT -A INPUT -p udp -s $DNS --sport domain -j ACCEPT
done

# anti bad scaning

$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags ALL ALL -j DROP
$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A INPUT -i $INET_IF -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

$IPT -t nat -A PREROUTING -d $INET_IP -p tcp --dport 80 -j DNAT --to-destination $WWW_IP:80
#(以上这条规则很重要,实现外网通过80端口访问内网WWW服务器)
if [ $INET_IF = "ppp0" ] ; then
$IPT -t nat -A POSTROUTING -o $INET_IF -s $LAN_IP_RANGE -j MASQUERADE
else
$IPT -t nat -A POSTROUTING -o $INET_IF -s $LAN_IP_RANGE -j SNAT --to-source $INET_IP
fi

/*****   nat服务器搭建完毕!把/bin/nat.sh添加到rc.local中实现开机启动!   *****/

/*****   接着搭建dhcp服务器让内网主机自动获取ip,修改dhcpd.conf,内容如下:   *****/
/*****   /etc/dhcpd.conf   *****/

ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway
    option routers            192.168.1.254;#(内网网关)
    option subnet-mask        255.255.255.0;

#    option nis-domain        "domain.org";
#    option domain-name        "domain.org";
    option domain-name-servers    211.84.160.8, 202.102.224.68;
                #(域名服务器,根据具体网络环境设定)

    option time-offset        -18000;    # Eastern Standard Time
#    option ntp-servers        192.168.1.1;
#    option netbios-name-servers    192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#    option netbios-node-type 2;

    range dynamic-bootp 192.168.1.100 192.168.1.200;#(预动态分配的内网IP范围)
    default-lease-time 21600;
    max-lease-time 43200;

    # we want the nameserver to appear at a fixed address
#    host ns {
#        next-server marvin.redhat.com;
#        hardware ethernet 12:34:56:78:AB:CD;
#        fixed-address 207.175.42.254;
#    }
}

重启DHCP服务器!看是否成功!若不成功,说明配置文件有误!

剩下的工作就是在内部主机上搭建WWW服务器,注:WWW服务器在这里是192.168.1.80这台主机!


注:本内容的编写者主要是2009级 嵌入式方向学生:王晓峰、闫俊霖、王延龙等。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(106) | 评论(0) | 转发(0) |
0

上一篇:嵌入式系统移植三步曲 孟明明

下一篇:CentOS 6.2 下安装QQ2012完全可用

相关热门文章
  • A sample .exrc file for vi e...
  • IBM System p5 服务器 HACMP ...
  • 游标的特征
  • DB2 9 应用开发(733 考试)认...
  • busybox的httpd使用CGI脚本(Bu...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机百度用微盘下载不了文件怎么办 无法读取源文件或磁盘怎么办 文件中转站未安装上传控件怎么办 手机外国网址网速太差怎么办 istpng里显示不出图片怎么办 电脑上保持登录状态后怎么办 电脑打游戏闪退怎么办 实训老师教不好怎么办 善心汇损失的钱怎么办 去陌生的地方怕传销怎么办 被执行人不提供财产线索怎么办 宽带ip地址改了怎么办 移动宽带恢复出厂设置了怎么办 移动100兆网速慢怎么办 手机显示无法解析dns地址怎么办 台式电脑宽带连接不上怎么办 电信宽带账号登录密码忘记了怎么办 电信校园宽带超时了怎么办 宽带连接账号密码忘了怎么办 移动宽带路由器上不了网怎么办 移动宽带太卡了怎么办 电信adsl密码忘记了怎么办 移动宽带无法连接网络怎么办 移动宽带电视无信号怎么办 联通网线故障电话打不通怎么办 w10系统ip地址错误怎么办 移动流量太贵了怎么办 修改wifi密码ip地址怎么办 苹果6s接电话声音小怎么办 k歌录音器失败怎么办 想报警但不能说话怎么办 微粒贷要家人电话怎么办 4g网络信号差怎么办 手机移动网络信号不好怎么办 移动的4g网络差怎么办 4g移动网络慢怎么办 房间没有4g网络怎么办 oppo显示2g网络怎么办 oppo只有2g网络怎么办 移动卡4g网络慢怎么办 易信专线电话用完了怎么办