用centOS实现路由器DHCP防火墙及NAT功能.docx
- 文档编号:23484864
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:11
- 大小:68.62KB
用centOS实现路由器DHCP防火墙及NAT功能.docx
《用centOS实现路由器DHCP防火墙及NAT功能.docx》由会员分享,可在线阅读,更多相关《用centOS实现路由器DHCP防火墙及NAT功能.docx(11页珍藏版)》请在冰豆网上搜索。
用centOS实现路由器DHCP防火墙及NAT功能
将centOS变成路由服务器
众所周知,linux最强大的功能就是网络功能,但是学习linux却不仅仅是为了搭建服务器,鉴于linux是一套非常稳定的操作系统,用linux搭建各种服务器是不二的选择。
下面针对三种不同的上网环境,详细介绍一下在centOS6.5上搭建一个路由服务器。
实验一:
Linux为静态IP
实验环境示意图
图1实验一环境
Step1:
配置linux网卡参数
本实验环境使用的linux硬件环境有两块网卡,分别为eth0和eth1。
默认情况下,将eth0设为WAN口,将eth1设为LAN口,本实验也是如此。
配置eth0和eth1有两种方式:
一是可以编辑配置文件,二是直接可以利用图形界面对其进行配置。
建议使用第一种,因为好多linux是没有XWindow界面的。
WAN口(eth0)配置如下:
MAC地址XX:
XX:
6F:
1E:
XX:
XX
IP地址192.168.X.XXX
子网掩码255.255.255.0
默认网关192.168.0.254
DNS:
X.X.X.X,8.8.8.8
LAN口(eth1)配置如下:
IP地址192.168.1.1
子网掩码255.255.255.0
下面以配置eth0为例。
打开终端,获得root权限之后,输入命令:
vim/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=XXX…
ONBOOT=yes
NM_CONTROLLED=yes(NM_CONTROLLED是networkmanger的参数,实时生效,修改后无需要重启网卡立即生效)
BOOTPROTO=none
HWADDR=xxx…(网卡本身的硬件地址)
MACADDR=XX:
XX:
6F:
1E:
XX:
XX
IPADDR=192.168.0.203
PREFIX=24(此语句可用‘NETMASK=255.255.255.0’替换)
GATEWAY=192.168.0.254
DNS1=X.X.X.X
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”Systemeth0”
配置eth1时只需要将其IP地址设为192.168.1.1或者非eth0网段地址,其他不用配置。
输入命令:
vim/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
TYPE=Ethernet
UUID=XXX…
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.1
NETMASK=255.255.255.0
Step2:
配置防火墙及NAT服务
防火墙的功能不多说了,不太明白的自己XX一下吧,在这里简要说一下NAT(NetworkAddressTranslation),即网络地址的转换,由于在本实验中eth0是publicIP与eth1的privateIP是不能互通的,NAT的功能就是使得这两者能相互通信。
在防火墙及NAT设置的时候,我们采用shellscripts来实现。
想要学习shell脚本,可以看看鸟哥的私房菜里面的。
首先建立一个文件夹,将脚本放置到/usr/local/virus/iptables文件目录下,也可以放置到自己习惯的位置。
mkdir–p/usr/local/virus/iptables(创建文件目录,-p允许你一次性创建多层目录)
cd/usr/local/virus/iptables
vimiptables.rule(利用vim编辑脚本文件,有关vim的使用请自行XX,快捷键太多)
以下就是脚本文件内容:
#!
/bin/bash
#输入相关参数
EXTIF="eth0" #PublicIP
INIF="eth1" #內部LAN的privateIP,没有填""
INNET="192.168.1.0/24" #內部LAN的网段,没有填""
exportEXTIFINIFINNET
#第一部部分,针对本机的防火墙设定!
###########################
#1.先设定好核心的网络功能:
echo"1">/proc/sys/net/ipv4/tcp_syncookies
echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
foriin/proc/sys/net/ipv4/conf/*/rp_filter;do
echo"1">$i
done
foriin/proc/sys/net/ipv4/conf/*/log_martians;do
echo"1">$i
done
foriin/proc/sys/net/ipv4/conf/*/accept_source_route;do
echo"0">$i
done
foriin/proc/sys/net/ipv4/conf/*/accept_redirects;do
echo"0">$i
done
foriin/proc/sys/net/ipv4/conf/*/send_redirects;do
echo"0">$i
done
#2.清除规则、设置默认路由及开放lo与相关的设置值
PATH=/sbin:
/usr/sbin:
/bin:
/usr/bin;exportPATH
iptables-F
iptables-X
iptables-Z
iptables-PINPUT DROP
iptables-POUTPUT ACCEPT
iptables-PFORWARDACCEPT
iptables-AINPUT-ilo-jACCEPT
iptables-AINPUT-mstate--stateRELATED-jACCEPT
#3.启动额外的防火墙script模块
if[-f/usr/local/virus/iptables/iptables.deny];then
sh/usr/local/virus/iptables/iptables.deny
fi
if[-f/usr/local/virus/iptables/iptables.allow];then
sh/usr/local/virus/iptables/iptables.allow
fi
if[-f/usr/local/virus/httpd-err/iptables.http];then
sh/usr/local/virus/httpd-err/iptables.http
fi
iptables-AINPUT-mstate--stateESTABLISHED-jACCEPT
#4.允许某些类型的ICMP数据包进入
AICMP="033/441112141618"
fortyicmpin$AICMP
do
iptables-AINPUT-i$EXTIF-picmp--icmp-type$tyicmp-jACCEPT
done
#5.允许某些服务的进入,请依照自己的环境开启
#iptables-AINPUT-pTCP-i$EXTIF--dport 22 -jACCEPT #SSH
#iptables-AINPUT-pTCP-i$EXTIF--dport 25 -jACCEPT #SMTP
#iptables-AINPUT-pUDP-i$EXTIF--sport 53 -jACCEPT #DNS
#iptables-AINPUT-pTCP-i$EXTIF--sport 53 -jACCEPT #DNS
#iptables-AINPUT-pTCP-i$EXTIF--dport 80 -jACCEPT #WWW
#iptables-AINPUT-pTCP-i$EXTIF--dport110 -jACCEPT #POP3
#iptables-AINPUT-pTCP-i$EXTIF--dport443 -jACCEPT #HTTPS
#第二部份,针对后端主机的防火墙设置!
#1.先加载一些有用的模块
modules="ip_tablesiptable_natip_nat_ftpip_nat_ircip_conntrack
ip_conntrack_ftpip_conntrack_irc"
formodin$modules
do
testmod=`lsmod|grep"${mod}"`
if["$testmod"==""];then
modprobe$mod
fi
done
#2.清除NATtable的规则
iptables-F-tnat
iptables-X-tnat
iptables-Z-tnat
iptables-tnat-PPREROUTING ACCEPT
iptables-tnat-PPOSTROUTINGACCEPT
iptables-tnat-POUTPUT ACCEPT
#3.若有内部接口的存在(双网卡)开放成为路由器,且为IP分享器(NAT)!
if["$INIF"!
=""];then
iptables-AINPUT-i$INIF-jACCEPT
echo"1">/proc/sys/net/ipv4/ip_forward
if["$INNET"!
=""];then
forinnetin$INNET
do
iptables-tnat-APOSTROUTING-s$innet-o$EXTIF-jMASQUERADE
done
fi
fi
#如果你的MSN一直无法连接,或者是某些网站OK某些网站不OK,
#可能是MTU的问题,那你可以将底下这一行取消注释来启动MTU限制范围
#iptables-AFORWARD-ptcp-mtcp--tcp-flagsSYN,RSTSYN-mtcpmss\
# --mss1400:
1536-jTCPMSS--clamp-mss-to-pmtu
#4.NAT服务器后端的LAN内对外之服务器的设置(略):
#5.特殊功能(略)
#6.最好将这些功能存储下来
/etc/init.d/iptablessave
以上就是脚本文件的内容,然后将iptables.rule文件的权限设置为700且只属于root的权限后。
输入命令:
chmod700iptables.rule
下面我们设置开机就自动执行这个script,将这个文件的完整文件名写入/etc/rc.d/rc.local。
输入命令:
vim/etc/rc.d/rc.local
…(其他省略)…
#1.Firewall
/usr/local/virus/iptables/iptables.rule
Step3:
配置DHCP
配置DHCP是为了使得linux服务器为连接AP的手机动态分配IP与相关的网络参数,从而使得能够上网。
首先在linux服务器上安装DHCP服务,在root终端输入:
yuminstalldhcp
安装好dhcp之后对其进行配置,输入命令:
vim/etc/dhcp/dhcpd.conf
#1.整体环境的设定
ddns-update-stylenone;不要更新DDNS的设置
ignoreclient-update;忽略客户端的DNS更新功能
default-lease-time259200;默认租约为3天
max-lease-time518400;最大租约为6天
optionrouters192.168.1.1;默认路由
optiondomain-name“wifi.monitor”;给予一个域名
optiondomain-name-serversX.X.X.X,8.8.8.8;dns设置
#2.关于动态分配的IP
Subnet192.168.1.0netmask255.255.255.255.0{
Range192.168.1.3192.168.1.199;
}
脚本文件写好之后,然后启动dhcp并查看端口的变化,输入命令:
/etc/init.d/dhcpdstart
注意:
此时若出现dhcp启动失败,则vim/etc/selinux/config
设置SELINUX=disabled保存重启dhcp服务
chkconfigdhcpdon
netstat-tlunp|grepdhcp
定时去查看日志文件的输出信息
tail–n30/var/log/messages
最后重启相关服务(最简单的方式就将系统重启),至此连接上AP的手机应该能正常访问Internet了
实验二:
TP-link(一级路由)为静态IP,linux(二级路由)的WAN口是动态IP
实验环境示意图
图2实验二环境
Step1:
配置TP-link路由器
WAN口配置如下:
MAC地址xx:
xx:
6F:
1E:
xx:
xx
IP地址192.168.0.xxx
子网掩码255.255.255.0
默认网关192.168.0.254
DNS:
X.X.X.X,8.8.8.8
LAN口配置如下:
IP地址192.168.1.253
子网掩码255.255.255.0
Step2:
配置linux路由服务器
默认安装好DHCP服务,在实验一的基础上进行修改。
1.配置DHCP
在root终端输入:
vim/etc/dhcp/dhcpd.conf修改subnet选项
#1.整体环境的设定
ddns-update-stylenone;不要更新DDNS的设置
ignoreclient-update;忽略客户端的DNS更新功能
default-lease-time259200;默认租约为3天
max-lease-time518400;最大租约为6天
optionrouters192.168.10.1;默认路由
optiondomain-name“wifi.monitor”;给予一个域名
optiondomain-name-serversX.X.X.X,8.8.8.8;dns设置
#2.关于动态分配的IP
subnet192.168.10.0netmask255.255.255.255.0{
range192.168.10.3192.168.10.199;
}
2.配置eth1(eth0无需配置,将自动获取IP)
将其IP地址设为图2所示的192.168.10.0/24(192.168.10.1除外)网段的地址
3.配置防火墙及NAT服务
修改iptables.rule文件,输入命令:
vim/usr/local/virus/iptables/iptables.rule
将内部LAN网段修改为192.168.10.0/24网段,如下所示。
INNET="192.168.10.0/24"
最后重启相关服务(最简单的方式就将系统重启),至此连接上AP的手机应该能正常访问Internet了
PPPoE拨号上网(实验环境限制没法做)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- centOS 实现 路由器 DHCP 防火墙 NAT 功能