Linux有防火牆和殺毒軟體嗎?怎麼安裝配置Firewall抵禦網絡攻擊

2020-12-19 石哥話科技

Windows殺毒軟體是什麼環境?

以前,市面上出現過非常多的殺毒軟體,知名度比較高的有:卡巴斯基、瑞星、金山毒霸、江民殺毒、可牛殺毒、諾頓殺毒、McAfee、Avira小紅傘、賽門鐵克Symantec.、ESET NOD32、BitDefender和Avast!等等,後來加入的有360殺毒、騰訊電腦管家、百度殺毒。

熊貓燒香病毒,2006年10月16日由25歲的湖北武漢新洲區人李俊編寫,2007年1月初肆虐網絡,它主要通過下載的文件傳染。

灰鴿子自2001年出現至今,主要經歷了模仿期、飛速發展期以及全民駭客時代三大階段。

但是自2008年7月17日,免費360殺毒首次推出起,病毒和殺毒軟體就逐漸的離我們越來越遠。現在Win10自帶的Defender殺毒軟體已經能很好的為我們服務。而且製造病毒的人無利可圖,所以也幾乎沒有製造病毒的動力了。

Linux有沒有防火牆和殺毒軟體呢?

首先明確,Linux是有防火牆和殺毒軟體的。

但是Linux的殺毒軟體幾乎沒有什麼用武之地,所以知名度普遍都不高。最主要的原因是:製作Linux病毒無利可圖,因為Linux幾乎都是做為伺服器來使用,個人用戶實在是太少了。所以一般的Linux伺服器上都不裝殺毒軟體。

防火牆就不一樣了,那幾乎是公網上Linux伺服器必備的軟體。另外各機房幾乎都有硬體防火牆,用來進行入侵檢測,攻擊防護等。

Firewalld、iptables和ebtables等都是常用的防火牆管理工具,CentOS Linux 8默認這三個都安裝了。為什麼叫防火牆管理工具,因為這三個都是設定防火牆規則的,允許哪些可以被別人訪問,不允許哪些被別人訪問。具體的執行這些防火牆規則的是Linux系統內核的netfilter子系統,netfilter子系統是真正的防火牆底層工具。

現在比較常用的是firewalld、iptables,CentOS Linux 8默認的防火牆管理工具是firewalld,不過它底層調用的命令仍然是iptables。

Linux防火牆能防住什麼樣的攻擊?

關於這個問題網上有很多詳細的介紹,咱們用直白的話來說明一下:

1、能防住什麼:我們不讓防火牆外面的人訪問的埠,它就一定訪問不了。

比如:防火牆只開放80埠,對於外面的人來說,其它埠他就一點都看不到。

2、不能防住什麼:內部伺服器中病毒了,防火牆就沒有辦法了。對外提供服務的軟體有漏洞,被黑客利用,防火牆也沒有太好的辦法解決。

怎麼安裝/配置防火牆Firewall?

測試平臺介紹

我們安裝的CentOS的版本是CentOS Linux release 8.0.1905。具體的是在Windows 10下面先安裝VMware虛擬機,虛擬機的版本是VMware Workstation Pro 15.5.1,由於這個版本沒有「CentOS 8」的選項,所以在安裝的時候,我們選擇的是「Red Hat Enterprise Linux 8 64位」,具體可參考我的其他相關文章。

所有以下的操作都是在CentOS Linux 8.0.1905上進行的。

安裝防火牆Firewall

CentOS Linux 8.0.1905默認是安裝了firewalld防火牆的,如果你的沒有安裝上,可以通過以下指令安裝。

yum install firewalld firewall-config #安裝防火牆

systemctl enable firewalld.service #設置為開機啟動

systemctl disenable firewalld.service #設置為開機不啟動

service firewalld stop #停止防火牆服務

service firewalld start #開啟防火牆服務

service firewalld restart #重啟防火牆服務

service firewalld status 或者 firewall-cmd --state 查看狀態

使用防火牆Firewall

編輯防火牆使用腳本

vi /root/firewall-list.sh

腳本示例內容如下(具體內容可查閱下方的命令解釋):

#!/bin/bash

firewall-cmd --reload #重新載入規則

firewall-cmd --add-port=53/udp #開放53號udp埠

firewall-cmd --add-port=80/tcp #開放22號tcp埠

firewall-cmd --add-port=30000-50000/tcp #開放30000-50000號tcp埠

給腳本加上可執行權限

chmod +x /root/firewall-list.sh

運行腳本:

/root/firewall-list.sh

防火牆firewall-cmd命令解釋(作為手冊使用)

這部分內容轉載自:

