1. 程式人生 > >Centos的網路環境配置:防火牆firewalld,ifconfig+route/ip手動配置網路,用iptables增加網路訪問規則

Centos的網路環境配置:防火牆firewalld,ifconfig+route/ip手動配置網路,用iptables增加網路訪問規則

一、 防火牆firewalld的操作

1、firewalld的基本使用
啟動: systemctl start firewalld
這裡寫圖片描述
檢視狀態: systemctl status firewalld
這裡寫圖片描述
停止: systemctl disable firewalld
這裡寫圖片描述
禁用: systemctl stop firewalld
這裡寫圖片描述
2.systemctl是CentOS7的服務管理工具中主要的工具,它融合之前service和chkconfig的功能於一體。
啟動一個服務:systemctl start firewalld.service
關閉一個服務:systemctl stop firewalld.service
重啟一個服務:systemctl restart firewalld.service
顯示一個服務的狀態:systemctl status firewalld.service
在開機時啟用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
檢視服務是否開機啟動:systemctl is-enabled firewalld.service
檢視已啟動的服務列表:systemctl list-unit-files|grep enabled
檢視啟動失敗的服務列表:systemctl –failed

3.配置firewalld-cmd
檢視版本: firewall-cmd –version
檢視幫助: firewall-cmd –help
顯示狀態: firewall-cmd –state
檢視所有開啟的埠: firewall-cmd –zone=public –list-ports
更新防火牆規則: firewall-cmd –reload
檢視區域資訊: 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 –zone=public –add-port=80/tcp –permanent (–permanent永久生效,沒有此引數重啟後失效)
重新載入
firewall-cmd –reload
檢視
firewall-cmd –zone= public –query-port=80/tcp
刪除
firewall-cmd –zone= public –remove-port=80/tcp –permanent
這個一般都用不到,可以試一下:
這裡寫圖片描述


刪除之後忘了重新載入,就還顯示80/tcp埠開啟著。

二、ifconfig+route/ip手動配置網路

1.Linux臨時修改IP地址、閘道器、主機名、DNS,馬上生效,無需重啟(重啟後失效)。
1.修改主機名
hostnameSlyar2.IP(eth0) ifconfig eth0 192.168.1.5 netmask 255.255.255.0
3.修改預設閘道器(eth0為網絡卡名稱)
routeadddefaultgw

192.168.1.1deveth04.DNS vim /etc/resolv.conf
2.永久修改
參考VMWare安裝的CentOS7修改網絡卡名稱
參考CentOS(RedHat)命令列臨時修改IP地址、閘道器、DNS
1.檢查一下你的主機網絡卡數量及名稱,相關資訊在 /etc/sysconfig/network-scripts/ 下這裡寫圖片描述
從圖中可以看到我有2塊網絡卡,第一塊為是虛擬網絡卡,ens33;第二塊網絡卡為迴環網絡卡,一般不需要設定。
2.使用vim編輯你需要設定IP的網絡卡
這裡寫圖片描述
內容如下:
這裡寫圖片描述
修改需要修改的,這裡我沒有改動。
3.修改閘道器
vi /etc/sysconfig/network
增加一條閘道器資訊
GATEWAY=192.168.1.1
這裡寫圖片描述
4.修改DNS
vim /etc/resolv.conf
增加DNS資訊即可
nameserver 192.168.1.1
這裡寫圖片描述
5.重新載入網路配置
/etc/init.d/network restart
這裡寫圖片描述

三、用iptables增加網路訪問規則

1》.封停IP或者IP段
  在CentOS下封停IP,有封殺網段和封殺單個IP兩種形式。一般來說,現在的攻擊者不會使用一個網段的IP來攻擊(太招搖了),IP一般都是雜湊的。於是下面就詳細說明一下封殺單個IP的命令,和解封單個IP的命令。
  在CentOS下,使用ipteables來維護IP規則表。要封停或者是解封IP,其實就是在IP規則表中對入站部分的規則進行新增操作。
  要封停一個IP,使用下面這條命令:

iptables -I INPUT -s ***.***.***.*** -j DROP

  要解封一個IP,使用下面這條命令:

iptables -D INPUT -s ***.***.***.*** -j DROP

  引數-I是表示Insert(新增),-D表示Delete(刪除)。後面跟的是規則,INPUT表示入站,...表示要封停的IP,DROP表示放棄連線。
  此外,還可以使用下面的命令來檢視當前的IP規則表:

iptables --list

比如我來封停我的電腦的ip地址,(centos是在VM虛擬機器上裝的,可以和我的電腦互ping)
這裡寫圖片描述
解封一下
這裡寫圖片描述

附:其他常用的命令
編輯 iptables 檔案

>vi /etc/sysconfig/iptables

關閉/開啟/重啟防火牆

/etc/init.d/iptables stop

其中stop關閉;start 開啟;restart 重啟。
驗證一下是否規則都已經

 iptables -L

重啟iptables

/etc/rc.d/init.d/iptables save
service iptables restart

2》.封停或者開啟埠
1.比如我們先關閉所有的埠:
關閉所有的 INPUT FORWARD OUTPUT 埠。
下面是命令實現:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

再用命令 iptables -L -n 檢視 是否設定好, 好看到全部 DROP 了(想恢復就DROP換成ACCEPT再來一遍)
這樣的設定好了,我們只是臨時的, 重啟伺服器還是會恢復原來沒有設定的狀態
還要使用 service iptables save 進行儲存
看到資訊 firewall rules 防火牆的規則 其實就是儲存在 /etc/sysconfig/iptables
可以開啟檔案檢視 vi /etc/sysconfig/iptables
這裡寫圖片描述
ping一下百度試一下(web服務,用的80號埠)
這裡寫圖片描述
ssh(用的22號埠,同樣連線不上)
2.下面我只開啟22埠,看我是如何操作的,就是下面2個語句

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

發現可以用ssh登入了
發現可以用ssh登入了
針對這2條命令進行一些講解吧
-A 引數就看成是新增一條 INPUT 的規則
-p 指定是什麼協議 我們常用的tcp 協議,當然也有udp 例如53埠的DNS
到時我們要配置DNS用到53埠 大家就會發現使用udp協議的
而 –dport 就是目標埠 當資料從外部進入伺服器為目標埠
反之 資料從伺服器出去 則為資料來源埠 使用 –sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收
其他的同理,太麻煩就試一下就不一個一個截圖了,
參考部落格Linux下iptables 禁止埠和開放埠

3、如何刪除規則
首先我們要知道 這條規則的編號,每條規則都有一個編號

通過 iptables -L -n –line-number 可以顯示規則和相對應的編號
num target prot opt source destination
1 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
2 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
多了 num 這一列, 這樣我們就可以 看到剛才的規則對應的是 編號2

那麼我們就可以進行刪除了
iptables -D INPUT 2
刪除INPUT鏈編號為2的規則。

再 iptables -L -n 檢視一下 已經被清除了。
4、過濾無效的資料包
假設有人進入了伺服器,或者有病毒木馬程式,它可以通過22,80埠像伺服器外傳送資料。
它的這種方式就和我們正常訪問22,80埠區別。它發向外發的資料不是我們通過訪問網頁請求
而回應的資料包。

下面我們要禁止這些沒有通過請求迴應的資料包,統統把它們堵住掉。

iptables 提供了一個引數 是檢查狀態的,下面我們來配置下 22 和 80 埠,防止無效的資料包。

iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

可以看到和我們以前使用的:

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

多了一個狀態判斷。

同樣80埠也一樣, 現在刪掉原來的2條規則,
iptables -L -n –line-number 這個是檢視規則而且帶上編號。我們看到編號就可以
刪除對應的規則了。

iptables -D OUTPUT 1     這裡的1表示第一條規則。

當你刪除了前面的規則, 編號也會隨之改變。看到了吧。

好,我們刪除了前面2個規則,22埠還可以正常使用,說明沒問題了

下面進行儲存,別忘記了,不然的話重啟就會還原到原來的樣子。

service iptables save    #進行儲存。

Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
其實就是把剛才設定的規則寫入到 /etc/sysconfig/iptables 檔案中。
5、DNS埠53設定
下面我們來看看如何設定iptables來開啟DNS埠,DNS埠對應的是53

