启动linux路由功能

echo "echo 1 >/proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local
或者修改
vi /etc/sysctl.conf net.ipv4.ip_forward =1  也是开启路由转发功能

查看\添加\修改\删除linux静态路由
route -n 显示当前路由表
netstat -rn 显示当前路由表
route add -net 添加到哪儿个网络的路由
route add -host 添加到哪儿台计算机的路由
route add default gw 添加默认路由(找不到合适的路由,才找这个路由,级别最低)
route delete 删除路由

举例:
route add -net 202.38.85.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.1.0 netmask 255.255.255.192 dev eth1
route add -net 192.168.1.64 netmask 255.255.255.192 dev eth2
route add -net 192.168.1.128 netmask 255.255.255.192 dev eth3
route add -net 192.168.1.192 netmask 255.255.255.192 dev eth4

最后指定默认网关:
route add default gw 202.38.85.1

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
netconfig -d eth1 此命令是给eth1配置ip等信息

简要协议下5台机器的地址分配图:

CentOS1(192.168.1.1<eth0>)----CentOS2(192.168.1.2<eth0>/192.168.2.1<eth1>)----CentOS3(192.168.2.2<eth0>/192.168.3.1<eth1>)----CentOS4(192.168.3.2<eth0>/192.168.4.1<eth1>)----CentOS5(<eth0>192.168.4.2)
CentOS1设置了缺省网关192.168.1.2
centOS5设置了缺省网管192.168.4.1

CentOS2 CentOS3 CentOS4 开启了路由转换功能
vi /etc/sysctl.conf net.ipv4.ip_forward =1(0改做1)  也是开启路由转发功能

当我们从CentOS1 ping CentOS2的eth1网口ip时,是可以ping通的,因为CentOS2具有路由转换功能
当我们从CentOS1 ping CentOS3的eth0网口时会出现如下景象:
[root@centos ~]#ping 192.168.2.2
PING 192.168.2.2 (192.168.2.2) 56()84 bytes of data.

就此不动了,这是表明ping包已经送达,但是没有回应信息,为什么会这样呢?具体说一下,ping包从万能路由出去到CentOS2的eth0端口,然后经过centos2的路由表转换到达Centos2的eth1端口,通过直连的网线到达192.168.2.2,CentOS3的eth0网口相应ping包,但是他的相应包不知道如何到达192.168.1.1.所以CentOS1的发出去的ping包没有返回,就一直等着。我们应该在CentOS3上,添加路由规则:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
然后在CentOS1上ping 192.168.4.1 不通,那就应该在CentOS2上添加路由
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.2
在CentOS3上添加路由
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.3.2
这样就通了

zabra动态路由的设置
安装之后支持RIP协议和OSPF协议,安装情况明天再说。

网络层防火墙:

ip数据报:源ip地址 目标IP地址 源端口,目标端口 协议类型(tcp还是udp),7位标志位(syn ack urg)等

网络地址转换NAT(network address transcate)

NAT: 保护的就是内网,所以就是以内网为参照物的
SNAT(源地址转换,内网出去)
DNAT(目标地址转换 外网进来)

在linux的内核中使用netfilter架构实现防火墙功能
iptables是linux系统中为用户提供的netfilter管理工具,用于实现对linux内核中网络防火墙的管理

iptables 缺省有5条规则链:

PREROUTING--->FORWARD--->POSTROUTING--->
    (DNAT)    |           |   (SNAT)
             |             |
           INPUT      OUTPUT
             |             ^ 
             |             |
            V            |
        上层应用程序(接收或发送网络数据)

规则链<--->检查点
iptables缺省有3个规则表
filter:用于设置包过滤
nat:用于设置地址转换
mangle:用于设置网络流量×××等应用
不同的规则表由不同的规则链组成
FILTER:INPUT,FORWARD OUTPUT

NAT:PREROUTING POSTROUTING OUTPUT

MANGLE:PREROUTING POSTROUTING INPUT OUTPUT 和FORWARD

规则链 是由匹配条件组成的最终要有一个操作。

iptables有三个主要命令:
iptables 是主要管理命令,
iptables-save命令是将当前系统的防火墙设置保存在一个文本文件中。
iptables-restore恢复