firewall-cmd

Linux上新用的防火牆軟體,跟iptables差不多的工具

補充說明

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好處有兩個:支持動態更新,不用重啟服務;第二個就是加入了防火牆的「zone」概念。

firewalld跟iptables比起來至少有兩大好處:

firewalld可以動態修改單條規則,而不需要像iptables那樣,在修改了規則後必須得全部刷新才可以生效。

firewalld在使用上要比iptables人性化很多,即使不明白「五張表五條鏈」而且對TCP/IP協議也不理解也可以實現大部分功能。

firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是內核的netfilter,只不過firewalld和iptables的結 構以及使用方法不一樣罷了。

命令格式

firewall-cmd [選項 ... ]

選項

通用選項

-h, --help # 顯示幫助信息;

-V, --version # 顯示版本信息. (這個選項不能與其他選項組合);

-q, --quiet # 不列印狀態消息;

狀態選項

--state # 顯示firewalld的狀態;

--reload # 不中斷服務的重新加載;

--complete-reload # 中斷所有連接的重新加載;

--runtime-to-permanent # 將當前防火牆的規則永久保存;

--check-config # 檢查配置正確性;

日誌選項

–get-log-denied # 獲取記錄被拒絕的日誌;

–set-log-denied= # 設置記錄被拒絕的日誌,只能為 『all』,『unicast』,『broadcast』,『multicast』,『off』 其中的一個;

實例

安裝及管理服務

# 安裝firewalld

yum install firewalld firewall-config

systemctl start firewalld # 啟動,與service firewalld start功能相同,service命令指向這個命令,下同

systemctl stop firewalld # 停止

systemctl enable firewalld # 啟用自動啟動

systemctl disable firewalld # 禁用自動啟動

systemctl status firewalld # 或者 firewall-cmd --state 查看狀態

# 關閉服務的方法

# 你也可以關閉目前還不熟悉的FirewallD防火牆,而使用iptables,命令如下:

systemctl stop firewalld

systemctl disable firewalld

yum install iptables-services

systemctl start iptables

systemctl enable iptables

配置firewalld

firewall-cmd --version # 查看版本

firewall-cmd --help # 查看幫助

# 查看設置:

firewall-cmd --state # 顯示狀態

firewall-cmd --get-active-zones # 查看區域信息

firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所屬區域

firewall-cmd --panic-on # 拒絕所有包

firewall-cmd --panic-off # 取消拒絕狀態

firewall-cmd --query-panic # 查看是否拒絕

firewall-cmd --reload # 更新防火牆規則

firewall-cmd --complete-reload

# 兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啟服務

# 將接口添加到區域,默認接口都在public

firewall-cmd --zone=public --add-interface=eth0

# 永久生效再加上 --permanent 然後reload防火牆

# 設置默認接口區域,立即生效無需重啟

firewall-cmd --set-default-zone=public

# 查看所有打開的埠:

firewall-cmd --zone=dmz --list-ports

# 加入一個埠到區域:

firewall-cmd --zone=dmz --add-port=8080/tcp

# 若要永久生效方法同上

# 打開一個服務,類似於將埠可視化,服務需要在配置文件中添加,/etc/firewalld 目錄下有services文件夾,這個不詳細說了,詳情參考文檔

firewall-cmd --zone=work --add-service=smtp

# 移除服務

firewall-cmd --zone=work --remove-service=smtp

# 顯示支持的區域列表

firewall-cmd --get-zones

# 設置為家庭區域

firewall-cmd --set-default-zone=home

# 查看當前區域

firewall-cmd --get-active-zones

# 設置當前區域的接口

firewall-cmd --get-zone-of-interface=enp03s

# 顯示所有公共區域(public)

firewall-cmd --zone=public --list-all

# 臨時修改網絡接口(enp0s3)為內部區域(internal)

firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改網絡接口enp03s為內部區域(internal)

firewall-cmd --permanent --zone=internal --change-interface=enp03s

服務管理

# 顯示服務列表

Amanda, FTP, Samba和TFTP等最重要的服務已經被FirewallD提供相應的服務,可以使用如下命令查看:

firewall-cmd --get-services

# 允許SSH服務通過

firewall-cmd --new-service=ssh

# 禁止SSH服務通過

firewall-cmd --delete-service=ssh

# 打開TCP的8080埠

firewall-cmd --enable ports=8080/tcp

# 臨時允許Samba服務通過600秒

firewall-cmd --enable service=samba --timeout=600

# 顯示當前服務

firewall-cmd --list-services

# 添加HTTP服務到內部區域(internal)

firewall-cmd --permanent --zone=internal --add-service=http

