经常使用CentOS的朋友,可能会遇到和我一样的问题。开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下。

经常使用CentOS的朋友,可能会遇到和我一样的问题。最近在Linux CentOS防火墙下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙。偶然看到CentOS防火墙的配置操作说明,感觉不错。执 行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现CentOS防火墙配置界面, 将”安全级别”设为”禁用”,然后选择”确定”即可. 

这样重启计算机后,CentOS防火墙默认已经开放了80和22端口 

简介:CentOS是Linux家族的一个分支。 

CentOS防火墙在虚拟机的CENTOS装好APACHE不能用,郁闷,解决方法如下

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

然后保存: 

/etc/rc.d/init.d/iptables save

centos 5.3,5.4以上的版本需要用 
service iptables save 
来实现保存到配置文件。 
这样重启计算机后,CentOS防火墙默认已经开放了80和22端口。 
命令行的话是,/etc/rc.d/init.d/iptables save保存

vi修改的话,执行service iptables restart

重启防火墙即可保存。

修改很多次都提示错误,于是复杂一份过来直接保存。例子如下:

# Generated by iptables-save v1.4.7 on Tue Sep 11 13:29:11 2012  
*filter  
:INPUT ACCEPT [310:96058]  
:FORWARD ACCEPT [0:0]  
:OUTPUT ACCEPT [131:96829]  
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT   
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1010 -m state --state NEW,ESTABLISHED -j ACCEPT  
-A INPUT -i eth0 -p udp -m udp --sport 123 -m state --state ESTABLISHED -j ACCEPT   
-A INPUT -i eth0 -p tcp -m tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT   
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT  
  
  
-A OUTPUT -o etho -p tcp -m tcp --sport 80 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT   
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT   
-A OUTPUT -o eth0 -p tcp -m tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT   
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT   
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT  
  
  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1010 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT  
  
  
COMMIT  
# Completed on Tue Sep 11 13:29:11 2012

这里应该也可以不重启计算机: 

/etc/init.d/iptables restart 

CentOS防火墙的关闭,关闭其服务即可: 

查看CentOS防火墙信息:/etc/init.d/iptables status 

关闭CentOS防火墙服务:/etc/init.d/iptables stop 

永久关闭?不知道怎么个永久法:

chkconfig –level 35 iptables off 

上面的内容是针对老版本的centos,下面的内容是基于新版本。

iptables -P INPUT DROP 

这样就拒绝所有访问 CentOS 5.3 本系统数据,除了 Chain RH-Firewall-1-INPUT (2 references) 的规则外 , 呵呵。 

用命令配置了 iptables 一定还要 service iptables save 才能保存到配置文件。 

cat /etc/sysconfig/iptables 可以查看 防火墙 iptables 配置文件内容

# Generated by iptables-save v1.3.5 on Sat Apr 14 07:51:07 2001 
*filter 
:INPUT DROP [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [1513:149055] 
:RH-Firewall-1-INPUT - [0:0] 
-A INPUT -j RH-Firewall-1-INPUT 
-A FORWARD -j RH-Firewall-1-INPUT 
-A RH-Firewall-1-INPUT -i lo -j ACCEPT 
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 
-A RH-Firewall-1-INPUT -p esp -j ACCEPT 
-A RH-Firewall-1-INPUT -p ah -j ACCEPT 
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -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 RELATED,ESTABLISHED -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 
COMMIT 
# Completed on Sat Apr 14 07:51:07 2001

另外补充:
CentOS 防火墙配置 80端口
看了好几个页面内容都有错,下面是正确方法:

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

然后保存: 

#/etc/rc.d/init.d/iptables save

再查看是否已经有了: 

[root@vcentos ~]# /etc/init.d/iptables status 
Table: filter 
Chain INPUT (policy ACCEPT) 
num target prot opt source destination 
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80 
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 
3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 

Chain FORWARD (policy ACCEPT) 
num target prot opt source destination 
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

* 设置iptables为自动启动

chkconfig --level 2345 iptables on 

可能因为大家使用的版本不一,所有使用方法也略有不同。

iptables命令建立的规则临时保存在内存中。如果系统在永久保存这些规则之前重启,所有设置的规则都将丢失。如果要想使iptables设置的规则在下次重启系统之后仍然生效则需要永久保存这些规则,以root身份执行:

/sbin/service iptables save

该操作将执行iptables初始化脚本,该脚本会运行/sbin/iptables-save程序并更新当前的iptables配置文件/etc/sysconfig/iptables。

而原来的配置文件将保存为iptables.save。

下次系统系统启动时,iptables初始化脚本将使用/sbin/iptables-restore命令重新读取/etc/sysconfig/iptables文件的内容。

因此比较好的方法是在将一条新的iptables规则提交到/etc/sysconfig/iptables文件之前先检查该规则。并且也可以将其他版本系统中的iptables配置文件应用于这里。这样就有助于分发该配置文件到多台Linux主机上。

注意:如果把/etc/sysconfig/iptables文件进行分发之后,每台系统都要执行/sbin/service iptables restart命令来使规则生效。

通过文章来看,是不是用上面的方法来解决保存iptables的防火墙规则的问题比较简单。快跟朋友分享吧!

vi /etc/sysconfig/iptables 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙) 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙) 
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面

添加好之后防火墙规则如下所示:

###################################### 
# 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 -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT 
-A INPUT -j REJECT –reject-with icmp-host-prohibited 
-A FORWARD -j REJECT –reject-with icmp-host-prohibited 
COMMIT 
#####################################
/etc/init.d/iptables restart  
#最后重启防火墙使配置生效

 

posted on 2016-10-07 01:27  小!千  阅读(13620)  评论(0编辑  收藏  举报