linux策略路由 linux双网卡配置内网外网

大家好,今天来为大家分享linux策略路由的一些知识点,和linux双网卡配置内网外网的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

Linux下针对路由功能配置iptables的方法详解

作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、dns缓存、流量控制、应用程序控制,nat地址转换通过iptables可以直接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用bind,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.22+17-protocols-2009-05-28.tar.gz来实现

1、网络规划

操作系统是centos5.8

2、安装dhcpd

代码如下:

yum install dhcp-3.0.5-31.el5

vim/etc/dhcp/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

subnet 10.0.0.0 netmask 255.255.255.0{

option routers 10.0.0.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 10.0.0.1;

range dynamic-bootp 10.0.0.100 10.0.0.200;

default-lease-time 21600;

max-lease-time 43200;

}

3、安装bind,实现dns缓存

代码如下:

yum install bind97.i386 bind97-libs.i386 bind97-utils.i386

vim/etc/named.conf

options{

directory"/var/named";

allow-recursion{ 10.0.0.0/24;};

recursion yes;

forward first;#将所有请求都进行转发

forwarders{ 114.114.114.114;};#定义转发服务器地址

};

zone"." IN{

type hint;

file"named.ca";

};

zone"localhost" IN{

type master;

file"named.localhost";

allow-transfer{ none;};

};

zone"0.0.127.in-addr.arpa" IN{

type master;

file"named.loopback";

allow-transfer{ none;};

};

创建根域文件,默认有

代码如下:

dig-t NS./var/named/named.ca

chown:named/var/named/named.ca

创建本地正向解析文件,默认有

代码如下:

vim/var/named/named.localhost

$TTL 1D

@ IN SOA@ rname.invalid.(

0; serial

1D; refresh

1H; retry

1W; expire

3H); minimum

NS@

A 127.0.0.1

chown:named/var/named/named.localhost

创建本地反向解析文件,默认有

代码如下:

vim/var/named/named.loopback

$TTL 1D

@ IN SOA@ rname.invalid.(

0; serial

1D; refresh

1H; retry

1W; expire

3H); minimum

NS@

A 127.0.0.1

PTR localhost.

chown:named/var/named/named.loopback

检查主配置文件

代码如下:

named-checkconf

检查根区域配置文件

代码如下:

named-checkzone“.”/var/named/named.ca

检查区域文件

代码如下:

named-checkzone“localhost”/var/named/named.localhost

启动服务

代码如下:

service named start

4、重新编译编译内核和iptables以支持应用层过滤

由于实行防火墙功能的是netfilter内核模块,所以需要重新编译内核,需要下载新的内核源码,并使用netfilter-layer7-v2.22作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,最后再安装应用程序过滤特征码库17-protocols-2009-05028.tar.gz

1、给内核打补丁,并重新编译内核

2、给iptables源码打补丁,并重新编译iptables

3、安装17proto

备份iptables脚本和配置文件

代码如下:

cp/etc/rc.d/init.d/iptables/root/iptables.sysv

cp/etc/sysconfig/iptables-config/root/iptables-config

2.6内核下载地址

netfilter下载地址

iptables源码下载地址

应用程序特征码库下载地址

代码如下:

xz-d linux-2.6.28.10.tar.xz

tar-xvf linux-2.6.28.10.tar.gz-C/usr/src#新的内核源码,用于重新编译

tar-zxvf netfilter-layer7-v2.22.tar.gz-C/usr/src#内核补丁和iptables补丁,只支持到2.6.28

#进入解压目录并创建软连接

pcd/usr/src

ln-sv linux-2.6.28.10 linux

#进入内核目录

pcd/usr/src/linux

#为当前内核打补丁

ppatch-p1../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.path

#为了方便编译内核将系统上的内核配置文件复制过来

pcp/boot/config-2.6.18-164.el5/usr/src/linux/.config

编译内核

代码如下:

make menuconfig

Networking support- Networking Options- Network packet filtering framework- Core Netfilter Configuration

Netfilter connection tracking support

"lawyer7" match support

"string" match support

"time" match support

"iprange" match support

"connlimit" match support

"state" match support

"conntrack" connection match support

"mac" address match support

"multiport" Multiple port match support

Networking support- Networign options- Network packet filtering framework- IP:Netfiltr Configuration

IPv4 connection tracking support(required for NAT)

Full NAT

MASQUERADE target support

NETMAP target support

REDIRECT target support

在Networking support中选择 Networking options

查找Network packet filtering framework(Netfilter)–Core Netfiler Configrationg–Netfilter connection tracking support(NEW),”layer7″ match support(NEW),”time” match support(NEW),”iprange”

查找IP:Netfilter Configuration–IPv4 connection tracking support,Full NAT(NEW)

代码如下:

make

make modules_install

make install

重启操作系统选择新内核登录

卸载旧的iptables

代码如下:

rpm-e iptables-1.3.5-9.1.el5 iptables-ipv6-1.3.5-9.1.el5 iptstate-1.4-2.el5--nodeps