firewall-cmd --reload # 在不改變狀態的條件下重新加載防火牆

埠管理

# 打開443/TCP埠

firewall-cmd --add-port=443/tcp

# 永久打開3690/TCP埠

firewall-cmd --permanent --add-port=3690/tcp

# 永久打開埠好像需要reload一下,臨時打開好像不用,如果用了reload臨時打開的埠就失效了

# 其它服務也可能是這樣的,這個沒有測試

firewall-cmd --reload

# 查看防火牆,添加的埠也可以看到

firewall-cmd --list-all

直接模式

# FirewallD包括一種直接模式,使用它可以完成一些工作,例如打開TCP協議的9999埠

firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT

firewall-cmd --reload

自定義服務管理

選項

(末尾帶有 [P only] 的話表示該選項除了與(--permanent)之外,不能與其他選項一同使用!)

--new-service=<服務名> 新建一個自定義服務 [P only]

--new-service-from-file=<文件名> [--name=<服務名>]

從文件中讀取配置用以新建一個自定義服務 [P only]

--delete-service=<服務名>

刪除一個已存在的服務 [P only]

--load-service-defaults=<服務名>

Load icmptype default settings [P only]

--info-service=<服務名>

顯示該服務的相關信息

--path-service=<服務名>

顯示該服務的文件的相關路徑 [P only]

--service=<服務名> --set-description=<描述>

給該服務設置描述信息 [P only]

--service=<服務名> --get-description

顯示該服務的描述信息 [P only]

--service=<服務名> --set-short=<描述>

給該服務設置一個簡短的描述 [P only]

--service=<服務名> --get-short

顯示該服務的簡短描述 [P only]

--service=<服務名> --add-port=<埠號>[-<埠號>]/<protocol>

給該服務添加一個新的埠(埠段) [P only]

--service=<服務名> --remove-port=<埠號>[-<埠號>]/<protocol>

從該服務上移除一個埠(埠段) [P only]

--service=<服務名> --query-port=<埠號>[-<埠號>]/<protocol>

查詢該服務是否添加了某個埠(埠段) [P only]

--service=<服務名> --get-ports

顯示該服務添加的所有埠 [P only]

--service=<服務名> --add-protocol=<protocol>

為該服務添加一個協議 [P only]

--service=<服務名> --remove-protocol=<protocol>

從該服務上移除一個協議 [P only]

--service=<服務名> --query-protocol=<protocol>

查詢該服務是否添加了某個協議 [P only]

--service=<服務名> --get-protocols

顯示該服務添加的所有協議 [P only]

--service=<服務名> --add-source-port=<埠號>[-<埠號>]/<protocol>

添加新的源埠(埠段)到該服務 [P only]

--service=<服務名> --remove-source-port=<埠號>[-<埠號>]/<protocol>

從該服務中刪除源埠(埠段) [P only]

--service=<服務名> --query-source-port=<埠號>[-<埠號>]/<protocol>

查詢該服務是否添加了某個源埠(埠段) [P only]

--service=<服務名> --get-source-ports

顯示該服務所有源埠 [P only]

--service=<服務名> --add-module=<module>

為該服務添加一個模塊 [P only]

--service=<服務名> --remove-module=<module>

為該服務移除一個模塊 [P only]

--service=<服務名> --query-module=<module>

查詢該服務是否添加了某個模塊 [P only]

--service=<服務名> --get-modules

顯示該服務添加的所有模塊 [P only]

--service=<服務名> --set-destination=<ipv>:<address>[/<mask>]

Set destination for ipv to address in service [P only]

--service=<服務名> --remove-destination=<ipv>

Disable destination for ipv i service [P only]

--service=<服務名> --query-destination=<ipv>:<address>[/<mask>]

Return whether destination ipv is set for service [P only]

--service=<服務名> --get-destinations

List destinations in service [P only]

控制埠 / 服務

可以通過兩種方式控制埠的開放,一種是指定埠號另一種是指定服務名。雖然開放 http 服務就是開放了 80 埠,但是還是不能通過埠號來關閉,也就是說通過指定服務名開放的就要通過指定服務名關閉;通過指定埠號開放的就要通過指定埠號關閉。還有一個要注意的就是指定埠的時候一定要指定是什麼協議,tcp 還是 udp。知道這個之後以後就不用每次先關防火牆了,可以讓防火牆真正的生效。

firewall-cmd --add-service=mysql #開放mysql埠

firewall-cmd --remove-service=http #阻止http埠

firewall-cmd --list-services #查看開放的服務

firewall-cmd --add-port=3306/tcp #開放通過tcp訪問3306

