admin管理员组文章数量:1602057
背景:Windows可以ping通虚拟机的IP,并且可以用CRT登录连接。但是访问不了httpd。
虚拟机地址:192.168.233.101
Windows地址:192.168.233.1
首先确认防火墙和selinux都已经关闭:
什么是iptables?
1、IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统
2、如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器
3、则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置
4、防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在Linux 内核中
5、在数据包过滤表中,规则被分组放在我们所谓的链(chain)中
6、而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则
7、虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成
8、netfilter 组件也称为内核空间(kernelspace),是内核的一部分
9、由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集
10、iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易
11、除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它
参数:
-t 指定表名称
-n 不作解析
-L 列出指定表中的策略
-A 增加策略
-p 网络协议
–dport 端口
-s 数据来源
-j 动作:ACCEPT允许;REJECT拒绝;DROP丢弃
-N 增加链
-E 修改链名称
-X 删除链
-D 删除指定策略
-I 插入
-R 修改策略
-P 修改默认策略
实践:
iptables -t filter -A INPUT -i lo -j ACCEPT将lo回环接口加入INPUT链,-t 是可以省略的,默认就是filter
iptables -nL查看
iptables -A INPUT -s 192.168.233.1 -j ACCEPT #接受访问
iptables -nL查看
iptables -A INPUT -s 192.168.233.1 -j REJECT #拒绝访问
iptables -nL查看
测试:在真机里面连接ssh root@192.168.233.101,可以访问,因为防火墙从上往下读,匹配之后就不再读。
iptables -D INPUT 3 #删除第三条
iptables -nL查看
iptables -R INPUT 2 -s 192.168.233.1 -j REJECT #修改策略
iptables -nL查看
测试结果:此时CRT已经无法连接虚拟机。
iptables -I INPUT 2 -s 192.168.233.1 -p tcp --dport 22 -j ACCEPT #插入策略
iptables -nL
访问httpd:
测试:Windows可以访问虚拟机(因为单独ssh服务被允许),但是访问apache不行(其它的都是拒绝的)
其实读取到第二条的指定策略的允许时,就不再往下读。
iptables -I INPUT 1 -i ens33 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -nL
添加80端口后,httpd就可以访问了
访问httpd:
修改默认策略:
iptables -P INPUT DROP修改默认策略
iptables -nL
iptables -F #清除所有策略
iptables -nL
版权声明:本文标题:Windows无法访问虚拟机的Apache(httpd)服务,但是可以ping通 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728380213a1156410.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论