一、添加静态路由
- 如图所示,network1(10.0.0.11)和network2(10.0.0.12/172.16.1.12)是nat模式链接,network2和network3(172.16.1.13)是lan区段链接.如何做到network1能够ping通network3(不是一个网段)
不是一个网段,添加静态路由即可找到。(告诉数据包该怎么走,数据包有来有回就通了)
#给network1添加静态路由,用10.0.0.12作为跳板
route add -net 172.16.1.0/24 gw 10.0.0.12
#用sysctl给network2调整内核参数(每次重启网卡之后都要打开)
sysctl net.ipv4.ip_forward=1
#系统直接丢掉数据包有两种情况:
#1.不是自己的数据包
#2.不知道怎么回复的数据包。
#所以network3也需要添加静态路由,用172.16.1.12做跳板
route add -net 10.0.0.0/24 gw 172.16.1.12
- 如果增加一个路由器则同理即可ping通
- 使用route add只是临时的,若要永久配置
ip route #查看静态路由
#永久配置(创建一个文件在network-scripts)
ip route |tail -1 >/etc/sysconfig/network-scripts/route-eth0
二、追踪命令
- 追踪命令可以追踪访问一个网站的足迹
traceroute -n www.qq.com (Linux)
tracert -d www.qq.com (windows)
三、iptable软件防火墙
-
iptable和firewalld都是防火墙,而且都是调用linux内核netfilter模块。但是iptable需要懂一些网络知识,而firewalld对网络知识没有要求,更简单。
-
iptable的四表五链
四表
表名 | 意义 |
---|---|
filter | 过滤数据包 |
nat | 实现NAT上网 |
mangle | 修改数据包 |
raw | 追踪数据包 |
五链
链名 | 意义 |
---|---|
PREROUTING链 | 地址转换 |
INPUT链 | 进来的数据包 |
FORWARD链 | 转发数据包规则(默认是打开的ACCEPT) |
OUTPUT链 | 外出的数据包 |
POSTROUTING链 | 地址转换 |
四表与五链的关系
- iptable的参数
iptables -L #查看iptable规则
iptables -I #插入新规则
iptables -A #追加新规则
iptables -D #删除规则
iptables -F #清空规则
-j后面接动作
filter表
- filter表=INPUT+FORWARD+OUTPUT
- FORWARD链默认是允许任何数据包通过的。
iptables -P FORWARD DROP #修改FORWARD链默认规则
-
INPUT的应用(数据包的进入)
防火墙保护模式分两种:黑名单与白名单(阻止数据包的进入,默认是所有数据包都可以进)
- 黑名单:
加入黑名单相当于分组不可见
#阻止10.0.0.1访问
iptable -I INPUT --source 10.0.0.1 -j DROP
网站服务器:
所有人都可以访问80端口,只有指定ip可以访问22端口
#ip为10.0.0.1的tcp协议可以访问22端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
#禁止其他的ip访问22端口
iptables -A INPUT --protocol tcp --dport 22 -j DROP
- 白名单
加入白名单相当于仅分组可见
所有人可以访问80端口,只有指定ip可以访问22端口
#将tcp协议80端口打开
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
#ip为10.0.0.1的tcp协议可以访问22端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
#修改默认(将所有人拒绝访问)
iptables -P INPUT DROP
顺序很重要否则xshell连接不上!!!!
-
INPUT的应用
拦截出去的包
#将14.215.177.38的出去的包拦截
iptables -I OUTPUT --destination 14.215.177.38 --protocol icmp -j DROP