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.修改主機名
ifconfig eth0 192.168.1.5 netmask 255.255.255.0
3.修改預設閘道器(eth0為網絡卡名稱)
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登入了
針對這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的網路環境配置:防火牆firewalld,ifconfig+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下使用ifconfig和route命令手動配置網路
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技術是一種新儲存技術,該技術