位置: 编程技术 - 正文
推荐整理分享Linux下针对路由功能配置iptables的方法详解(linux路由是干嘛的),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux路由器配置实例,linux路由是干嘛的,linux路由是干嘛的,linux路由详解,linux路由表详解,linux路由表详解,基于linux的路由器,linux路由器配置实例,内容如对您有帮助,希望把文章链接给更多的朋友!
作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、dns缓存、流量控制、应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用bind,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.+-protocols---.tar.gz来实现1、网络规划
操作系统是centos5.8 2、安装dhcpd复制代码代码如下:yum install dhcp-3.0.5-.el5vim /etc/dhcp/dhcpd.confddns-update-style interim;ignore client-updates;subnet .0.0.0 netmask ...0 { option routers .0.0.1; option subnet-mask ...0; option domain-name-servers .0.0.1; range dynamic-bootp .0.0. .0.0.; default-lease-time ; max-lease-time ;}
3、安装bind,实现dns缓存复制代码代码如下:yum install bind.i bind-libs.i bind-utils.ivim /etc/named.confoptions { directory "/var/named"; allow-recursion { .0.0.0/; }; recursion yes; forward first; #将所有请求都进行转发 forwarders { ...; }; #定义转发服务器地址};zone "." IN { type hint; file "named.ca";};zone "localhost" IN { type master; file "named.localhost"; allow-transfer { none; };};zone "0.0..in-addr.arpa" IN { type master; file "named.loopback"; allow-transfer { none; };};创建根域文件,默认有复制代码代码如下:dig -t NS . > /var/named/named.cachown :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 .0.0.1chown :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 .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.作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,最后再安装应用程序过滤特征码库-protocols--.tar.gz
1、给内核打补丁,并重新编译内核2、给iptables源码打补丁,并重新编译iptables3、安装proto
备份iptables脚本和配置文件复制代码代码如下:cp /etc/rc.d/init.d/iptables /root/iptables.sysvcp /etc/sysconfig/iptables-config /root/iptables-config2.6内核下载地址
-d linux-2.6...tar.xztar -xvf linux-2.6...tar.gz -C /usr/src #新的内核源码,用于重新编译tar -zxvf netfilter-layer7-v2..tar.gz -C /usr/src #内核补丁和iptables补丁 ,只支持到2.6.#进入解压目录并创建软连接</p><p>cd /usr/srcln -sv linux-2.6.. linux#进入内核目录</p><p>cd /usr/src/linux#为当前内核打补丁</p><p>patch -p1 < ../netfilter-layer7-v2./kernel-2.6.-2.6.-layer7-2..path#为了方便编译内核将系统上的内核配置文件复制过来</p><p>cp /boot/config-2.6.-.el5 /usr/src/linux/.config编译内核复制代码代码如下:make menuconfigNetworking support -> Networking Options -> Network packet filtering framework -> Core Netfilter Configuration<M> Netfilter connection tracking support<M> "lawyer7" match support<M> "string" match support<M> "time" match support<M> "iprange" match support<M> "connlimit" match support<M> "state" match support<M> "conntrack" connection match support<M> "mac" address match support<M> "multiport" Multiple port match supportNetworking support -> Networign options -> Network packet filtering framework -> IP:Netfiltr Configuration<M> IPv4 connection tracking support (required for NAT)<M> Full NAT<M> MASQUERADE target support<M> NETMAP target support<M> 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)复制代码代码如下:makemake modules_installmake 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/srccd /usr/src/netfilter-layer7-v2.cd iptables-1.4.3forward-for-kernel-2.6.forwardcp * /usr/src/iptables-1.4.6/extensions/cd /usr/src/iptables-1.4.6/./configure --prefix=/usr --with-ksource=/usr/src/linuxmakemake install查看安装后的iptables的文件复制代码代码如下:ls /usr/sbin |grep iptablesls /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 -protocols--.tar.gzmake install完成后在/etc/l7-protocols会生成文件支持的协议/etc/l7-protocols/protocols
添加iptables策略,运行内部网络上网,禁止qq和视频复制代码代码如下:iptables -t nat -A POSTROUTING -s .0.0.0/ -j SNAT --to-soure ..6.iptables -A FORWARD -m layer7 --l7proto qq -j DROPiptables -A FORWARD -m layer7 --l7proto httpvideo -j DROPiptables -A FORWARD -m layer7 --l7proto httpaudio -j DROP指定8点到点无法上网复制代码代码如下:iptables -A FORWARD -m time --timestart : --timestop : -j DROP
5、使用tc控制带宽例如公司出口带宽是Mbps,个用户A分配KB的最大下载带宽,给用户B 分配分配的最大下载带宽是KBA用户ip:.0.0.B用户ip:.0.0.复制代码代码如下:#在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 kbsp表示带宽为KB/s,ceil kbps表示最大带宽也为KB/s,prio 2是优先级tc class add dev eth0 parent 1:0 classid 1:2 htb rate kbps ceil kbps prio 2tc class add dev eth0 parent 1:0 classid 1:3 htb rate kbps ceil kbps prio 2#将两个类的默认的fifq队列规则改为sfqtc qdisc add dev eth0 parent 1:2 handle sfqtc qdisc add dev eth0 parent 1:3 handle sfq#在网卡eth0上的1:0节点(对应qdisc中的handle 1:0)添加一个u过滤规则,优先级为1,凡是目标地址是.0.0.的数据包都使用1:2类(对应classid为1:2的类)tc filter add dev eth0 parent 1:0 protocol ip prio 1 u match ip dst .0.0. flowid 1:2tc filter add dev eth0 parent 1:0 protocol ip prio 1 u match ip dst .0.0. flowid 1:3如果还有其他用户例如用户C和D的ip是、,要求的下载带宽也要求那么在加入复制代码代码如下:tc filter add dev eth0 parent 1:0 protocol ip prio 1 u match ip dst .0.0. flowid 1:3tc filter add dev eth0 parent 1:0 protocol ip prio 1 u match ip dst .0.0. flowid 1:3清除eth0上的规则复制代码代码如下:tc qdisc del dev eth1 root> /dev/null
Linux系统中sed命令在文件某行前后添加内容的用法 linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。一、在某行的前一
Linux系统中有效用户组和初始用户组有什么作用于区别? 这里讲解Linux中的有效用户组和初始用户组1、/etc/group文件的结构2、/etc/group文件中内容说明1段是账户名,与/etc/passwd文件中的1段匹配2段是组密码,一般
全面讲解在Linux系统中安装和配置HAProxy的过程 一、Haproxy概念Haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。Haproxy特别适用于
标签: linux路由是干嘛的
本文链接地址:https://www.jiuchutong.com/biancheng/353438.html 转载请保留说明!友情链接: 武汉网站建设