iptables服务启动脚本
/etc/rc.d/init.d/iptables
iptables配置文件与策略设置文件
iptables配置文件
/etc/sysconfig/iptables-config
策略配置文件
/etc/sysconfig/iptables

iptables [-t 要操作的表] <操作命令> [要操作的链] [规则号码][匹配条件][-j 匹配后要做的动作]

针对链的操作有:
-L:列出表中的所有规则
-F:清除链中的所有规则
-P:设置链的默认操作 ACCEPT REJECT DROP
-Z:计数器清零
-N:定义一个新的规则链
-X:删除一个规则链

不加要操作的规则链的名字,就会对整个表操作

针对规则的操作:
-A:追加一个规则
-I:插入一个规则
-D:删除一个规则

在规则链中,规则是有顺序的,所以才有-A和-I参数出现

查看防火墙的状态 iptables -L (显示过滤表中的所有规则链)
[root@centos ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
[root@centos ~]#

iptables命令设置在系统中是即时生效的。

iptables-save命令缺省只是将配置信息显示到标准输出上
如果需要将iptables-save命令的输出保存,需要将命令输出结果重定向到指定文件中
iptables-save>/etc/sysconfig/iptables(service iptables save等价)
或:
iptables-save>ipt.v1.0
使用iptables-save命令可以将多个版本的配置保存到不同的文件中

恢复:
iptables-restore</etc/sysconfig/iptables或者
iptables-restore<ipt.v1.0恢复

#iptables -t nat -L 列出nat表的规则
#iptables -F清空filter表中所有规则
#iptables -t nat -F
删除表中的自定义规则链
#iptables [-t table] -X [chain]

在INPUT规则链中添加规则,允许来自lo网络接口中的所有数据包
iptables -t filter -A INPUT -i lo -j ACCEPT

在INPUT规则链中添加规则,允许eth0网络接口中来自192.168.1.0/24子网的所有数据包
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

实例分析

单服务器的防护
如何做网关
如何限制内网用户
内网如何做对外服务器。

单服务器的防护:
弄清对外服务的对象
书写规则
    网络接口lo的处理
    状态检测的处理
    协议+端口的处理
实例:一个普通的web服务器
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport 22,80 -j ACCEPT
iptables -A INPUT -m state --state RELATED(相关的),ESTABLISHED(已建立链接的) -j ACCEPT
iptables -p INPUT DROP
注意:确保规则循序正确,弄清逻辑关系,学会时刻使用-vnl

RELATED(相关的):在已有链接的基础上建立新链接
ESTABLISHED(已建立链接的):已经建立链接的

主机防火墙策略:
#iptables -F    #清空所有包过滤规则
#iptables -X    #删除所有自定义规则链
#iptables -Z    #所有统计数据清零
#iptables -P INPUT DROP #默认规则丢弃
#iptables -A INPUT -i lo -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#service iptables save

网关服务器配置实例:
配置需求:
    服务器网接口eth0的IP地址为192.168.1.1/24,eth0网络接口与公司的内部网络相连
    服务器的网络接口ppp0是主机的拨号网络接口,具有公网IP地址
    局域网中的所有主机都需要通过Linux网管服务器与外部互联网通信

关键配置命令:
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

另外举例:
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 192.168.0.20
#iptables -t nat -L

目标地址转换:DNAT

#iptables -t nat -A PREROUTING -d 192.168.106.200 -p tcp --dport 80 -j DNAT --to 192.168.156.200:80

转载于:https://blog.51cto.com/guoli0813/360632

路由及iptables学习笔记相关推荐

  1. iptables学习笔记:使用NAT实现简单的无线AP

    之前使用的是无线路由让手机上网.学习了iptables后,尝试在非openwrt系统的Linux上实现相同功能.本文简单记录一下. 手上有块X86的板子,上面安装了Linux系统.几个月前研究了WIF ...

  2. centos Iptables学习笔记

    一.防火墙,iptables和netfilter定义 防火墙:是由软件和硬件设备组合而成的一种隔离技术,它工作于网络或主机的边缘(通信报文的进出口),对于进出本网络或主机的数据包根据事先定义的检测规则 ...

  3. iptables学习笔记

    1.数据包的流向 数据包在主机上有三个流向: a.发往本机:从本机的内核空间流向用户空间(应用程序) b.本机发出:从本机的用户空间流向内核空间,在经过网卡流出 c.转发:从本机的一个网卡进来,从另外 ...

  4. iptables学习笔记:端口转发之“内网访问外网”

    我们一般使用路由上网,本机IP是内网私有IP,如192.168.1.100/24,而不是公网IP.至于能上网,是因为路由器已经做了转发.本文以实例介绍地址转换,实现内网设备与外部网络通信.有了前文的介 ...

  5. iptables学习笔记:端口转发之“外网访问内网”

    考虑一种网络拓扑应用情景,一个内部局域网中有多台服务器提供不同的服务,如web服务.FTP服务.ssh.telnet等,通过服务器(或网关.防火墙)连接外部网络,如果外部网络上的主机需要访问这些服务器 ...

  6. iptables学习笔记:端口转发命令优化

    大约一年前,在一个x86板子系统上实现端口转发.现在又出现问题,又要抽空整理整理.虽说是另一同事在另一项目中遇到的,但中秋节前我出差之前老大叫我帮忙协助该同事排查,出差时该同事又call我,出差后老大 ...

  7. iptables学习笔记:同一端口号同时支持tcp和udp的转发

    前段时间,某项目中遇到一个端口转发问题,虽然我无缘参与项目,但由于项目使用到的一个平台恰好是我前不久搞过的,所以最终还是找我,于是中断了正在进行的任务进行协助.他们定位到只有udp无法转发成功,而tc ...

  8. 摘自ubantuer-Linux防火墙iptables学习笔记(三)iptables命令详解和举例

    网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能有所帮助. 网管员的安全意识要比空喊Linux安全重要得多. iptables -F iptables -X iptables ...

  9. iptables 学习笔记 二 参数指令

    转载http://blog.chinaunix.net/uid-9950859-id-98277.html iptables 指令 语法: iptables [-t table] command [m ...

最新文章

  1. EntityFrameworkCore 安装
  2. 怎么剪切一段音乐其中的片段
  3. 摸不到视频里的犀牛,却能在它身上画画,特效紧贴凹凸表面,动也不掉:全靠免费AE插件...
  4. linux 源码安装 yum rpm区别
  5. 折半查找一个有序数组中的一个元素,即二分法
  6. [swift] LeetCode 234. Palindrome Linked List
  7. 【雷达通信】基于matlab CDIF算法雷达信号分选【含Matlab源码 1186期】
  8. oracle 写递归,请问一个递归sql的写法
  9. 算法:同构字符串205. Isomorphic Strings
  10. mysql 5.7插入很慢_MySQL进阶——主从复制
  11. 说一个岛上有100个人,其中有5个红眼睛
  12. # 学号12 2016-2017-2 《程序设计与数据结构》第8周学习总结
  13. Windows Workflow Foundation(一)
  14. word办公技巧:如何让Excel与Word文档数据同步
  15. 目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022)
  16. 计算机中的英语六级作文万能模板,英语六级作文万能模板句子
  17. .NET应用程序安全操作概述
  18. mysql sql stuff函数_mssql 系统函数 字符串函数 stuff 功能简介
  19. 服务器中毒怎么找出病毒源文件,电脑中毒后怎样查找出在哪个文件夹
  20. Python图形系列之桑基图

热门文章

  1. java 登录牵手_Java: HttpURLConnection 模拟登录方法 (带cookie 的Post/Get)_20160908_七侠镇莫尛貝...
  2. mysql 默认当前时间_复制信息记录表|全方位认识 mysql 系统库
  3. 研究生调剂!!急!!!跪求解答!!?
  4. 【知识图谱系列】人工智能经典图谱有哪些?
  5. 【深度学习】基础知识 | 超详细逐步图解 Transformer
  6. 【NLP】面向对话的机器阅读理解任务(Dialogue MRC)相关论文整理
  7. 线性代数回顾.pptx
  8. 【NLP】CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结
  9. 【Python基础】Pandas向量化字符串操作
  10. 【机器学习基础】机器学习模型的度量选择(下)