一、iptables
1.打開/關閉/重啟防火墻
chkconfig iptables on ? ? #開啟防火墻(重啟后永久生效)
chkconfig iptables off ? ? #關閉防火墻(重啟后永久生效)
service iptables start? ? #開啟防火墻(即時生效,重啟后失效)
service iptables stop? ? #關閉防火墻(即時生效,重啟后失效)
service iptables restartd? #重啟防火墻
2.查看打開的端口
/etc/init.d/iptables status
3.打開某個端口(以8080為例)
(1)開啟端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT #允許8080端口被訪問
iptables-A OUTPUT-p tcp --dport 8080 -j ACCEPT #允許通過8080端口訪問
(2)保存并重啟防火墻
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
4.打開49152~65534之間的端口
iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
同樣,這里需要對設置進行保存,并重啟防火墻。
5.其他打開方式
我們還可以通過修改/etc/sysconfig/iptables文件的方式開啟端口,如下
vi /etc/sysconfig/iptables
然后在文件中增加一行
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
參數說明:
–A 參數就看成是添加一條規則
–p 指定是什么協議,我們常用的tcp 協議,當然也有udp,例如53端口的DNS
–dport 就是目標端口,當數據從外部進入服務器為目標端口
–sport 數據從服務器出去,則為數據源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收
二、firewalld
Centos7默認安裝了firewalld,如果沒有安裝的話,可以使用 yum install firewalld firewalld-config進行安裝。
1.啟動防火墻
systemctl start firewalld
2.禁用防火墻
systemctl stop firewalld
3.設置開機啟動
systemctl enable firewalld
4.停止并禁用開機啟動
sytemctl disable firewalld
5.重啟防火墻
firewall-cmd --reload
6.查看狀態
systemctl status firewalld
或者?
firewall-cmd --state
7.查看版本
firewall-cmd --version
8.查看幫助
firewall-cmd --help
9.查看區域信息
firewall-cmd --get-active-zones
10.查看指定接口所屬區域信息
firewall-cmd --get-zone-of-interface=eth0
11.拒絕所有包
firewall-cmd --panic-on
12.取消拒絕狀態
firewall-cmd --panic-off
13.查看是否拒絕
firewall-cmd --query-panic
14.將接口添加到區域(默認接口都在public)
firewall-cmd --zone=public --add-interface=eth0
注:永久生效再加上 --permanent 然后reload防火墻
15.設置默認接口區域
firewall-cmd --set-default-zone=public #立即生效,無需重啟
16.更新防火墻規則
firewall-cmd --reload
或
firewall-cmd --complete-reload
注:兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啟服務
17.查看指定區域所有打開的端口
firewall-cmd --zone=public --list-ports
18.在指定區域打開端口(記得重啟防火墻)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
說明:
–zone 作用域
–add-port=8080/tcp 添加端口,格式為:端口/通訊協議
–permanent #永久生效,沒有此參數重啟后失效