CentOs7 使用iptables防火牆開啓關閉端口

CentOs7 使用iptables防火牆開啓關閉端口

 

# 0x01介紹

iptables命令是Linux上經常使用的防火牆軟件,是netfilter項目的一部分
iptables文件設置路徑:命令:vim /etc/sysconfig/iptables-configvim

0x02注意事項

若是說你之前使用的是contos7 那麼默認使用的防火牆那麼就是Firewall 這樣的話,就要先把Firewall 給關閉在使用iptablesbash

關閉Firewall 命令
命令:systemctl stop firewalld #關閉防火牆
命令:systemctl disable firewalld #禁止開機啓動服務器

0x03檢查是否安裝了iptables

命令:service iptables statusssh

0x04安裝iptables

命令:yum install -y iptablestcp

0x05升級iptables

命令:yum update iptablesspa

0x06安裝iptables-services

命令:yum install iptables-servicesrest

0x07開啓防火牆

命令:systemctl start iptables.service #啓動防火牆
命令:systemctl enable iptables.service #設置開機自啓動code

0x08關閉防火牆

命令:systemctl stop iptables.service #關閉防火牆
命令:systemctl disable iptables.service #禁止開機啓動接口

0x09查看iptables狀態

命令:systemctl status iptables.serviceip

0x10查看iptables現有規則

命令:iptables -L -n

0x11重點:清除默認的防火牆規則

11.1 安裝完成基本配置-容許全部請求防止悲劇
首先在清除前要將policy INPUT改爲ACCEPT,表示接受一切請求。
這個必定要先作,否則清空後可能會直接悲劇
設置 INPUT 方向全部的請求都容許
命令:iptables -P INPUT ACCEPT

11.2 安裝完成基本配置-清空全部默認規則
命令:iptables -F

11.3 安裝完成基本配置-清空全部自定義規則
命令:iptables -X

11.4 安裝完成基本配置-全部計數器歸0
命令:iptables -Z

0x12重點:配置規則

12.1容許來自於lo接口的數據包
若是沒有此規則,你將不能經過127.0.0.1訪問本地服務,例如ping 127.0.0.1
命令:iptables -A INPUT -i lo -j ACCEPT

12.2開啓某個端口
iptables -A INPUT -p tcp --dport 端口 -j ACCEPT

12.2.1例子:開啓80,22端口
命令:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
命令:iptables -A INPUT -p tcp --dport 22 -j ACCEPT

12.3容許icmp包經過,也就是容許ping
命令:iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

12.4容許全部對外請求的返回包
本機對外請求至關於OUTPUT,對於返回數據包必需要接收啊,這至關於INPUT了
命令:iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

12.5若是要添加內網ip信任(接受其全部TCP請求)
iptables -A INPUT -p tcp -s 192.168.1.50(改成容許的內網IP便可) -j ACCEPT

12.6過濾除iptables規則以外的全部請求
命令:iptables -P INPUT DROP

0x13 重點:保存規則

注意:設置完成之後先執行命令iptables -L -n看一下配置是否正確。
沒問題後,先不要急着保存,由於沒保存只是當前有效,重啓後就不生效,這樣萬一有什麼問題,能夠後臺強制重啓服務器恢復設置。
另外開一個ssh鏈接,確保能夠登錄。
確保沒問題以後在進行保存
保存命令:service iptables save

0x14 重啓防火牆

systemctl restart iptables.service

0x15 雜項

15.1要封停一個IP,使用下面這條命令
命令:iptables -I INPUT -s ... -j DROP

15.2 要解封一個IP,使用下面這條命令
命令:iptables -D INPUT -s ... -j DROP

0x16 刪除某個已有規則

要刪除規則那麼咱們就須要先將全部iptables規則以序號標記顯示,執行:
命令:iptables -L -n --line-numbers

好比要刪除INPUT裏序號爲8的規則,執行:
命令:iptables -D INPUT 8

0x17 例子:完整的設置腳本

#!/bin/sh #查看iptables現有規則 iptables -L -n #先容許全部,否則有可能會杯具 iptables -P INPUT ACCEPT #清空全部默認規則 iptables -F #清空全部自定義規則 iptables -X #全部計數器歸0 iptables -Z #容許來自於lo接口的數據包(本地訪問) iptables -A INPUT -i lo -j ACCEPT #開放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開放21端口(FTP) iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開放80端口(HTTP) iptables -A INPUT -p tcp --dport 80 -j ACCEPT #開放443端口(HTTPS) iptables -A INPUT -p tcp --dport 443 -j ACCEPT #容許ping iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容許接受本機請求以後的返回數據 RELATED,是爲FTP設置的 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #其餘入站一概丟棄 iptables -P INPUT DROP #全部出站一概綠燈 iptables -P OUTPUT ACCEPT #全部轉發一概丟棄 iptables -P FORWARD DROP #保存 service iptables save #重啓動 serv systemctl restart iptables.service 

(。・`ω´・) 哇哦

相關文章
相關標籤/搜索