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

本文标签: 虚拟机无法访问Windowspinghttpd