經常使用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 #最后重啟防火牆使配置生效