条件:

网关服务器IP:172.16.0.1,并且可以连接到外网

客户端IP:172.16.0.0/24

1、开启转发支持forward

  1. /etc/sysctl.conf
  2. net.ipv4.ip_forward =

2、配置转发

  1. iptables -t nat -A POSTROUTING -s 172.16.0.0/ -j MASQUERADE

转发网段172.16.0.0/24传过来的包,也可以指定特定的ip地址。例如:

  1. iptables -t nat -A POSTROUTING -s 172.16.0.10 -j MASQUERADE

3、重启iptables

  1. service iptables restart

4、修改客户端网关

  1. /etc/sysconfig/network-scripts/ifcfg-eth0
  2. GATEWAY=172.16.0.1

实例:

一、配置NetWork:

内网:Eth0 :192.168.0.253/24

外网:Eth1:112.95.145.157/24

Eth0:

  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0

增加:

  1. BOOTPROTO=static
  2. IPADDR=192.168.0.253
  3. BROADCASK=192.168.0.255
  4. NETMASK=255.255.255.0
  5. NETWORK=192.168.0.0
  6. ONBOOT=yes

Eth1:

  1. vi /etc/sysconfig/network-scripts/ifcfg-eth1

增加:

  1. BOOTPROTO=static
  2. IPADDR=112.95.145.157
  3. NETMASK=255.255.255.0
  4. BROADCASK=112.95.145.255
  5. NETWORK=112.95.145.0
  6. ONBOOT=yes

设置网关:

  1. vi /etc/syscofig/network

增加:

  1. NETWORKING=yes
  2. NETWORKING_IPV4=yes
  3. GATEWAY=112.95.145.1
  4. HOSTNAME=GateWay

设置DNS:

  1. vi /etc/resolv.conf

增加:

  1. nameserver 210.21.196.6
  2. nameserver 221.5.55.88

重启NETWORK:service network restart

网络启动成功后,Ping一下网关、外部地址,验证配置正确。

二、iptables配置

1、打开IP转发功能:

  1. echo > /proc/sys/net/ipv4/ip_forward

2、建立nat 伪装

  1. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  2. 或者
  3. iptables -t nat -A POSTROUTING -s 192.168.0.0/ -o eth1 -j MASQUERADE (只建立特定子网的nat

3、建立转发

  1. iptables -A FORWARD -i eth0 -j ACCEPT
  2. 或者
  3. iptables -A FORWARD -s 192.168.0.0/ -m state --state ESTABLISHED,RELATED -j ACCEPT (特定子网的转发)

4、保存iptables配置。

  1. service iptables save

最简单的网关就配置好了。可以按实际情况加上各种转发规则。

找一台客户机:

设置

  1. IP192.168.0.2/
  2. GATEWAY192.168.0.253
  3. DNS:210.21.196.6 221.5.88.88

验证能不能正常访问外部。

三、限制特定的MAC  IP访问

1、限制特定MAC 地址外部访问:

  1. iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
  2. 解封:
  3. iptables -D FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
  4. 限制所有通信:
  5. iptables -A INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
  6. 解封:
  7. iptables -A INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP

2、限制特定IP外部访问:

  1. iptables -A FORWARD -s 192.168..x -j DROP
  2. 解封:
  3. iptables -D FORWARD -s 192.168..x -j DROP
  4. 限制所有通信:
  5. iptables -A INPUT -s 192.168..x -j DROP
  6. 解封:
  7. iptables -D INPUT -s 192.168..x -j DROP

参考:

https://www.cnblogs.com/chenshoubiao/p/4782276.html(以上内容部分转自此篇文章)

https://www.cnblogs.com/zhenyuyaodidiao/p/6021671.html(CentOS 7+)

http://blog.csdn.net/u013177446/article/details/53996037

http://blog.sina.com.cn/s/blog_6150ff280100m8q6.html(以上内容部分转自此篇文章)

CentOS 6.9使用iptables搭建网关服务器(转)的更多相关文章

  1. linux+iptables搭建网关服务器

    公司购买的一批云服务器只带内网,配置了一个负载均衡器(lb),这批服务器通过lb可以对外提供服务,但是这批服务器不能主动连接外网,例如使用wget下载文件,或者curl访问ttlsa.com站点. 额 ...

  2. 干货|Linux平台搭建网关服务器

    概述 集群中一共10台服务器组成了局域网环境,但其中只有一台有外网网卡可以访问互联网.现要求另外9台服务器通过这台主机进行互联网访问.  实验环境介绍 利用iptables搭建网关服务器,即通过SNA ...

  3. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  4. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  5. CentOS 7 使用SVN+Apache搭建版本控制服务器

    svn简介 Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. ...

  6. CentOS 7下简答搭建DNS服务器

    一.DNS相关介绍 DNS(Domain Name System)域名系统协议,作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用挨个记住IP地址.通过主机名,最终得到 ...

  7. CentOS 5.8下快速搭建FTP服务器

    学习安装和配置vsftpd: 实验环境:CentOS 5.8 x86_64 测试环境关掉防火墙和selinux. service iptables stop setenforce 0 1.安装vsft ...

  8. CentOS 6.3 + Subversion + Usvn 搭建版本管理服务器

    一. Subversion 简介 Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像 ...

  9. Centos 6.5系统下搭建Git服务器--失败历程

    参考博客 http://www.51hei.com/bbs/dpj-28077-1.html http://www.linuxidc.com/Linux/2014-06/103885p2.htm ht ...

随机推荐

  1. epoll内核源码分析

    转载:https://www.nowcoder.com/discuss/26226?type=0&order=0&pos=27&page=1 /*  *  fs/eventpo ...

  2. java===java基础学习(5)---文件读取,写入操作

    文件的写入读取有很多方法,今天学到的是Scanner和PrintWriter 文件读取 Scanner in = new Scanner(Paths.get("file.txt") ...

  3. java===java基础学习(4)---字符串操作

    java中的字符串操作和python中的大致相同,需要熟悉的就是具体操作形式. 关于具体api的使用,详见:java===字符串常用API介绍(转) package testbotoo; public ...

  4. 安全测试===appscan扫描工具介绍

    IBM AppScan该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界.Rational AppScan 可自动化 Web 应用的安全漏洞评估工作 ...

  5. linux命令(29):cd命令

    例1:进入系统根目录 cd  / cd ../.. // [直接退到当前根目录] 例2:使用 cd 命令进入当前用户主目录 cd 例3:跳转到指定目录 cd  /home/test 例4:返回进入此目 ...

  6. nginx+uwsgi+django+virtualenv+supervisor部署web服务器

    wsgi 全称web server gateway interface,wsgi不是服务器,也不是python模块,只是一种协议,描述web server如何和web application通信的规则 ...

  7. poj 1742(好题,楼天城男人八题,混合背包)

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 33269   Accepted: 11295 Descripti ...

  8. (翻译)与.NET容器映像保持同步

    原文:https://blogs.msdn.microsoft.com/dotnet/2018/06/18/staying-up-to-date-with-net-container-images/ ...

  9. ARK登录信息

    101,389B,382:仙境353:中心岛380:畸变404:孤岛371:焦土487:灭绝 eaglexmw:389b[65493013] : 初级畸变,高级飞升,TEK全解(有380权限),黑鬼, ...

  10. HDU 6186 CS Course【前后缀位运算枚举/线段树】

    [前后缀枚举] #include<cstdio> #include<string> #include<cstdlib> #include<cmath> ...