安装新的iptables,以支持新的netfiler模块

代码如下:

tar-jsvf iptables-1.4.6.tar.bz2-C/usr/src

cd/usr/src/netfilter-layer7-v2.23

cd iptables-1.4.3forward-for-kernel-2.6.20forward

cp*/usr/src/iptables-1.4.6/extensions/

cd/usr/src/iptables-1.4.6/

./configure--prefix=/usr--with-ksource=/usr/src/linux

make

make install

查看安装后的iptables的文件

代码如下:

ls/usr/sbin|grep iptables

ls/usr/libexec/xtables

复制之前备份的配置文件和脚本

代码如下:

cp/root/iptables-config/etc/sysconfig/

cp/root/iptables.sysv/etc/rc.d/init.d/iptables

修改脚本中iptables的路径

代码如下:

vim/etc/rc.d/init.d/iptables

:.,$s@/sbin/$IPTABLES@/usr/sbin/$IPTABLES@g

让iptables服务开机自动启动

代码如下:

chkconfig--add iptables

修改iptables配置文件

将/etc/sysconfig/iptables-config中的

IPTABLES_MODULES=”ip_conntrack_netbios_ns”注释掉

安装协议特征码

代码如下:

tar xvf 17-protocols-2009-05028.tar.gz

make install

完成后在/etc/l7-protocols会生成文件

支持的协议/etc/l7-protocols/protocols

添加iptables策略,运行内部网络上网,禁止qq和视频

代码如下:

iptables-t nat-A POSTROUTING-s 10.0.0.0/24-j SNAT--to-soure 192.168.6.67

iptables-A FORWARD-m layer7--l7proto qq-j DROP

iptables-A FORWARD-m layer7--l7proto httpvideo-j DROP

iptables-A FORWARD-m layer7--l7proto httpaudio-j DROP

指定8点到12点无法上网

复制代码

代码如下:

iptables-A FORWARD-m time--timestart 08:00--timestop 12:00-j DROP

5、使用tc控制带宽

例如公司出口带宽是10Mbps,个用户A分配500KB的最大下载带宽,给用户B分配分配的最大下载带宽是200KB

A用户ip:10.0.0.100

B用户ip:10.0.0.101

代码如下:

#在eth0网卡上创建一个根队列规则,队列规则的算法使用htb,default 2表示指定一个默认类别编号,默认的流量控制策略,如果ip没有在后面的filter中被匹配到就都是有这个策略

tc qdisc add dev eth0 root handle 1:0 htb default 2

#在eth0网卡上定义一个类,prant 1:0中的1对应根队列规则中的handle 1:0,classid 1:2表示当前这个类的标识,用于应用在后面的得到filter中,rate 200kbsp表示带宽为200KB/s,ceil 200kbps表示最大带宽也为200KB/s,prio 2是优先级

tc class add dev eth0 parent 1:0 classid 1:2 htb rate 200kbps ceil 200kbps prio 2

tc class add dev eth0 parent 1:0 classid 1:3 htb rate 500kbps ceil 500kbps prio 2

#将两个类的默认的fifq队列规则改为sfq

tc qdisc add dev eth0 parent 1:2 handle 20 sfq

tc qdisc add dev eth0 parent 1:3 handle 30 sfq

#在网卡eth0上的1:0节点(对应qdisc中的handle 1:0)添加一个u32过滤规则,优先级为1,凡是目标地址是10.0.0.100的数据包都使用1:2类(对应classid为1:2的类)

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.100 flowid 1:2

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.101 flowid 1:3

如果还有其他用户例如用户C和D的ip是102、103,要求的下载带宽也要求500那么在加入

代码如下:

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.102 flowid 1:3

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.103 flowid 1:3

清除eth0上的规则

代码如下:

tc qdisc del dev eth1 root/dev/null

软路由怎么搭建服务器

cisco思科是全世界领先且顶尖的通讯厂商,出产的路由器功能也是很出色的,那么你知道软路由怎么搭建服务器吗?下面是我整理的一些关于软路由怎么搭建服务器的相关资料,供你参考。

什么是软路由?

软路由是指利用台式机或服务器配合软件形成路由解决方案,主要靠软件的设置,达成路由器的功能;而硬路由则是以特有的硬设备,包括处理器、电源供应、嵌入式软件,提供设定的路由器功能。

软件路由器并不复杂,非常简单,会用普通操作PC就可以安装软件路由,顾名思义就是系统软件设置完成路由功能

