1. 把linux配置成路由器
准备一台机器:
改主机名 hostnamectl set-hostname network01
#bash生效
重启网络服务systemctl restart network
新增网卡如何操作:
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.11
NETMASK=255.255.255.0
systemct1 restart network
ip addr 查看
由于配置的静态路由就是相当于网关的一种,所以在配置网卡时,要记得删除网关,DNS。 数据在传输的过程中随着数据的传送 物理地址一直改变,但是源IP和目标Ip不变
2. iptables防火墙
参数; -I 插入一条规则,(默认是从自上而下应用规则,所以咋插入规则时,要考虑先后顺序,尤其是在配置白名单的时候,注意不要先设置白名规则,要不然你可能自己都登陆不上了)
-A 追加新的规则
-D 删除规则
-F 清空所有规则
-P 修改某个链默认规则
iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置。
2.1 iptables中的四表五链
四表 :
filter表 过滤数据包
nat表 nat地址转换上网【内网转外网的功能】
mangle表 修改数据包
raw表 追踪数据包
五链:
PREROUING 在进入路由之前 (地址转换,改写等操作)
INPUT 要对数据跑过滤
FORWARD 转发功能
OUTPUT
POST 地址转换
2.2iptables练习
黑名单规则
网站服务器:默认模式是黑名单所有人都可以访问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
白名单规则
白名单模式: 默认规则是拒绝所有人都可以访问80端口,只允许指定的ip可以访问22端口iptables -F
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
iptables -I INPUT --source 10.0.0.1 --protocol tcp --dport 22 -j ACCEPT
iptables -I INPUT --source 10.0.0.1 --protocol icmp -j ACCEPT
iptables -P INPUT DROP
拦截数据包发送到指定IP:
—destination 指定目的IP :
2.3 iptables实现共享上网
端口映射 (作用:在外网可以访问内网)
- network2 添加网网关,使其可以上外网。
route add -net 0.0.0.0/0 gw 10.0.0.2
(0.0.0.0/0代表任意网段)
- 恢复默认规则 FORWARD链设为允许,清空链规则
iptables -P FORWARD ACCCEPT
查看:iptables -L -n
iptables -F
- netwark03通过net共享上网
vim配置网卡 nwtwark02 172.16.1.12作为网关。
DNS为223.5.5.5—-> 重启网络服务
- netwark02已经可以接受到network03的数据了,但是netwaok03不能上网需要network2打开地址转换功能
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUARADE
(动作:模拟地址转换)
- network01 开启内核转发参数 (sysctl -a| grep ipv4.ip_forward 查看 )
echo 'net.ipv4,ip_forward=1'>>/etc/sysctl.conf
#永久生效sysctl -p
ps:通过对network02进行抓包 tcpdump -i eth1 icmp nn tcpdump -i eth0 icmp nn IP地址转换: 172.1.13—-> 0.0.0.12
2.4 端口映射
-t nat表
-APREROUTING链―数据包进来的时候做处理-d 目的ip是10.0.0.12
-p tcp协议
-dport目的端口-j 指定动作―DNATDNAT―做目的ip地址转换
--to-destination 192.168.0.2∶22
规则内容1: 在外网访问公司内网主机上的服务
iptables -t nat -A PREROUTING -d 10.0.0.12 -p tcp --dport 3022 -j DNAT --to-destination 172.16.1.26:22
规则内容2:只有指定的IP访问指定的端口才能进入
iptables -t nat -A PREROUTING -d 10.0.0.12 -p tcp --dport 1080 -j DNAT --to-destination 192.168.0.50:80
效果: