一、firewalld
所謂防火牆指的是一個由軟件和硬件設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說法,它是一種計算機硬件和軟件的結合,使Internet與Intranet之間建立起一個安全網關(Security
Gateway),從而保護內部網免受非法用戶的侵入,防火牆主要由服務訪問規則、驗證工具、包過濾和應用網關4個部分組成,防火牆就是一個位於計算機和它所連接的網絡之間的軟件或硬件。該計算機流入流出的所有網絡通信和數據包均要經過此防火牆。
在網絡中,所謂“防火牆”,是指一種將內部網和公衆訪問網(如Internet)分開的方法,它實際上是一種隔離技術。防火牆是在兩個網絡通訊時執行的一種訪問控制尺度,它能允許你“同意”的人和數據進入你的網絡,同時將你“不同意”的人和數據拒之門外,最大限度地阻止網絡中的黑客來訪問你的網絡。換句話說,如果不通過防火牆,公司內部的人就無法訪問Internet,Internet上的人也無法和公司內部的人進行通信。
實驗環境準備
三臺主機
server 172.25.254.127
client 1272.25.254.27 172.25.254.27
1 對iptables停止使用操作
-->systemctl stop iptables.service ##停止火牆iptables
-->systemctl disable iptables.service ##設置開機不啓動
-->systemctl mask iptables.service ##凍結
2 firewall開始使用
-->systemctl unmask firewalld.service ##取消凍結
-->systemctl start firewalld.service ##開啓firewalld
-->systemctl enable firewalld.service ##設置開機啓動
對iptables停止使用操作
firewall開始使用
1相關命令
1 firewall-cmd --get-zones ##查看firewalld有哪些域
-->systemctl start vsftpd
2 firewall-cmd --get-default-zone ##查看默認的域
3 firewall-cmd --set-default-zone=trusted ##設置默認域爲trusted
-->firewall-cmd --get-default-zone ##查看修改後的默認域
查看默認域,更改默認域爲trusted
2修改端口
4 vim /etc/vsftpd/vsftpd.conf ##編輯配置文件,修改ftp的端口
-->systemctl restart vsftpd.service ##重啓ftp服務
-->systemctl start httpd ##開啓apache
5 firewall-cmd --set-default-zone=block ##設置默認域爲block
-->firewall-cmd --get-default-zone ##查看默認域
開啓httpd,將默認域設置爲block,使任何服務無法通過火牆
開啓前,apche可以用
ftp也可以用
設置之後http不可用
ftp也不可用
3相關策略的修改
1 firewall-cmd --add-service=http
##臨時更改,在firewall策略裏增加http服務
firewall-cmd --list-all ##列出當前所有的策略
firewall-cmd --reload ##重新加載
2 cd /usr/lib/firewalld/services/ ##查看服務文件的相關配置
vim http.xml
vim ftp.xml
vim /etc/firewalld/zones/public.xml
臨時增加http服務,重新加載之後,該服務失效
永久更改,當前不生效,重新加載之後生效
也可以通過修改配置文件改變火牆策略
在firewalld服務的目錄下有以下文件
http.xml的80端口
ftp.xml的21端口
公共網絡的總配置文件,可以往裏面增加服務,如圖
4端口控制
3 lsmod | grep nf ##過濾當前的開啓的端口
-->modprobe -r nf_conntrack_ftp ##刷新ftp的端口
4 firewall-cmd --permanent --add-port=8080/tcp
##永久增加8080端口tcp服務
firewall-cmd --permanent --remove-port=8080/tcp
##永久移除8080端口tcp服務
編輯http的配置文件
將默認端口改爲6666
過濾當前nf,刪除ipv4
重新加載,刪除之後的ipv4又出現了,該命令臨時生效
將http改爲8080端口
並將該端口寫入火牆策略
訪問測試成功
刪除8080端口並重新加載
無法訪問
5ip控制
5 firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.27 -p tcp --dport 22 -j ACCEPT ##除了27主機,其他主機訪問22端口都接受
-->firewall-cmd --reload ##重新加載
6 firewall-cmd --direct --get-all-rules ##查看當前策略的所有規則
7 firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j REJECT ##254網段的訪問22端口都拒絕
使254ip段的都可以訪問
測試連接成功
移除ssh服務
測試連接不了
拒絕254ip段的訪問8080端口
測試成功
6地址僞裝
6.1數據來源僞裝
1 firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.27 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.27.227"
##27主機連接127主機,地址僞裝成27.227的主機,進來127的數據來源都僞裝成227
將策略寫入火牆服務
測試成功
227主機連接27主機,27主機顯示是127主機登陸的
6.2目的地僞裝
2 firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.127 masquerade"
##27ip段的數據來源進來經過雙網卡主機127,出去都僞裝成127的ip
將策略寫入火牆服務
27主機連接127主機,連接成功顯示的是227主機的ip