根据使用的操作不同可以分为基于windows平台和基于Linux/bsd平台开发的软件路由器,基于Windows平台的软件防火墙比较常见的有ISA Server、Winroute Firewall、小草上网行为管理软路由等,这些软件有些是商业化的,通常根据授权用户数不同收费而不同,购买正版的软件防火墙的费用对许多中小型企业来说无疑是一笔不小的开支,小草上网行为管理软路由是目前有限的基于windows平台而且又主打免费的一款软路由软件;而基于Unix/Linux平台的软件防火墙大家一般接触较少,受益于开放源码运行,目前基于Unix/Linux平台的软件防火墙如雨后春笋般不断推出,这些软件防火墙大多是免费的,常见的有海蜘蛛、ikuai8、RouterOS、m0n0Wall、SmoothWall、Ipcop、CoyoteLinux[1]等,这些系统共有的特点是一般对硬件要求较低,甚至只需要一台486电脑,一张软盘,两块网卡就可以安装出一台非常专业的软件防火墙,这对很多有淘汰下来的低档电脑的朋友来说,意味着拿一台淘汰的电脑,安装一套免费的防火墙软件,不花一分钱就 DIY出一台专业的防火墙,而且这些系统自身也包含了NAT功能,同时可以实现宽带共享,这意味着这台免费的防火墙其实也是一台出色的宽带路由器,这是多么令人激动的事情,不过就目前来看这类免费的软路由通常为了生存下去或因过多广告的插入导致用户的不满。

软路由搭建服务器的方法:

1.工作组情况下的身份验证使用本地计算机来完成的;域环境下的身份验证是由DC来完成的,因此服务器也必须加入到域中成为域成员,不要把DC和服务器搭建在一台服务器,还有就是客户进行连接是不用输入域名。

2.远程访问服务(Remote Access Service,RAS)允许客户机通过拨号连接或虚拟专用连接登陆的网络。

3.Windows Server 2003远程访问服务提供了两种远程登陆的方式:拨号网络、虚拟专用网。

4.拨号网络的组件:拨号网络客户端、远程访问服务器、wan结构、远程访问协议、lan协议。

5.Vpn组件:客户端(可能是计算机和路由器)、服务器、隧道、连接、隧道协议(pptp和L2tp)、传输互联网络。

6.远程访问服务器的属性包括常规、安全、ip、ppp和日志。

7.在客户端建立连接时要输入服务器的ip地址,输入的是服务器的外网地址。

8.常用的拨号方式:PPTP、L2TP。

9.身份验证的方法:智能卡(EAP服务器与客户端必须全有智能卡)、CHAP1、CHAP2.

10.相同的帐户可以在不同的计算机上同时登陆,但是他们所用的端口是不同的。

11.PPTP和L2TP的端口默认是128个,但是可以自己修改。

12.服务器可以随时断开与客户的连接。

13.在服务器上应用远程访问策略可以是连接更加安全,策略包括条件、权限和配置文件。

14.远程访问的权限:允许访问、拒绝访问、通过远程访问策略控制访问。

15.回拨选项:不回拨(由拨叫方付费)、有呼叫方设置(由服务器端付费)、总是回拨到(由服务器端付费,更安全)。

16.只有提升域的安全级别才能够采用“通过远程访问策略”来验证权限,第一次提升域功能级别要重启计算机。

17.远程访问策略的配置文件包括:拨入限制、ip、多重链接、身份验证(PAP、CHAP、MS-CHAP、MS-CHAP v2、EAP)、加密(无加密、基本加密、增强加密、最强加密)、高级。

18.Windows默认的远程访问策略是不能删除的,如果删除即使不用远程访问策略也不能访问。

19.远程访问的排错:检查硬件是否正常、远程访问服务是否启动、如果服务启动,检查服务器的配置、用户帐户的拨入属性配置是否正确、远程访问策略是否正确、客户端配置是否正确。

20.常见故障及解决方法:

1>在客户机拨入时,显示“本帐户没有拨入权限”。

可能的原因:用户帐户拨入属性中设置拒绝权限、远程访问策略的条件不满足、远程访问策略中配置拒绝访问的权限、没有远程访问策略。

2>在客户机拨入时,总是弹出对话框提示重新输入用户名和密码。

可能的原因:密码输入错误、用户名输入错误。

3>在客户机拨入时,显示身份验证协议问题。

可能原因:客户端域远程访问服务器的身份验证方式不匹配。

Linux多网卡外网访问策略路由设置

如果一个linux服务器有三个口接三个不同的网络,对应的网络信息是如下

传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问网通走网通,那么配置是网关只能够配置一个。

比如以电信为主的,那么网关就只设置电信的1.1.1.254,而针对网通和教育网设置不同的路由,路由下一跳指向网通和教育网对应的网关。

如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问网通和教育网的ip,网通用户会无法访问电信和教育网的ip。而且只有设置了默认路由的那个网络能被跨网络访问,其它两个网络只能被本子网的设备访问。

要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立三个路由表。

用 ip route show可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自/etc/iproute2/rt_tables,这里先在这个配置文件里面添加三个不同的路由表表名,

之后建立这三个路由表的内容,因为这三个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要每个路由表里面建立默认网关即可。

之后再加上三条规则,使来自不同的口的走不同的路由表

至此无论是电信还是网通还是教育网用户,访问三个ip的任意一个地址都能够连通了。即便是服务器上本身的默认路由都没有设置,也能够让外面的用户正常访问。三个网络的IP都能被跨网络访问了。

命令汇总:

阅读剩余
THE END