- 把linux配置成路由器
复习:
改主机名
1 hostnamectl set-hostname network01
2 bash 生效
重启网络服务
systemctl restart network
ip addr
由于配置的静态路由就是相当于网关的一种,所以在配置网卡时,要记得删除网关,DNS。
数据在传输的过程中随着数据的传送 物理地址一直改变,但是源IP和目标Ip不变
配置静态路由的方法:
route add -net 目的网络 gw 下一跳地址
配置静态路由:
route1对应的虚拟机配置:
route add -net 172.16.1.0/24 gw 10.0.0.12
route -n
route3对应的配置:
route add -net 10.0.0.0/24 gw 172.16.1.12
这里的静态路由规则就配置完成了,然后我们会发现网络还是不能互通,这时候,我们还需要在route2对应的虚拟机把内核参数net.ipv4.ip_forward改为1,这个内核默认是0,表示会丢掉所有不是发送给自己的数据包,配置命令如下:
sysctl net.ipv4.ip_forward=1
————————————————
上面的配置是临时生效的,如果想要永久生效,那么我们就需要在/etc/sysconfig/network-scripts目录下创建响应的网卡路由配置文件,把我们的静态路由信息写到里面去。
然后重启网卡测试,我们就发现静态路由仍然存在。说明配置成功,静态路由的优先级最低。
————————————————————————
数据包发送流程
在数据包发送过程中,我们的ip地址从头到尾不会改变,但是MAC地址会随着设备的不通发生改变。
————————————————————————
iptables
iptable:是一个客户端代理,用户通过iptables这个代理,把用户的安全设定执行到对应的安全框架中,这个安全框架才是真正的防火墙,他的名字叫做netfilter。netfilter是linux操作系统的内核中的一个数据包处理模块,它具有如下功能:
nat
数据包内容修改
包过滤型防火墙的功能。
————————————————
规则
规则其实就是网络管理员预定义的条件,一般定义为如果数据包头满足怎样的条件就会去怎样处理这个数据包。
——————————————————————
四表五链。
四表:
filter表 可以过滤数据包。
nat表 可以实现动态地址转换。
mangle表 用于修改数据包的服务类型、TTL、并且可以配置路由实现QOS。TTL表示的是最大生存周期,如果TTL=0的话数据包会被丢弃。
raw表 决定数据包是否被状态跟踪机制处理。
当四张表中的执行规则执行处于同一条链时,执行的优先级是:
raw–>mangle–>nat–>filter
五链:
prerouting 允许配置raw、mangle、nat表中的规则。
input 允许配置mangle、filter、(nat表centos7中可以,6中不可以)表中的规则。
forward 允许配置mangle、filter表中的规则。
output 允许配置所有表中的规则。
postrouting 允许配置mangle、nat表中的规则。
————————————————
数据包通过防火墙的流程如下:
iptables的使用
-L:查看iptables规则,默认查看的是fileter表
-P:修改iptables的某个链的默认规则
-t:修改要操作的表
-I:表示插入一条规则(位于第一条)
-A:追加一条规则
-D:删除规则
-j:针对目标做出的动作
-F:清空规则
-P:表示修改某一个链的默认规则
-n:表示不解析协议
–source:源ip
–protocol:协议
–dectination:目的ip
–dport:端口
iptables -L 查看iptable规则
iptables -P FORWARD DROP 修改FORWARD链的默认规则
-I 插入新规则
-A 追加新规则
-D 删除规则
-F 清空规则
iptables -I FORWARD --source 10.0.0.11 --destination 172.16.1.13 -j ACCEPT
防火墙防护模式:
黑名单:逛公园 iptables -I INPUT --source 10.0.0.1 -j DROP
白名单:电影院
window network
10.0.0.1 --》 10.0.0.11
网站服务器:
默认模式是黑名单
所有人都可以访问80端口
只允许指定的ip可以访问22端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 22 -j DROP
iptable规则生效的特点,从上到下匹配
正常使用xshell
[root@network01 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp – 10.0.0.1 0.0.0.0/0 tcp dpt:22
DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
不能正常使用xshell
[root@network01 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp – 10.0.0.1 0.0.0.0/0 tcp dpt:22
————————————————
对目标做出的动作有:
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给任何回应信息,到了超时时间才会有反应。
REJECT:拒绝数据包通过,客户端刚请求就会收到拒绝的信息。
SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题,静态nat。
MASQUERADE:是SNAT的一种特殊形式,适用于动态nat。
DNAT:目标地址转换。
REDIRECT:在本机做端口映射。
LOG:在/var/log/messages文件中记录日志信息,然后把数据包传递给下一条规则。
规则写法:
iptables -I 链名 --source 源ip --destination 目的ip -j 动作
在配置规则时:
需要注意规则的写入顺序,因为只要前面有一条规则生效,后面的规则就不再生效。
————————————————
防火墙模式
黑名单规则
网站服务器:
默认模式是黑名单
所有人都可以访问80端口
只允许指定的ip可以访问22端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
iptab # 允许10.0.0.1访问22端口
les -A INPUT --protocol tcp --dport 22 -j DROP
拒绝所有人访问22端口
————————————————————
白名单模式:
默认规则拒绝所有。
使用黑名单模式去实现所有人都可以访问80端口,但是只允许指定的ip10.0.0.1可以访问22端口的实现方式是:
iptables -I INPUT --protocol tcp --dport 80 ACCEPT
设置所有人都可以访问80端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp -dport 22 -j ACCEPT
设置只有10.0.0.1可以访问22端口
iptables -P INPUT DROP
修改INPUT链为白名单模式(拒绝所有)
————————————————