大家看到我現在的情況了吧,只開放22和80埠, 我現在看看能不能解析域名。

hostwww.google.com 輸入這個命令後,一直等待,說明DNS不通

出現下面提示 :
;; connection timed out; no servers could be reached

ping 一下域名也是不通

[[email protected] ~pingwww.google.com
ping: unknown hostwww.google.com

我這裡的原因就是 iptables 限制了53埠。

有些伺服器,特別是Web伺服器減慢,DNS其實也有關係的,無法傳送包到DNS伺服器導致的。

下面演示下如何使用 iptables 來設定DNS 53這個埠,如果你不知道 域名服務埠號,你

可以用命令 : grep domain /etc/services

[root@localhost ~grep domain /etc/services
domain          53/tcp                          # name-domain server
domain          53/udp
domaintime      9909/tcp                        # domaintime
domaintime      9909/udp                        # domaintime

看到了吧, 我們一般使用 udp 協議。

好了, 開始設定。。。

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

這是我們 ping 一個域名,資料就是從本機出去,所以我們先設定 OUTPUT,
我們按照ping這個流程來設定。

然後 DNS 伺服器收到我們發出去的包,就回應一個回來

iptables -A INPUT -p udp --sport 53 -j ACCEPT

同時還要設定

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

好了, 下面開始測試下, 可以用 iptables -L -n 檢視設定情況,確定沒有問題就可以測試了

[[email protected] ~iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:22
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     udp -- 0.0.0.0/0            0.0.0.0/0           udp spt:53
ACCEPT     udp -- 0.0.0.0/0            0.0.0.0/0           udp dpt:53

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp spt:22 state ESTABLISHED
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp spt:80 state ESTABLISHED
ACCEPT     udp -- 0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     udp -- 0.0.0.0/0            0.0.0.0/0           udp spt:53

可以測試一下 是否 DNS 可以通過iptables 了。

[[email protected] ~hostwww.google.com
www.google.comis an alias forwww.l.google.com.
www.l.google.comis an alias for www-china.l.google.com.
www-china.l.google.com has address 64.233.189.104
www-china.l.google.com has address 64.233.189.147
www-china.l.google.com has address 64.233.189.99

正常可以解析 google 域名。

ping 方面可能還要設定些東西。

用 nslookup 看看吧

[[email protected] ~nslookup
www.google.com
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
www.google.comcanonical name =www.l.google.com.
www.l.google.com        canonical name = www-china.l.google.com.
Name:   www-china.l.google.com
Address: 64.233.189.147
Name:   www-china.l.google.com
Address: 64.233.189.99
Name:   www-china.l.google.com
Address: 64.233.189.104

說明本機DNS正常, iptables 允許53這個埠的訪問。
6、iptables對ftp的設定
現在我開始對ftp埠的設定,按照我們以前的視訊,新增需要開放的埠
ftp連線埠有2個 21 和 20 埠,我現在新增對應的規則。

[[email protected] rootiptables -A INPUT -p tcp --dport 21 -j ACCEPT
[[email protected] rootiptables -A INPUT -p tcp --dport 20 -j ACCEPT
[[email protected] rootiptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
[[email protected] rootiptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

好,這樣就新增完了,我們用瀏覽器訪問一下ftp,出現超時。

所以我剛才說 ftp 是比較特殊的埠,它還有一些埠是 資料傳輸埠,
例如目錄列表, 上傳 ,下載 檔案都要用到這些埠。

而這些埠是 任意 埠。。。 這個 任意 真的比較特殊。

如果不指定什麼一個埠範圍, iptables 很難對任意埠開放的,
如果iptables允許任意埠訪問, 那和不設定防火牆沒什麼區別,所以不現實的。

那麼我們的解決辦法就是 指定這個資料傳輸埠的一個範圍。

下面我們修改一下ftp配置檔案。

我這裡使用vsftpd來修改演示,其他ftp我不知道哪裡修改,大家可以找找資料。

[root@localhost rootvi /etc/vsftpd.conf

在配置檔案的最下面 加入

pasv_min_port=30001
pasv_max_port=31000

然後儲存退出。

這兩句話的意思告訴vsftpd, 要傳輸資料的埠範圍就在30001到31000 這個範圍內傳送。

這樣我們使用 iptables 就好辦多了,我們就開啟 30001到31000 這些埠。

[[email protected] rootiptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT
[[email protected] rootiptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT
[root@localhost rootservice iptables save

最後進行儲存, 然後我們再用瀏覽器範圍下 ftp。可以正常訪問

用個賬號登陸上去,也沒有問題,上傳一些檔案上去看看。

看到了吧,上傳和下載都正常。。 再檢視下 iptables 的設定

[[email protected] rootiptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp dpt:22
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp dpt:21
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp dpt:20
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp dpts:30001:31000

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp spt:22
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp spt:21
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp spt:20
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0          tcp spts:30001:31000

這是我為了演示ftp特殊埠做的簡單規則,大家可以新增一些對資料包的驗證
例如 -m state –state ESTABLISHED,RELATED 等等要求更加高的驗證

相關推薦

Centos網路環境配置防火牆firewalldifconfig+route/ip手動配置網路iptables增加網路訪問規則

一、 防火牆firewalld的操作 1、firewalld的基本使用 啟動: systemctl start firewalld 檢視狀態: systemctl status firewalld 停止: systemctl disable f

PHP開發搭建環境開發工具PhpStorm安裝、啟用以及配置 PHP開發環境搭建一PHP整合環境XAMPP 的安裝與配置

  關於php的開發工具很多,目前市面上最好用最強大的莫過於PhpStorm這款開發神器了,但是鑑於很多開發者朋友在網站上下載的PhpStorm開發工具不能用,或者使用起來很不方便,筆者把最好用的下載地址及免費啟用教程共享出來。 一、安裝並配置整合環境XAMPP 具體可以參考我的這篇部落格:P

Centos 6.4安裝防火牆+JDK7+tomcat8+mysql

(一)防火牆 1、centos6.4在/etc/sysconfig/下面沒有iptables檔案,需要自建一個iptables # Firewall configuration written by system-config-firewall # Manual custo

神經網路優化演算法Dropout、梯度消失/爆炸、Adam優化演算法一篇就夠了!

1. 訓練誤差和泛化誤差 機器學習模型在訓練資料集和測試資料集上的表現。如果你改變過實驗中的模型結構或者超引數,你也許發現了:當模型在訓練資料集上更準確時,它在測試資料集上卻不⼀定更準確。這是為什麼呢? 因為存在著訓練誤差和泛化誤差: 訓練誤差:模型在訓練資料集上表現出的誤差。 泛化誤差:模型在任意⼀個測試

Centos 配置節點間雙向免密登入(手動配置

QQ 交流群:64655993 1、環境說明 系統:Centos 6.5 x64 minimal 節點數:2 區域網或網際網路互通 2、更改兩個節點的主機名分別為 node1.cn node2.cn 更改主機名後,重啟系統後生效! 3、安裝基本工具(

Linux網路相關的命令、firewalld和netfilter、netfilter5表5鏈介紹、iptables語法

一、Linux網路相關的一些命令 1. 檢視網絡卡的命令 ifconfig -a                     ip addr                                這兩個命令都可以檢視網絡卡,當網絡卡down掉的時候是看不到的,使用 -

Python3網路爬蟲(四)使用User Agent和代理IP隱藏身份

執行平臺:Windows Python版本:Python3.x IDE:Sublime text3 一、為何要設定User Agent     有一些網站不喜歡被爬蟲程式訪問,所以會檢測連線物件,如果是爬蟲程式,也就是非人點選訪問,它就會不讓你繼續

UBUNTU下使用ifconfigroute命令手動配置網路

LINUX下的網路配置命令是ifconfig類似於WINDOWS命令列中的ipconfig。可以使用ifconfig命令來配置並檢視網路介面的配置情況。 例如: (1) 配置eth0的IP地址, 同時啟用該裝置。 #ifconfig eth0 192.168.1.10 netmask 255.255.255.

定義一個數組陣列初始長度由控制檯獲取 。隨後手動給陣列中每個元素賦值陣列滿後將陣列長度擴充二倍並輸出清空陣列中所有元素且值繼承陣列長度並重新進行手動新增元素無限死迴圈直至輸出-0後結束程式。

package com.tedu; import java.util.Arrays; import java.util.Scanner; /** * 需求: * 定義一個初始陣列,陣列初始長度由控制檯獲取 * 隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍輸

懸浮球(多機型懸浮窗許可權設定狀態列適配可自動或手動設定大小點選跳轉WebView拖拽處理)

懸浮球:多機型懸浮窗許可權設定,狀態列適配,可自動或手動設定大小,點選跳轉WebView,拖拽處理, 應用內和應用外都可以顯示(可設定取消)可做SDK 和依賴類,橫豎屏切換處理 專案地址: GitHub:https://github.com/gitUserBoy/flow_balls.

網路配置防火牆 (大資料叢集環境)Linux防火牆

網路配置、防火牆 1.大資料叢集環境,形成叢集區域網,使用機器名替代真實IP,如何完成IP地址與機器名的對映? 1)修改機器名 在CenterOS7,使用hostname命令,修改當前機器名,如果重啟節點機器名失效;修改/etc/hostname配置檔案(內容:自定義機器名 例:p

Linux使用yum命令安裝軟體時連線不了網路報錯ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"

錯誤: 解決方案: 在/etc/sysconfig/network-scripts/ifcfg-eth0檔案中配置DNS資訊: vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 進入檔案編輯 修改(新增DNS): DNS1=8.8.

Oracle 環境變數相關總結Toad關於OCI的配置PLSQL等配置

環境變數快速示例 在環境變數中,有效的環境變數有如下 ORACLE_HOME ORACLE_SID SQLPATH TNS_ADMIN NLS_LANG 其中ORACLE_HOME環境變數允許指向多個instant-client ,需要注意的是,對於pls

linux部署神器(附壓縮包)一鍵安裝centos 7環境基礎環境lanmp懶人版還有tomat等你想不到的linux神器

文章目錄 壓縮包 一、安裝版本指南 二、開始安裝 三、安裝完成 四、安裝虛擬環境 壓縮包 http://mirrors.linuxeye.com/oneinstack-full.tar.gz 一、安裝版本指南 可選擇

CentOS進行PPPoE撥號上網可用於ADSL網路環境

http://www.linuxidc.com/Linux/2015-01/111600.htm CentOS算是一個非常知名的Linux系統,因為來自RedHat(紅帽)團隊開發,所以品質還算不錯,也非常多的企業使用者信賴使用,更多CentOS介紹可以參考本文下面的連

Java學習筆記38通過Spring Bean 注入static變數來設計一套適合測試開發生產環境配置

這邊文章的目的主要是為了在spring開發web專案的時候,讓我們的測試,開發,生產環境的配置項 .properties作為配置檔案。 我們首先需要建立一個config資料夾,然後建立開發,測試,生產環境的.properties配置項檔案。 例如,dev.proper

安裝配置在域環境下安裝Microsoft Message Queue(支援公共佇列)

      本文的安裝環境為:windows 2008 R2。Message Queue的具體安裝步驟見下圖:圖 1圖2圖3圖4圖5圖6圖7圖8圖9圖10小結:Message Queue佇列主要的優點就

Centos 環境有關Nginx安裝與配置詳解

Linux中Nginx安裝與配置詳解(CentOS-6.5:nginx-1.5.0)。 1 Nginx簡介 Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Ig

Centos網路環境配置

        最開始接觸linux的時候,就因為網路配置花了好半天時間。最近不知道哪裡出了問題,centos網路又連不上了,鼓搗了很久,終於解決了。現在寫點記錄留著以後看或者給存在相同困惑的人一個指

centos 6.5環境利用iscsi搭建SAN網路儲存服務及服務端target和客戶端initiator配置詳解

一、簡介 iSCSI(internet SCSI)技術由IBM公司研究開發,是一個供硬體裝置使用的、可以在IP協議的上層執行的SCSI指令集,這種指令集合可以實現在IP網路上執行SCSI協議,使其能夠在諸如高速千兆乙太網上進行路由選擇。iSCSI技術是一種新儲存技術,該技術