添加静态路由
上图有四个设备,我想实现1号机IP地址10.0.0.11能够连接2号机的IP172.16.1.12,连接3号机的172.16.1.13
再连接3号机的IP172.16.2.13和4号机IP172.16.2.14
第一步,因为1号机的IP地址10.0.0.1和2号机的172.16.1.12不在同一个网段,所以需要添加一个静态路由使两者连接
route add -net 172.16.1.0/24 gw 10.0.0.12
(目的网段) (入口)
第二步,这样1号机能连三号机的IP172.16.1.13,去的路有了,还需要将三号机的回应包返回来,此时3号机无法连1号机,所以在3号机添加
route add -net 10.0.0.0/24 gw 172.16.1.12
第三步,让1号机能够通过2号机连接172.16.2.0的网段
route add -net 172.16.2.0/24 gw 10.0.0.12
第四步,2号机虽然能连3号机,但是当1号机给3号机IP172.16.2.13发数据时,数据在经过2号机的时候会被丢弃,所以在给2号机
添加静态路由的时候,还需要更改2号机的转发参数(临时操作)
route add -net 172.16.2.0/24 gw 172.16.1.13
sysctl net.ipv4.ip_forward=1 (临时)
永久更改转发参数
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
sysctl -p 从配置文件“/etc/sysctl.conf”加载内核参数设置
第五步,经过以上操作,1号机可以给3号机发数据并且会返回数据包,同样再给4号机发数据的时候,
会在3号机被丢弃,所以更改3号机的转发参数
sysctl net.ipv4.ip_forward=1 (临时)
第六步,最后,让数据包在4号机可以返回给1号机
route add -net 10.0.0.0/24 gw 172.16.2.13
永久添加静态路由
第一步,cd到 /etc/sysconfig/network-scripts 目录下
第二步,route -n查看新增加的路由的网络接口(eth0)
第三步,将ip route显示的新路由的记录写到该目录下新建的route-eth0文件中(与新路由的网络接口一致)
ip route|tail -2 > route-eth0
systemctl restart network (重启网络服务)
iptable 软件防火墙 用来管理 Linux 防火墙的命令程序
iptable (通过调用Linux内核的netfilter模块起到防火墙的作用)
iptable:四表五链
四表:
filter表:过滤数据包 (防火墙相关)
nat表:实现nat上网 (内网上外网,将私网IP转换成公网IP)
mangle表:修改数据包
raw表:追踪数据包
五链:
PREROUTING 在对数据包做路由选择之前,将应用此链中的规则;
INPUT 当收到访问防火墙本机地址的数据包时,将应用此链中的规则;
FORWARD 当收到需要通过防火中转发给其他地址的数据包时,将应用此链中的规则;
OUTPUT 当防火墙本机向外发送数据包时,将应用此链中的规则;
POSTROUTING 在对数据包做路由选择之后,将应用此链中的规则;
命令:
iptables -L 查看所有链的iptable规则
iptables -P INPUT DROP 修改INPUT链的默认规则为白名单模式 (拒绝所有人)
-I 插入新规则
-A 追加新规则
-D 删除规则
-j 动作
-F 清楚添加的所有的规则
场景:允许所有人可以访问80端口,只允许10.0.0.1可以访问22端口
黑名单模式(默认)
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
iptanles -A INPUT --protocol tcp --dport 22 -j DROP
白名单模式(拒绝所有人)
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
--source 指定源地址
--destination 指定目标地址
--protocol 指定访问协议
--dport 指定端口
禁止本机向目标地址发送数据
iptables -A OUTPUT --protocol icmp --destination 172.16.1.12 -j DROP