步驟1:保留您的Pi已更新!
sudo rpi-update
該命令將自動更新Raspberry Pi的固件,然后要求重新啟動。如果您的Pi已經是最新的,則可以繼續:
sudo apt-get update
sudo apt-get upgrade
現在,您已經擁有最新,最強大的固件和軟件!
步驟2:Pi密碼
理想情況下,我們將禁用默認的 pi 帳戶,至少要設置您的pi帳戶的默認密碼。另一個主要的安全保護措施是,大多數用戶都啟用了SSH(安全套接字共享)和VNC(虛擬網絡計算機),以便他們可以遠程訪問其計算機。我不建議在運行公開的Web服務器時允許網絡之外的訪問。
步驟3:上網
您有多個設備連接到WiFi路由器,那么如何告訴外界Raspberry Pi的服務位置呢?讓我們在路由器制造商的配置工具中熟悉路由器的高級設置。大多數家庭網絡使用以下公共IP地址之一作為其Internet網關:
http://192.168.0.1/
http://192.168.1.1/
http://10.0.0.1/
您將需要登錄到路由器的配置工具。用戶名和密碼應在設置時分配。首先,我們需要為Raspberry Pi保留一個IP地址,以便定期使用。通常,路由器將具有DHCP(動態主機配置協議)設置部分,列表和綁定等。RaspberryPi和LAN上的所有其他設備應在此處列出。希望您的路由器將具有一個直觀的界面,該界面對于如何將IP地址分配給設備或MAC地址很有用。如果其他所有方法均失敗,請查閱制造商的說明。
Web請求的默認端口為80。除非Internet服務提供商不允許端口80,否則您可以保留默認端口。路由器配置的下一步為使路由器將端口80上的所有傳入請求轉發到Raspberry Pi。通常稱為端口轉發或端口范圍轉發。您將需要關聯Raspberry Pi的IP地址,以便它將在端口80或您認為最合適的任何端口上接收所有傳入請求。最安全的Web服務器是未連接到Internet的服務器;-)其次,我們應該限制apache conf文件中的訪問,以僅允許我們的IP和我們已知的IP。您還可以允許Telnet,FTP,SSH,VNC等,但除非您熟悉與此類服務相關的安全隱患,否則我不建議您這樣做。
步驟4:為自己獲取域名
http://www.YOUR_CUSTOM_DOMAIN.ddns.net
在路由器的高級配置設置中檢查DDNS(動態域名服務)設置。大多數路由器將支持以下一項或多項:http://www.dyn.com、http://www.noip.com,其他許多路由器也會在Google上搜索“動態DNS”。該服務將提供注冊域名以與您的Internet服務提供商分配給您的動態IP地址關聯的功能。通常,當您分配的IP地址更改時,下載或安裝的路由器或軟件插件會更新動態DNS服務的數據庫。
步驟5:通過隱蔽性進行安全性
“在安全工程中,通過隱蔽性進行安全性(或通過隱蔽性進行安全性)是對設計或實現的保密性的依賴,這是為系統或系統組件提供安全性的主要方法。依賴模糊性的系統或組件可能具有理論或實際的安全漏洞,但是其所有者或設計者認為,如果不知道這些缺陷,則足以阻止成功的攻擊。安全專家早在1851年就拒絕了這種觀點,并建議模糊性永遠不應是唯一的安全機制。”
https://en.wikipedia.org/wiki/Security_through_obs.。.
我們經常依靠某種模糊性來確保我們的安全。 “如果他們不知道,他們將無法使用它進入。”普通的家用門鎖只有這么多組合,但是我們可以依靠前門的鎖,因為我們知道小偷會擁有嘗試各種組合或打破常規。但是,在Internet上,誰在監視您的前門,所以小偷無法嘗試所有組合?幸運的是,我們的Web服務器具有一個access.log文件,該文件將自動為我們更新和存檔。讓我們從那里開始,看看是否有人在您的Web服務器上留下了自己的“足跡”。
步驟6:日志潛水
在Raspberry Pi上運行LAMP設置,打開一個終端窗口,然后鍵入以下內容:
cd /var/log/apache2/
zcat access.log* | awk ‘{print $1}’ | sort -n | uniq -c | sort -nr | head -20
輸出應該是兩列的列表,其中一列包含計數的條目數,第二列是與每個Web請求關聯的IP地址。從反向IP查找中獲取最多信息的最簡單方法是使用以下命令:
curl ipinfo.io/REPLACE.WITH.IP.ADDRESS.TO.LOOKUP
安裝某些工具后,您可以進行一些挖掘,而不必依靠外部Web服務。 Pi默認不包含的內容:
sudo apt-get install geoip-bin
geoiplookup IP.ADDRESS
此處是有關使用geoiplookup的很好的文章。 Pi默認不包括更高級的挖掘:
sudo apt-get install dnsutils
dig -x IP.ADDRESS
該位置似乎可疑嗎?嘗試對活動進行grepping, zgrep 命令包含壓縮文件:
zgrep ‘IP.ADDRESS’ access.log* -1
通過查看從IP地址發出的Web請求,您可以確定活動是否可疑。通常,您會發現這些IP地址來自尋找安全性漏洞的漫游器。您可以手動將IP地址屏蔽到您的黑名單中,也可以全部拒絕并允許選擇IP地址。如果尚未安裝,則需要安裝和設置防火墻。
步驟7:Apache Web服務器
請注意:本文中的代碼部分在不同設備上的顯示方式有所不同。在移動設備上使用Instructables應用程序時,代碼缺少行尾。大多數Web瀏覽器似乎都可以正常工作。
如果您要在全球范圍內提供Web內容,那么您最終將希望采用某種黑名單或排除列表,在其中可以阻止訪問特定IP地址您的服務器。但是,如果您想加強安全性并只允許選擇一些訪問權限,則需要進行一些更改。
cd /etc/apache2
sudo cp apache2.conf apache2.conf.bak sudo vi apache2.conf
OR
sudo nano apache2.conf
向下瀏覽文件,直到到達允許所有人從外部訪問您的Web服務器的本節:
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
AllowOverride 指令設置為 無 ,這意味著我們不會使用.htaccess文件覆蓋這些設置。下一個指令 Require 設置為所有已授予,表示允許任何人訪問。
請注意:我在日志文件中發現了大量的bot請求,使用phpmyadmin監聽了我們的請求,請確保限制訪問權限:
Order Deny, Allow
Deny from All
# localhost
Allow from 127.0.0.1
# Local-Area Network
Allow from 192.168.0
接下來,我們可以添加一個我們要保護的目錄:
Options Indexes FollowSymLinks
AllowOverride All
AllowOverride 指令設置為 全部 表示我們將使用.htaccess文件覆蓋這些設置。我們將在.htaccess文件中的指定目錄(本例中為“/var/www/html/hydroMazing/”
)中提供 Require 指令。 # AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
AccessFileName .htaccess
您可以在此處將.htaccess文件的名稱更改為更難以猜測的名稱。將點保留在開頭,因為這意味著隱藏文件。發揮您的想象力!
現在,您可以將.htaccess文件用作白名單或包含列表:
要創建.htaccess(或任何您命名的文件)文件:
cd /var/www/html/mydirectory/ sudo vi .htaccess
OR
sudo nano .htaccess # Allow access to localhost
Require ip 127.0.0.1
# Allow access to my cell phone
Require ip 98.97.34.23
第二個示例是一個示例,請將其更改為您的IP地址,或者Web服務器記錄的IP地址。
保存并關閉文件。您可以根據需要添加其他訪問權限。
步驟8:讓每個人都使用前門
首先,讓我們強迫任何來訪的人我們的Web服務器使用前門
cd /etc/apache2
sudo cp apache2.conf apache2.conf.bak sudo vi apache2.conf
OR
sudo nano apache2.conf
向下瀏覽文件,直到到達此部分為止添加針對404和405錯誤的重定向:
。..
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
AccessFileName .htaccess
ErrorDocument 404 /
ErrorDocument 405 /
。..
保存并關閉文件。
設置訪問權限列表
cd /var/www/html/ sudo vi .htaccess
# localhost
Require ip 127.0.0.1
保存并關閉文件。
重復您的管理目錄
cd /var/www/html/admin/ sudo vi .htaccess
# localhost
Require ip 127.0.0.1
保存并關閉文件。
第9步:允許訪問的Web界面
我要與大家分享我為HydroMazing Smart Garden System制作的簡單Web界面。
我使用PHP編寫了基本界面,用于讀取和寫入文件,從而使用戶可以添加或刪除IP地址。從他們的.htaccess文件中下載。
下載文件并解壓縮到您的下載目錄,然后將其復制到Web服務器的基本目錄中部門:
sudo cp -R /home/pi/downloads/*.php /var/www/html/
更改權限:
sudo chmod -R www-data:www-data /var/www/html/* sudo chown -R 755 /var/www/html/*.php
等等!沒那么快!
我們應該通過SSL連接保護用戶名和密碼。
https://hallard.me/enable-ssl-for-apache-server-in- 5分鐘/
第10步:筑墻
安裝開源防火墻構建器
Pop從Raspberry Pi的桌面打開一個終端,然后鍵入以下內容:
sudo apt-get install fwbuilder
安裝完成后,您將擁有一個新的防火墻構建器GUI的桌面上“菜單/Internet”選項下的“選項”。
添加新防火墻,并將其命名為與服務器相同的名稱。
選擇“ Web服務器”模板加載默認規則。請注意,默認規則限制您的服務器訪問外部Internet。為了允許訪問,您需要添加一條規則。添加規則的最簡單方法是復制與您的需求相似的現有規則。
步驟11:編譯并安裝
我們可以通過此接口構建防火墻,但由于沒有足夠的權限寫入文件系統,因此無法安裝防火墻。假設您為服務器命名的名稱與DDNS名稱相同,請在終端窗口的命令行中輸入以下內容:
sudo mkdir /etc/fw sudo touch /etc/fw/servername.ddns.net.fw sudo chmod 777 /etc/fw/servername.ddns.net.fw
現在,您應該能夠使用防火墻生成器程序來編譯和安裝防火墻。您可以重新啟動apache Web服務器,也可以直接重新啟動。
責任編輯:wv
-
路由器
+關注
關注
22文章
3744瀏覽量
114266 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105800
發布評論請先 登錄
相關推薦
評論