firewall-cmd --remove-port=3306tcp #阻止通過tcp訪問3306

firewall-cmd --add-port=233/udp #開放通過udp訪問233

firewall-cmd --list-ports #查看開放的埠

偽裝 IP

firewall-cmd --query-masquerade #檢查是否允許偽裝IP

firewall-cmd --add-masquerade #允許防火牆偽裝IP

firewall-cmd --remove-masquerade #禁止防火牆偽裝IP

埠轉發

埠轉發可以將指定地址訪問指定的埠時,將流量轉發至指定地址的指定埠。轉發的目的如果不指定 ip 的話就默認為本機,如果指定了 ip 卻沒指定埠,則默認使用來源埠。 如果配置好埠轉發之後不能用,可以檢查下面兩個問題:

比如我將 80 埠轉發至 8080 埠,首先檢查本地的 80 埠和目標的 8080 埠是否開放監聽了

其次檢查是否允許偽裝 IP,沒允許的話要開啟偽裝 IP

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 #將本機80埠的流量轉發至本機8080埠

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 #將本機80埠的流量轉發至192.168.0.1的80埠

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 #將本機80埠的流量轉發至192.168.0.1的8080埠

當我們想把某個埠隱藏起來的時候,就可以在防火牆上阻止那個埠訪問,然後再開一個不規則的埠,之後配置防火牆的埠轉發,將流量轉發過去。

埠轉發還可以做流量分發,一個防火牆拖著好多臺運行著不同服務的機器,然後用防火牆將不同埠的流量轉發至不同機器。

