@H_404_0@本人用的是一台dell380机器,配置的要求不高,简单的两块网卡,eth0做外网,eth1做内网
@H_404_0@eth0:192.168.1.1 @H_404_0@eth1:192.168.100.1 @H_404_0@
@H_404_0@配置如下:
- @H_404_0@首先安装dhcp@H_404_0@yum install dhcp -y
- @H_404_0@编辑dhcp配置文件/etc/dhcp/dhcpd.conf ,也可以使用/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample拷贝到/etc/dhcp/dhcpd.conf
- @H_404_0@ddns-update-style interim; #配置使用过渡性 DHCP-DNS互动更新模式。
- @H_404_0@ignore client-updates; #忽略客户端更新
- @H_404_0@subnet 192.168.100.0 netmask 255.255.254.0 {
- @H_404_0@ option routers 192.168.100.1; #路由器地址
- @H_404_0@ option subnet-mask 255.255.254.0; #子网掩码选项
- @H_404_0@ option nis-domain "xfbaydhcp.com";
- @H_404_0@ option domain-name "xfbaydhcp.com"; #域名
- @H_404_0@ option domain-name-servers 192.168.0.7; #DNS地址
- @H_404_0@ option time-offset -18000; # Eastern Standard Time
- @H_404_0@ range dynamic-bootp 192.168.100.1 192.168.101.255; #租用IP地址>的范围
- @H_404_0@ default-lease-time 21600; #缺省租约时间
- @H_404_0@ max-lease-time 43200; #最大租约时间
@H_404_0@4.指定网卡启动dhcp功能(不指定会报错的) @H_404_0@vim /etc/sysconfig/dhcpd @H_404_0@DHCPDARGS=eth1 @H_404_0@5.设置服务开机启动 @H_404_0@chkconfig dhcpd on @H_404_0@service dhcpd start @H_404_0@
@H_404_0@网卡ip配置的话这里就不做介绍了,后面就是检测主机是否能自动获取到ip地址 @H_404_0@
@H_404_0@下面就是配置iptables,默认主机都是安装过的 @H_404_0@1.打开转发功能 @H_404_0@vim /etc/sysctl.conf @H_404_0@net.ipv4.ip_forward = 1 @H_404_0@2.设置iptables规则 @H_404_0@转发 @H_404_0@iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.143 @H_404_0@设置ttl值(主要用于不允许wifi下面私自接wifi)
@H_404_0@iptables -t mangle -A POSTROUTING -o eth0 -j TTL --ttl-set 0 @H_404_0@关闭外网22端口的访问 @H_404_0@iptables -t nat -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j DROP @H_404_0@
@H_404_0@其实iptables就这几个简单的配置就可以了,如果是做其他的用途,这些当然是不够的了。
@H_404_0@命令虽然很简单,但细节还是很重要和配置文件。一点错误都会启动不成功。注重排查问题。 @H_404_0@
@H_404_0@该实验很广,配置稍作修改,可用途公司防火墙,可以做到ip带宽限制,网站访问控制等等。 @H_404_0@
@H_404_0@
@H_404_0@
@H_404_0@下面是端口流量控制的脚本 @H_404_0@#!/bin/sh @H_404_0@# 定义进出设备(eth1 内网,eth0外网) @H_404_0@IDEV="eth1" @H_404_0@ODEV="eth0" @H_404_0@#GUEST="eth2" @H_404_0@# 定义总的上下带宽 @H_404_0@UP="20mbit" @H_404_0@DOWN="20mbit" @H_404_0@# 定义每个受限制的IP上下带宽 @H_404_0@#rate 起始带宽 @H_404_0@UPLOAD="1mbit" @H_404_0@DOWNLOAD="1mbit" @H_404_0@
@H_404_0@#ceil 最大带宽 @H_404_0@MUPLOAD="20mbit" @H_404_0@MDOWNLOAD="20mbit" @H_404_0@#内网IP段 @H_404_0@NET="192.168." @H_404_0@INET="192.168.8." @H_404_0@
@H_404_0@# 受限IP范围,IPS 起始IP,IPE 结束IP。 @H_404_0@IPS="1" @H_404_0@IPE="255" @H_404_0@
@H_404_0@# 清除网卡原有队列规则 @H_404_0@tc qdisc del dev $ODEV root 2>/dev/null @H_404_0@tc qdisc del dev $IDEV root 2>/dev/null @H_404_0@# 定义最顶层(根)队列规则,并指定 default 类别编号 @H_404_0@tc qdisc add dev $ODEV root handle 1: htb default 4000 @H_404_0@tc qdisc add dev $IDEV root handle 2: htb default 4000 @H_404_0@
@H_404_0@# 定义第一层的 10:1 类别 (上行/下行 总带宽) @H_404_0@tc class add dev $ODEV parent 1: classid 1:1 htb rate $UP ceil $UP @H_404_0@tc class add dev $IDEV parent 2: classid 2:1 htb rate $DOWN ceil $DOWN @H_404_0@
@H_404_0@tc class add dev eth0 parent 1:1 classid 1:4000 htb rate 10mbit ceil 10mbit prio 2 @H_404_0@tc class add dev eth1 parent 2:1 classid 2:4000 htb rate 10mbit ceil 10mbit prio 2 @H_404_0@
@H_404_0@#开始iptables 打标和设置具体规则 @H_404_0@j="8"; @H_404_0@i=$IPS; @H_404_0@while [ $i -le $IPE ] @H_404_0@do @H_404_0@tc class add dev eth0 parent 1:1 classid 1:$i$j htb rate 2mbit ceil 2mbit prio 1 @H_404_0@tc filter add dev eth0 parent 1: protocol ip prio 1 handle $i$j fw classid 1:$i$j @H_404_0@tc class add dev eth1 parent 2:1 classid 2:$i$j htb rate 4mbit ceil 4mbit prio 1 @H_404_0@tc filter add dev eth1 parent 2: protocol ip prio 1 handle $i$j fw classid 2:$i$j @H_404_0@iptables -t mangle -A PREROUTING -s $NET$j\.$i -j MARK --set-mark $i$j @H_404_0@iptables -t mangle -A PREROUTING -s $NET$j\.$i -j RETURN @H_404_0@iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j MARK --set-mark $i$j @H_404_0@iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j RETURN @H_404_0@i=`expr $i + 1` @H_404_0@done @H_404_0@
@H_404_0@j="9"; @H_404_0@i=$IPS; @H_404_0@while [ $i -le $IPE ] @H_404_0@do @H_404_0@tc class add dev eth0 parent 1:1 classid 1:$i$j htb rate 2mbit ceil 2mbit prio 1 @H_404_0@tc filter add dev eth0 parent 1: protocol ip prio 1 handle $i$j fw classid 1:$i$j @H_404_0@tc class add dev eth1 parent 2:1 classid 2:$i$j htb rate 4mbit ceil 4mbit prio 1 @H_404_0@tc filter add dev eth1 parent 2: protocol ip prio 1 handle $i$j fw classid 2:$i$j @H_404_0@iptables -t mangle -A PREROUTING -s $NET$j\.$i -j MARK --set-mark $i$j @H_404_0@iptables -t mangle -A PREROUTING -s $NET$j\.$i -j RETURN @H_404_0@iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j MARK --set-mark $i$j @H_404_0@iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j RETURN @H_404_0@i=`expr $i + 1` @H_404_0@done