今天在虚拟机里安装了linux,安装的时候提示是成功地,但是访问的时候失败了。
这个文件想了一晚上,没有结果。 第二天得时候,在公司突然想到是不是iptables防火墙阻止了,我昨天记得配置80端口。于是在公司的时候,查了一下/etc/sysconfig/iptables 这个文件里面的配置和参数 我用vi /etc/sysconfig/iptables 命令打开iptables的文件 下面是默认的项 # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT -A INPUT -j REJECT –reject-with icmp-host-prohibited -A FORWARD -j REJECT –reject-with icmp-host-prohibited COMMIT
然后我在最后加上了 -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 还是没有办法访问nginx 然后我把iptables关闭 service iptables stop 看一下是否可以正常访问 竟然成功了 那就知道问题出在iptables里 在检查一下80端口的设置,可能是位置的问题,于是把80端口设置的代码放在22端口的下面,service iptables restart,
重新一下iptable测试一下 成功了,原来是自己没有注意位置的问题,郁闷啊,搞了这么长时间
*****************创建 RH-Firewall-1-INPUT ****************
#头两行是注释说明 # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. #使用filter表 *filter #下面四条内容定义了内建的INPUT、FORWARD、ACCEPT链,还创建了一个被称为RH-Firewall-1-INPUT的新链 :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] #将所有流入的数据写入到日志文件中 -A INPUT -j LOG --log-level crit #下面这条规则将添加到INPUT链上,所有发往INPUT链上的数据包将跳转到RH-Firewall-1 //链上。 -A INPUT -j RH-Firewall-1-INPUT #下面这条规则将添加到FORWARD链上,所有发往INPUT链上的数据包将跳转到RH-Firewall-1 //链上。 -A FORWARD -j RH-Firewall-1-INPUT #下面这条规则将被添加到RH-Firewall-1-input链。它可以匹配所有的数据包,其中流入接口(-i)//是一个环路接口(lo)。 #匹配这条规则的数据包将全部通过(ACCEPT),不会再使用别的规则来和它们进行比较 -A RH-Firewall-1-INPUT -i lo -j ACCEPT #下面这条规则是拒绝所以的icmp包-p 后是协议如:icmp、tcp、udp。端口是在-p后面--sport源端口,--dport目的端口。-j 指定数据包发送的 #目的地址如:ACCEPT、DROP、QUEUE等等 -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #-m state --state ESTABLISHED,RELATED这个条件表示所有处于ESTABLISHED或者 RELATED状态的包,策略都是接受的。 # -m state --state NEW 这个条件是当connection的状态为初始连接(NEW)时候的策略。 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j DROP -s 222.221.7.84 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT iptalbes 是状态检测防火墙!
****************************************************************************************
参数讲解: –A 参数就看成是添加一条规则 –p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS –dport 就是目标端口,当数据从外部进入服务器为目标端口 –sport 数据从服务器出去,则为数据源端口使用 –j 就是指定是 ACCEPT -接收 或者 DROP 不接收
禁止某个IP访问 iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP –s 参数是来源(即192.168.1.2) 后面拒绝就是DROP 删除规则 iptables -D INPUT 2 删除INPUT链编号为2的规则