相關焦點

  • Linux下的安全策略和防火牆控制
    前言Linux具有較強的安全性控制,與其本身的安全策略和防火牆控制是分不開的。提起Linux的安全,就不得不說到Linux安全的重要組成部件:selinux、firewall、iptables。在centos7中firewall取代了iptables,在此之前則主要是通過iptables來控制。Linux安全策略防火牆控制1.selinuxSELinux是一種基於 域-類型 模型的強制訪問控制安全系統,它不是用來防火牆設置的,但它對Linux系統的安全很有用。
  • 「乾貨」華為防火牆USG的基本配置
    在網絡中,所謂「防火牆」,是指一種將內部網和公眾訪問網(如Internet)分開的方法,它實際上是一種隔離技術。防火牆是在兩個網絡通訊時執行的一種訪問控制尺度,它能允許你「同意」的人和數據進入你的網絡,同時將你「不同意」的人和數據拒之門外,最大限度地阻止網絡中的黑客來訪問你的網絡。換句話說,如果不通過防火牆,公司內部的人就無法訪問Internet,Internet上的人也無法和公司內部的人進行通信。
  • 防火牆的策略動作drop和reject區別
    CENTOS FIREWALLD防火牆學習筆記(八)- 防火牆的策略動作drop和reject區別在firewalld中,DROP很簡單就是直接丟棄數據,並不反饋任何回應。需要Client等待超時,Client容易發現自己被防火牆所阻擋。
  • 詳解USG6000防火牆GRE隧道、NAT配置
    組網要求:1、在FW1防火牆、AR1路由器、FW2防火牆上運行OSPF。2、在FW1和FW2上創建GRE隧道,使得PC1和PC2可以互訪。3、在FW1和FW2上配置NAT,使得PC1和PC2訪問公網時轉換為防火牆接口公網地址訪問。
  • 如何使用Firewall Builder來設置防火牆
    當您啟動fwbuilder時,你會看到如下面的截圖所示,新防火牆窗口。通過右鍵單擊防火牆樹狀視圖中某個條目,您就可以創建一個新的防火牆。如果您選擇啟用防火牆模板和創建一個iptables防火牆,您會看到顯示的一個新的對話框窗口。由於fwbuilder有一系列防火牆供您選擇,而這些防火牆模板也能基本滿足許多用戶的使用需求,因此fwbuilder的入門顯得非常簡單。
  • CentOS 7 安裝 免費的WAF防火牆-Shadow Daemon
    Shadow Daemon是用於檢測,記錄和阻止 對Web應用程式的攻擊的工具的集合。從技術上講,Shadow Daemon是一種Web應用程式防火牆,可攔截請求並過濾出惡意參數。它是一個模塊化系統,將Web應用程式,分析和界面分開,以提高安全性,靈活性和可擴展性。
  • firewall
    firewall 文章
  • 當你認清殺毒軟體的實質後,你會做出什麼抉擇?
    想必很多人會有和我朋友一樣的想法,認為電腦多下載幾個安全軟體就感覺如同家裡的大門多上了好多把大鎖,能夠更好地保護我們的信息和財產,讓我們感覺心安。然而這樣理解殺毒軟體其實是片面的。那麼關於殺毒軟體,我們需要了解些什麼知識呢?一、何謂殺毒軟體?
  • GBase 8a MPP Cluster 安裝部署——作業系統配置建議
    編寫目的本文檔面向GBase 8a產品的售後人員、用戶使用人員、以及廣大GBase 8a感興趣的技術人員,以便用於指導其更好的完成GBase8a MPP Cluster 安裝部署工作,對硬體配置、網絡環境、作業系統及軟體配置等系統實施過程中的注意事項等有更加全面和正確的理解。
  • Centos7.9安裝Mariadb資料庫
    簡單快捷,安裝mariadb-server,默認依賴安裝mariadb,一個是服務端、一個是客戶端。 [root@localhost ~]# yum install mariadb-server 二、配置MariaDB 1、安裝完成後首先要把MariaDB服務開啟,並設置為開機啟動 [root@localhost ~]#
  • linux-ssh配置和使用
    全新安裝的linux因為默認都是國外源. 首先第一步換源這樣下載軟體速度會快一點.1.由於debian系統穩定性下面列舉華為和阿里的鏡像源cd /etc/apt&&cp sources.list sources.list.bak&&vi sources.list#vimj基本操作可以直接刪除原來所有源地址直接shift+insert
  • linux 虛擬主機好嗎
    linux 虛擬主機好嗎?linux 虛擬主機是採用Linux系統搭建的虛擬主機,是企業和個人都非常喜歡使用的虛擬主機種類。運行穩定,對軟體的兼容遠超Windows系統。目前,市面上大多數病毒和惡意程序都是針對win系統開發,而Linux系統對此先天免疫。又由於代碼開源,即使linux不幸感染病毒,維護人員也容易查出運行異常之處,並加以解決。平時,linux系統也可利用自帶防火牆、入侵檢測和安全認證等工具及時修補漏洞,提高系統安全性。
  • 準能公司的下一代防火牆Stonesoft® 集成了雲安全技術
    Forcepoint公司網絡安全副總裁Antti Reijonen說:「Stonesoft產品的性能能力要由創新的技術來支撐,這是我們準能公司網絡總體安全觀的一個關鍵要素;這次新發布的產品極大地提升了Stonesoft產品的安全有效性和運行效率、擴展了對基礎設施升級的支持,同時,使防火牆易於部署,也降低了網絡安全和運維人員的管理負擔。」
  • vxworks和linux有什麼區別
    此外,有不少硬體式的網絡防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並採用了作業系統提供的防火牆及路由功能。 採用Linux的超級電腦亦愈來愈多,根據2008年11月的TOP500超級電腦列表,現時世上最快速的超級電腦使用Linux作為其作業系統。而在表列的500套系統裡,採用Linux為作業系統的,佔了439組(即87.8%)。
  • 智能防火牆技術的關鍵技術和功能應用
    而這三大問題,非智能防火牆都無能為力。   根據2003年美國聯邦調查局(FBI)和計算機犯罪調查機構(CSI)聯合發布的報告,超過50%的被調查者承認遭受拒絕訪問攻擊,80%的被調查者遭受病毒的攻擊。垃圾電子郵件更猖狂,IDC估計到2006年,全球每天發送的垃圾信息將超過200億條。   傳統的防火牆能解決上述三大問題嗎?答案是否定的。
  • NG Firewall:梭子魚構建下一代防火牆
    當梭子魚NG Firewall全球CTO Klaus M.Gheri還是大學教授時,遇到了一個這樣的問題,市面上可以為一個有650家分支機構的客戶所能提供只能是點對點的解決方案,按照當時的條件根本無法提供一種整體解決方案,而且為如此規模的公司提供整體解決方案還需要防火牆來配置。
  • Windows10中,系統自帶殺毒軟體和火絨安全哪個更好用?如何選擇
    但是,在Win10系統中,大家可別忘了還有一位「高人」所在,那就是「在權威殺軟評測機構AV-TEST的殺毒軟體排名榜中,和小紅傘等知名殺毒軟體分數持平」的Windows defender。那麼,在Windows10中,大家覺得系統自帶的Windows defender和火絨安全哪個更好用呢?如果是你,你會如何選擇?
  • 每天5分鐘|輕鬆掌握開發工作中必會的k8s-k8s安裝與部署
    上一章我們介紹了k8s的核心組件,了解了這些,我們就可以開始k8s的安裝和部署了。來吧,動手吧!setenforce 0#查看防火牆狀態firewall-cmd --state01—配置ip為47.100.36.101的