两台虚拟机,desktop双网卡,配置ip分别为172.25.254.113和1.1.1.113

打开另一台虚拟机server,配置ip为1.1.1.213

在双网卡的desktop下载httpd,在默认发布目录编写默认发布文件



systemctl start httpd
1.用真机通过http访问172.25.254.113

firewall-cmd --list-all 查看火墙状态

访问不到,因为desktop的虚拟机火墙是public,不允许http访问
firewall-cmd --add-source=172.25.254.13 --zone=trusted
把主机的ip这个源添加到trusted域里,

在主机测试,通过http可以访问

2.用server通过http访问1.1.1.113


可以ping通,但是不能访问,因为火墙的默认域为public,http不能通过访问
firewall-cmd --remove-interface=eth1 --zone=public 把eth1接口从public域摘下来
firewall-cmd --add-interface=eth1 --zone=trusted 把eth1接口添加到trusted域
firewall-cmd --list-all --zone=trusted 查看trusted域

添加成功后
在server测试
通过http访问1.1.1.113, 可以访问

想把eth1再改回去,
firewalll-cmd --change-interface=eth1 --zone=public

永久操作与重新加载
firewall-cmd --permanent --remove-service=ssh 永久的操作需要reload才能生效 firewall-cmd
--reload 重新加载后不会断开已经连接的设备 firewall-cmd --complete-reload 完全重新加载,会断开已经链接的设备
演示实验
在desktop虚拟机永久删除ssh
[root@dektop ~]# firewall-cmd --permanent --remove-service=ssh success
[root@dektop ~]# firewall-cmd --list-all public (default, active) interfaces:
eth0 eth1 sources: services: dhcpv6-client ssh ports: masquerade: no
forward-ports: icmp-blocks: rich rules:

永久删除ssh后,没有重新加载
在真机ssh连接desktop可以连接
[root@dektop ~]# firewall-cmd --reload Success
此时再用ssh已经无法连接,但之前的连接并不会断开

但之前的连接并不会断开

[root@dektop ~]# firewall-cmd --complete-reload success
完全重新加载后,之前的连接断开,已经无法操作


结束方法
再打开一个shell,然后结束掉进程

端口操作
firewall-cmd --zone=public --list-ports firewall-cmd --permanent --zone=public
--add-port=8080/tcp firewall-cmd --permanent --zone=public --remove-port=22/ssh
在desktop
cd /etc/firewalld 配置文件

指定某个ip可以访问ssh
[root@dektop ~]# firewall-cmd --direct -- --add-chain --get-all-rules
--passthrough --query-rule --add-rule --get-chains --permanent --remove-chain
--get-all-chains --get-rules --query-chain --remove-rule [root@dektop ~]#
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.13 -p tcp
--dport 22 -j ACCEPT success [root@dektop ~]# firewall-cmd --remove-service=ssh
success
用direct命令来指定,然后再删除掉默认方式的ssh,被指定的走指定的方式,其他的走默认方式,所以将默认方式的ssh删掉,实验现象会明显

accept 接受
reject 拒绝,有回应,客户端不再访问
drop 丢弃,没有回应,客户端会一直访问

在server端测试
[root@localhost ~]# ssh [email protected] ssh: connect to host 1.1.1.113 port 22:
No route to host [root@localhost ~]#

在真机测试
[kiosk@foundation13 ~]$ ssh [email protected] [email protected]'s
password: Last login: Fri May 31 22:41:32 2019 from 172.25.254.13 [root@dektop
~]#
因为真机ip就是被指定的,所以可以访问

[root@dektop ~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0 eth1
sources:
services: dhcpv6-client
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@dektop ~]# firewall-cmd --direct --get-all-rules ipv4 filter INPUT 1 -s
172.25.254.13 -p tcp --dport 22 -j ACCEPT
这种方式添加后,无法用firewall-cmd --list-all查看
firewall-cmd --direct --get-all-rules 来查看

删除
[root@dektop ~]# firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s
172.25.254.13 -p tcp --dport 22 -j ACCEPT success [root@dektop ~]# firewall-cmd
--direct --get-all-rules [root@dektop ~]#

地址伪装

处于1网段的server主机想要连接真机,他们不再一个网段,所以不能连接,让有双网卡的desktop开启地址伪装的功能,让server通过desktop去连接主机
[root@dektop ~]# firewall-cmd --add-masquerade success [root@dektop ~]#
firewall-cmd --list-all public (default, active) interfaces: eth0 eth1 sources:
services: dhcpv6-client ports: masquerade: yes forward-ports: icmp-blocks: rich
rules:

[root@dektop ~]# sysctl -a |grep ip_forward net.ipv4.ip_forward = 1
在1网段的server虚拟机
设置网关为 1.1.1.113

查看
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway
Genmask Flags Metric Ref Use Iface 0.0.0.0 1.1.1.113 0.0.0.0 UG 1024 0 0 eth0
1.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

测试
ping 172.25.254.13


地址伪装是在路由之后

端口转发
用ip为172的真机,去连接1网段的server主机,无法连接,
现在让真机去连接双网卡的desktop的22端口时,直接跳转到1网段的server主机

在双网卡主机
[root@dektop ~]# firewall-cmd
--add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.213 success
[root@dektop ~]# firewall-cmd --list-all public (default, active) interfaces:
eth0 eth1 sources: services: dhcpv6-client ports: masquerade: yes
forward-ports: port=22:proto=tcp:toport=22:toaddr=1.1.1.213 icmp-blocks: rich
rules:

然后在真机去ssh连接
[kiosk@foundation13 ~]$ ssh [email protected] [email protected]'s
password: Last login: Sat Jun 1 01:21:30 2019 from 1.1.1.113 [root@server ~]#
ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet
1.1.1.213 netmask 255.255.255.0 broadcast 1.1.1.255 inet6
fe80::5054:ff:fe54:5072 prefixlen 64 scopeid 0x20<link> ether 52:54:00:54:50:72
txqueuelen 1000 (Ethernet) RX packets 163169 bytes 11236766 (10.7 MiB) RX
errors 0 dropped 0 overruns 0 frame 0 TX packets 2244 bytes 200891 (196.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@server ~]#

注意输入密码时,应输入单网卡server的密码

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信