1.firewall介紹
CentOS 7中防火墻是一個非常的強大的功能,在CentOS 6.5中在iptables防火墻中進(jìn)行了升級了失乾。
什么是區(qū)域Zone:
網(wǎng)絡(luò)區(qū)域定義了網(wǎng)絡(luò)連接的可信等級谐区。這是一個 一對多的關(guān)系,這意味著一次連接可以僅僅是一個區(qū)域的一部分殖卑,而一個區(qū)域可以用于很多連接袍暴。
哪個區(qū)域可用?
由firewalld 提供的區(qū)域按照從不信任到信任的順序排序煎谍。
區(qū)域的分類?
drop;block;public;external;dmz;work;home;internal;trusted
2.firewall配置
firewalld 的操作只有重啟之后才有效:service firewalld restart 重啟
系統(tǒng)配置目錄
/usr/lib/firewalld/services
目錄中存放定義好的網(wǎng)絡(luò)服務(wù)和端口參數(shù)攘蔽,系統(tǒng)參數(shù),不能修改呐粘。
用戶配置目錄
/etc/firewalld/
3.自定義添加端口
用戶可以通過修改配置文件的方式添加端口满俗,也可以通過命令的方式添加端口,修改的內(nèi)容會在/etc/firewalld/目錄下的配置文件中還體現(xiàn)
命令的方式添加端口
firewall-cmd--permanent --add-port=9527/tcp?
1作岖、firewall-cmd:是Linux提供的操作firewall的一個工具漫雷;
2、--permanent:表示設(shè)置為持久鳍咱;
3降盹、--add-port:標(biāo)識添加的端口;
firewall中有Zone的概念谤辜,可以將具體的端口制定到具體的zone配置文件中蓄坏。
例如:添加8010端口
firewall-cmd? ?--zone=public? --permanent? ?--add-port=8010/tcp
--zone=public:指定的zone為public;
修改配置文件的方式添加端口
<?xml version="1.0" encoding="utf-8"?>
<zone>
? <short>Public</short>
? <description>For use in public areas.</description>
? <rule family="ipv4">
? ? <source address="122.10.70.234"/>
? ? <port protocol="udp" port="514"/>
? ? <accept/>
? </rule>
? <rule family="ipv4">
? ? <source address="123.60.255.14"/>
? ? <port protocol="tcp" port="10050-10051"/>
? ? <accept/>
? </rule>
<rule family="ipv4">
? ? <source address="192.249.87.114"/> 放通指定ip丑念,指定端口涡戳、協(xié)議
? ? <port protocol="tcp" port="80"/>
? ? <accept/>
? </rule>
<rule family="ipv4"> 放通任意ip訪問服務(wù)器的9527端口
? ? <port protocol="tcp" port="9527"/>
? ? <accept/>
? </rule>
</zone>
1、添加需要的規(guī)則脯倚,開放通源ip為122.10.70.234渔彰,端口514,協(xié)議tcp推正;
2恍涂、開放通源ip為123.60.255.14,端口10050-10051植榕,協(xié)議tcp再沧;/3、開放通源ip為任意尊残,端口9527炒瘸,協(xié)議tcp淤堵;
修改完后
systemctl restart firewalld.service? ?#重啟
firewall-cmd --reload;? ? #命令重載
4.firewall常用命令
重啟顷扩、關(guān)閉拐邪、開啟firewalld.service服務(wù)
servicefirewalld restart 重啟
servicefirewalld start 開啟
servicefirewalld stop 關(guān)閉
查看firewall服務(wù)狀態(tài)
systemctl status firewall
查看firewall的狀態(tài)
firewall-cmd--state
查看防火墻規(guī)則
firewall-cmd? --list-all
命令
#進(jìn)程與狀態(tài)相關(guān)
systemctl start firewalld.service? ? ? ? ? ? #啟動防火墻?
systemctl stop firewalld.service? ? ? ? ? ? #停止防火墻?
systemctl status firewalld? ? ? ? ? ? ? ? ? #查看防火墻狀態(tài)
systemctl enable firewalld? ? ? ? ? ? #設(shè)置防火墻隨系統(tǒng)啟動
systemctl disable firewalld? ? ? ? ? ? ? ? #禁止防火墻隨系統(tǒng)啟動
firewall-cmd --state? ? ? ? ? ? ? ? ? ? ? ? #查看防火墻狀態(tài)?
firewall-cmd --reload? ? ? ? ? ? ? ? ? ? ? ? #更新防火墻規(guī)則?
firewall-cmd --list-ports? ? ? ? ? ? ? ? ? ? #查看所有打開的端口?
firewall-cmd --list-services? ? ? ? ? ? ? ? #查看所有允許的服務(wù)?
firewall-cmd --get-services? ? ? ? ? ? ? ? ? #獲取所有支持的服務(wù)?
#區(qū)域相關(guān)
firewall-cmd --list-all-zones? ? ? ? ? ? ? ? ? ? #查看所有區(qū)域信息?
firewall-cmd --get-active-zones? ? ? ? ? ? ? ? ? #查看活動區(qū)域信息?
firewall-cmd --set-default-zone=public? ? ? ? ? #設(shè)置public為默認(rèn)區(qū)域?
firewall-cmd --get-default-zone? ? ? ? ? ? ? ? ? #查看默認(rèn)區(qū)域信息?
#接口相關(guān)
firewall-cmd --zone=public --add-interface=eth0? #將接口eth0加入?yún)^(qū)域public
firewall-cmd --zone=public --remove-interface=eth0? ? ? #從區(qū)域public中刪除接口eth0?
firewall-cmd --zone=default --change-interface=eth0? ? ? #修改接口eth0所屬區(qū)域為default?
firewall-cmd --get-zone-of-interface=eth0? ? ? ? ? ? ? ? #查看接口eth0所屬區(qū)域?
#端口控制
firewall-cmd --query-port=8080/tcp? ? ? ? ? ? # 查詢端口是否開放
firewall-cmd --add-port=8080/tcp --permanent? ? ? ? ? ? ? #永久添加8080端口例外(全局)
firewall-cmd --remove-port=8800/tcp --permanent? ? ? ? ? ? #永久刪除8080端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent? ? ? #永久增加65001-65010例外(全局)?
firewall-cmd? --zone=public --add-port=8080/tcp --permanent? ? ? ? ? ? #永久添加8080端口例外(區(qū)域public)
firewall-cmd? --zone=public --remove-port=8080/tcp --permanent? ? ? ? #永久刪除8080端口例外(區(qū)域public)
firewall-cmd? --zone=public --add-port=65001-65010/tcp --permanent? #永久增加65001-65010例外(區(qū)域public)
5.CentOS切換為iptables防火墻
切換到iptables首先應(yīng)該關(guān)掉默認(rèn)的firewalld,然后安裝iptables服務(wù)
關(guān)閉firewall
service firewalld stop? ??
systemctl disable firewalld.service#禁止firewall開機啟動
停止并屏蔽firewalld服務(wù)
systemctl stop firewalld
systemctl mask firewalld? 鎖定服務(wù)
安裝iptables防火墻
yum? install? ?iptables-services#安裝
啟用iptables服務(wù)
systemctl enable iptables
啟動iptables服務(wù)
systemctl start iptables
編輯iptables防火墻配置
vim? ? /etc/sysconfig/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 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT? ?新加的內(nèi)容
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存防火墻規(guī)則
service iptables save
或
/usr/libexec/iptables/iptables.init save
停止隘截、啟動扎阶,重啟防火墻
systemctl [stop|start|restart] iptables
service iptables start #開啟
systemctl enable iptables.service #設(shè)置防火墻開機啟動
重啟一下防火墻?
?systemctl restart iptables?
?或者?
?service iptables restart
查看防火墻端口情況
iptables -L -n
6.其他
查看對外開放的端口狀態(tài)
netstat -anp
查詢指定端口是否已開?
firewall-cmd --query-port=8080/tcp
移除指定端口:
firewall-cmd? --permanent? --remove-port=123/tcp
7.端口配置實戰(zhàn)
#放行8080端口
firewall-cmd? --zone=public? --add-port=8080/tcp? --permanent
#重啟防火墻
firewall-cmd? --reload