设为首页 收藏本站
查看: 423|回复: 0

[经验分享] centos 6.5搭建dhcp+网关

[复制链接]

尚未签到

发表于 2018-4-22 10:58:47 | 显示全部楼层 |阅读模式
  原先公司办公网络与无线网络没有做物理隔离,所以在物理上面还不是很安全,后来公司网络整改,虽然起到物理隔离,但做的并不完善,只是用了个小米路由器设置,并做了dhcp,后来访客加上公司员工手机一起上网,使的负载很高,甚至一大部分人都无法获取ip,于是有了本人的搭建的服务。
  

  本人用的是一台dell380机器,配置的要求不高,简单的两块网卡,eth0做外网,eth1做内网

  eth0:192.168.1.1
  eth1:192.168.100.1
  

  配置如下:

  •   首先安装dhcp
      yum install dhcp -y
  •   编辑dhcp配置文件/etc/dhcp/dhcpd.conf ,也可以使用/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample拷贝到/etc/dhcp/dhcpd.conf
  配置文件如下:

  •   ddns-update-style interim;     #配置使用过渡性 DHCP-DNS互动更新模式。
  •   ignore client-updates;         #忽略客户端更新
  •   subnet 192.168.100.0 netmask 255.255.254.0 {
  •   option routers                  192.168.100.1;        #路由器地址
  •   option subnet-mask              255.255.254.0;      #子网掩码选项
  •   option nis-domain               "xfbaydhcp.com";
  •   option domain-name              "xfbaydhcp.com";     #域名
  •   option domain-name-servers      192.168.0.7;       #DNS地址
  •   option time-offset              -18000; # Eastern Standard Time
  •   range dynamic-bootp 192.168.100.1 192.168.101.255;       #租用IP地址>的范围
  •   default-lease-time 21600;    #缺省租约时间
  •   max-lease-time 43200;        #最大租约时间
          host myhost {                                      #设置主机声明  
  hardware ethernet 08:00:27:2C:30:8C;             #指定dhcp客户的mac地址            fixed-address 192.168.100.155;                   #给指定的mac地址分配ip                               }    }
  3、编辑/etc/rc.d/init.d/dhcpd文件


  •   user=dhcpd  
  •   group=dhcpd  
  •   改为  
  •   user=root  
  •   group=root  
  4.指定网卡启动dhcp功能(不指定会报错的)
  vim /etc/sysconfig/dhcpd
  DHCPDARGS=eth1
  5.设置服务开机启动
  chkconfig dhcpd on
  service dhcpd start
  

  网卡ip配置的话这里就不做介绍了,后面就是检测主机是否能自动获取到ip地址
  

  下面就是配置iptables,默认主机都是安装过的
  1.打开转发功能
  vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  2.设置iptables规则
  转发
  iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.143
  设置ttl值(主要用于不允许wifi下面私自接wifi)

  iptables -t mangle -A POSTROUTING -o eth0 -j TTL --ttl-set 0
  关闭外网22端口的访问
  iptables -t nat -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j DROP
  

  其实iptables就这几个简单的配置就可以了,如果是做其他的用途,这些当然是不够的了。

  命令虽然很简单,但细节还是很重要和配置文件。一点错误都会启动不成功。注重排查问题。
  

  该实验很广,配置稍作修改,可用途公司防火墙,可以做到ip带宽限制,网站访问控制等等。
  

  

  

  下面是端口流量控制的脚本
  #!/bin/sh
  #  定义进出设备(eth1 内网,eth0外网)
  IDEV="eth1"
  ODEV="eth0"
  #GUEST="eth2"
  #  定义总的上下带宽
  UP="20mbit"
  DOWN="20mbit"
  #  定义每个受限制的IP上下带宽
  #rate 起始带宽
  UPLOAD="1mbit"
  DOWNLOAD="1mbit"
  

  #ceil 最大带宽
  MUPLOAD="20mbit"
  MDOWNLOAD="20mbit"
  #内网IP段
  NET="192.168."
  INET="192.168.8."
  

  # 受限IP范围,IPS 起始IP,IPE 结束IP。
  IPS="1"
  IPE="255"
  

  # 清除网卡原有队列规则
  tc qdisc del dev $ODEV root 2>/dev/null
  tc qdisc del dev $IDEV root 2>/dev/null
  # 定义最顶层(根)队列规则,并指定 default 类别编号
  tc qdisc add dev $ODEV root handle 1: htb default 4000
  tc qdisc add dev $IDEV root handle 2: htb default 4000
  

  # 定义第一层的 10:1 类别 (上行/下行 总带宽)
  tc class add dev $ODEV parent 1: classid 1:1 htb rate $UP ceil $UP
  tc class add dev $IDEV parent 2: classid 2:1 htb rate $DOWN ceil $DOWN
  

  tc class add dev eth0 parent 1:1 classid 1:4000 htb rate 10mbit ceil 10mbit  prio 2
  tc class add dev eth1 parent 2:1 classid 2:4000 htb rate 10mbit ceil 10mbit  prio 2
  

  #开始iptables 打标和设置具体规则
  j="8";
  i=$IPS;
  while [ $i -le $IPE ]
  do
  tc class add dev eth0 parent 1:1 classid 1:$i$j htb rate 2mbit ceil 2mbit  prio 1
  tc filter add dev eth0  parent 1: protocol ip prio 1 handle $i$j fw classid 1:$i$j
  tc class add dev eth1 parent 2:1 classid 2:$i$j htb rate 4mbit ceil 4mbit  prio 1
  tc filter add dev eth1  parent 2: protocol ip prio 1 handle $i$j fw classid 2:$i$j
  iptables -t mangle -A PREROUTING -s $NET$j\.$i -j MARK --set-mark $i$j
  iptables -t mangle -A PREROUTING -s $NET$j\.$i -j RETURN
  iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j MARK --set-mark $i$j
  iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j RETURN
  i=`expr $i + 1`
  done
  

  j="9";
  i=$IPS;
  while [ $i -le $IPE ]
  do
  tc class add dev eth0 parent 1:1 classid 1:$i$j htb rate 2mbit ceil 2mbit  prio 1
  tc filter add dev eth0  parent 1: protocol ip prio 1 handle $i$j fw classid 1:$i$j
  tc class add dev eth1 parent 2:1 classid 2:$i$j htb rate 4mbit ceil 4mbit  prio 1
  tc filter add dev eth1  parent 2: protocol ip prio 1 handle $i$j fw classid 2:$i$j
  iptables -t mangle -A PREROUTING -s $NET$j\.$i -j MARK --set-mark $i$j
  iptables -t mangle -A PREROUTING -s $NET$j\.$i -j RETURN
  iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j MARK --set-mark $i$j
  iptables -t mangle -A POSTROUTING -d $NET$j\.$i -j RETURN
  i=`expr $i + 1`
  done
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450353-1-1.html 上篇帖子: centos用户磁盘使用配额 下篇帖子: centos6 安装xtrabackup
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表