1. <wbr id="cnjas"><legend id="cnjas"></legend></wbr>

          Linux培訓
          達內IT學院

          400-111-8989

          如何進行包過濾、網絡地址轉換和設置內核運行時參數--RHCE 系列(二)

          • 發布:Linux培訓
          • 來源:紅帽認證考試
          • 時間:2015-12-10 14:25

          達內linux認證頻道為大家分享如何進行包過濾、網絡地址轉換和設置內核運行時參數

          正如第一部分(“設置靜態網絡路由”)提到的,在這篇文章(RHCE 系列第二部分),我們首先介紹紅帽企業版 Linux 7(RHEL)中包過濾和網絡地址轉換(NAT)的原理,然后再介紹在某些條件發生變化或者需要變動時設置運行時內核參數以改變運行時內核行為。

          RHCE 第二部分:網絡包過濾

          RHEL 7 中的網絡包過濾

          當我們討論數據包過濾的時候,我們指防火墻讀取每個試圖通過它的數據包的包頭所進行的處理。然后,根據系統管理員之前定義的規則,通過采取所要求的動作過濾數據包。

          正如你可能知道的,從 RHEL 7 開始,管理防火墻的默認服務是 firewalld。類似 iptables,它和 Linux 內核的 netfilter 模塊交互以便檢查和操作網絡數據包。但不像 iptables,Firewalld 的更新可以立即生效,而不用中斷活躍的連接 - 你甚至不需要重啟服務。

          Firewalld 的另一個優勢是它允許我們定義基于預配置服務名稱的規則(之后會詳細介紹)。

          在第一部分,我們用了下面的場景:

          靜態路由網絡示意圖

          靜態路由網絡示意圖

          然而,你應該記得,由于還沒有介紹包過濾,為了簡化例子,我們停用了2號路由器的防火墻。現在讓我們來看看如何使接收的數據包發送到目的地的特定服務或端口。

          首先,讓我們添加一條永久規則允許從 enp0s3 (192.168.0.19) 到 enp0s8 (10.0.0.18) 的入站流量:

              # firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

          上面的命令會把規則保存到 /etc/firewalld/direct.xml 中:

              # cat /etc/firewalld/direct.xml

          規則

          檢查 Firewalld 保存的規則

          然后啟用規則使其立即生效:

              # firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

          現在你可以從 RHEL 7 中通過 telnet 到 web 服務器并再次運行 tcpdump 監視兩臺機器之間的 TCP 流量,這次2號路由器已經啟用了防火墻。

              # telnet 10.0.0.20 80
              # tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

          如果你想只允許從 192.168.0.18 到 web 服務器(80 號端口)的連接而阻塞 192.168.0.0/24 網絡中的其它來源呢?

          在 web 服務器的防火墻中添加以下規則:

              # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
              # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
              # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
              # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

          現在你可以從 192.168.0.18 和 192.168.0.0/24 中的其它機器發送到 web 服務器的 HTTP 請求。第一種情況連接會成功完成,但第二種情況最終會超時。

          任何下面的命令可以驗證這個結果:

              # telnet 10.0.0.20 80
              # wget 10.0.0.20

          我強烈建議你看看 Fedora Project Wiki 中的 Firewalld Rich Language 文檔更詳細地了解關于富規則的內容。

          RHEL 7 中的網絡地址轉換(NAT)

          網絡地址轉換(NAT)是為專用網絡中的一組計算機(也可能是其中的一臺)分配一個獨立的公共 IP 地址的過程。這樣,在內部網絡中仍然可以用它們自己的私有 IP 地址來區別,但外部“看來”它們是一樣的。

          另外,網絡地址轉換使得內部網絡中的計算機發送請求到外部資源(例如因特網),然后只有源系統能接收到對應的響應成為可能。

          現在讓我們考慮下面的場景:

          網絡地址轉換

          網絡地址轉換

          在2號路由器中,我們會把 enp0s3 接口移動到外部區域(external),enp0s8 到內部區域(external),偽裝(masquerading)或者說 NAT 默認是啟用的:

              # firewall-cmd --list-all --zone=external
              # firewall-cmd --change-interface=enp0s3 --zone=external
              # firewall-cmd --change-interface=enp0s3 --zone=external --permanent
              # firewall-cmd --change-interface=enp0s8 --zone=internal
              # firewall-cmd --change-interface=enp0s8 --zone=internal --permanent

          對于我們當前的設置,內部區域(internal) - 以及和它一起啟用的任何東西都是默認區域:

              # firewall-cmd --set-default-zone=internal

          下一步,讓我們重載防火墻規則并保持狀態信息:

              # firewall-cmd --reload

          最后,在 web 服務器中添加2號路由器為默認網關:

              # ip route add default via 10.0.0.18

          現在你會發現在 web 服務器中你可以 ping 1號路由器和外部網站(例如 tecmint.com):

              # ping -c 2 192.168.0.1
              # ping -c 2 tecmint.com

          驗證網絡路由

          驗證網絡路由

          在 RHEL 7 中設置內核運行時參數

          在 Linux 中,允許你更改、啟用以及停用內核運行時參數,RHEL 也不例外。當操作條件發生變化時,/proc/sys 接口(sysctl)允許你實時設置運行時參數改變系統行為,而不需太多麻煩。

          為了實現這個目的,會用 shell 內建的 echo 寫 /proc/sys/ 中的文件,其中 一般是以下目錄中的一個:

          dev: 連接到機器中的特定設備的參數。

          fs: 文件系統配置(例如 quotas 和 inodes)。

          kernel: 內核配置。

          net: 網絡配置。

          vm: 內核的虛擬內存的使用。

          要顯示所有當前可用值的列表,運行

              # sysctl -a | less

          在第一部分中,我們通過以下命令改變了 net.ipv4.ip_forward 參數的值以允許 Linux 機器作為一個路由器。

              # echo 1 > /proc/sys/net/ipv4/ip_forward

          另一個你可能想要設置的運行時參數是 kernel.sysrq,它會啟用你鍵盤上的 Sysrq 鍵,以使系統更好的運行一些底層功能,例如如果由于某些原因凍結了后重啟系統:

              # echo 1 > /proc/sys/kernel/sysrq

          要顯示特定參數的值,可以按照下面方式使用 sysctl:

              # sysctl <parameter.name>

          例如,

              # sysctl net.ipv4.ip_forward
              # sysctl kernel.sysrq

          有些參數,例如上面提到的某個,只需要一個值,而其它一些(例如 fs.inode-state)要求多個值:

          查看內核參數

          查看內核參數

          不管什么情況下,做任何更改之前你都需要閱讀內核文檔。

          請注意系統重啟后這些設置會丟失。要使這些更改永久生效,我們需要添加內容到 /etc/sysctl.d 目錄的 .conf 文件,像下面這樣:

              # echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/10-forward.conf

          (其中數字 10 表示相對同一個目錄中其它文件的處理順序)。

          并用下面命令啟用更改:

              # sysctl -p /etc/sysctl.d/10-forward.conf

          總結

          在這篇指南中我們解釋了基本的包過濾、網絡地址變換和在運行的系統中設置內核運行時參數并使重啟后能持久化。我希望這些信息能對你有用,如往常一樣,我們期望收到你的回復!

          別猶豫,在下面的表單中和我們分享你的疑問、評論和建議吧。

          相關推薦:

          基于紅帽企業版Linux 7考試的考試目標

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:如何設置和測試靜態網絡路由--RHCE 系列(一)
          下一篇:如何使用Linux 工具集生成和發送系統活動報告--RHCE 系列(三)
          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          欧美做爰视频免费播放_做暖全过程免费的视频_性爱免费视频 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>