欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Linux培訓(xùn)之Nginx Web服務(wù)器保駕護航的若干要點

2019-03-26 14:11:56 2451瀏覽

今天扣丁學(xué)堂Linux培訓(xùn)老師給大家介紹一下關(guān)于NginxWeb服務(wù)器保駕護航的若干要點,首先Nginx是全球發(fā)展勢頭最猛的開源輕量級高性能Web服務(wù)器系統(tǒng)。Nginx可在Linux、Windows、MacOS和Solaris等操作系統(tǒng)上運行。Nginx繼續(xù)人氣激增,意味著越來越多的Nginx部署環(huán)境需要加以保護。



我們在本教程中將介紹幾個常見的Nginx服務(wù)器安全要點。

要求

運行Ubuntu18.04或Debian9的服務(wù)器

你的服務(wù)器上已設(shè)置了root密碼

1.安裝Nginx

首先要把Nginx安裝到系統(tǒng)上。運行下列命令來安裝它:

apt-get install nginx -y 

一旦Nginx安裝完畢,可以用下列命令檢查Nginx的狀態(tài):

systemctl status nginx 

你應(yīng)該會看到下列輸出:

?nginx.service - A high performance web server and a reverse proxy server  
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)  
Active: active (running) since Sun 2019-03-10 02:43:14 UTC; 4min 40s ago 
 
Docs: man:nginx(8)  
Process: 2271 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)  
Process: 2281 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)  
Process: 2274 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) 
 
Main PID: 2285 (nginx)  
Tasks: 2 (limit: 1111) 
 
CGroup: /system.slice/nginx.service 
 
??2285 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;  
??2290 nginx: worker process  
Mar 10 02:43:14 ubuntu1804 systemd[1]: Starting A high performance web server and a reverse proxy server...  
Mar 10 02:43:14 ubuntu1804 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument  
Mar 10 02:43:14 ubuntu1804 systemd[1]: Started A high performance web server and a reverse proxy server. 

2.更新Nginx

你需要更新NginxWeb服務(wù)器系統(tǒng),因為許多性能上的改進、新的功能和安全補丁在不斷添加。大多數(shù)現(xiàn)代Linux發(fā)行版不會在默認軟件包列表中隨帶最新版的Nginx。所以你需要通過軟件包管理器來更新最新版的Nginx??梢杂孟铝忻顏砀翹ginxWeb服務(wù)器系統(tǒng):

apt-get update -y 
apt-get install nginx --reinstall -y 

3.防止信息透露

首先需要防止Nginx透露其版本信息。

默認情況下,Nginx在HTTP報頭中顯示其名稱和版本。

你可以用下列命令來檢查:

curl -I http://localhost 

應(yīng)該會看到下列輸出:

HTTP/1.1 200 OK 
Server: nginx/1.14.0 (Ubuntu) 
Date: Sat, 09 Mar 2019 15:28:01 GMT 
Content-Type: text/html 
Content-Length: 10918 
Last-Modified: Fri, 01 Feb 2019 16:05:17 GMT 
Connection: keep-alive 
ETag: "5c546e3d-2aa6" 
Accept-Ranges: bytes 

在上述輸出中,應(yīng)該會看到Nginx和操作系統(tǒng)的版本。

可以編輯/etc/nginx/nginx.conf文件,隱藏這部分信息:

nano /etc/nginx/nginx.conf 

在http配置部分里面添加server_tokensoff這一行:

http { 
        ## 
        # Basic Settings 
        ## 
        server_tokens off; 

完成之后保存并關(guān)閉文件。然后重啟NginxWeb服務(wù)器系統(tǒng)使變更生效:

systemctl restart nginx 

現(xiàn)在再次運行curl命令:

curl -I http://localhost 

應(yīng)該會看到下列輸出:

HTTP/1.1 200 OK 
Server: nginx 
Date: Sat, 09 Mar 2019 15:33:31 GMT 
Content-Type: text/html 
Content-Length: 10918 
Last-Modified: Fri, 01 Feb 2019 16:05:17 GMT 
Connection: keep-alive 
ETag: "5c546e3d-2aa6" 
Accept-Ranges: bytes 

4.限制IP被訪問

Nginx隨帶一個名為ngx_http_access_module的簡單模塊,允許或拒絕某個特定的IP地址。

如果你想允許從172.16.0.0/16訪問Nginx,但拒絕來自其他子網(wǎng)的訪問,那么打開/etc/nginx/sites-enabled/default文件:

nano /etc/nginx/sites-enabled/default 

在serverblock里面進行下列更改:

server { 
        listen 80 default_server; 
        listen [::]:80 default_server; 
    allow 172.16.0.0/16; 
        deny  all; 

完成后保存并關(guān)閉文件。然后重啟Nginx使這些變更生效:

systemctl restart nginx 

現(xiàn)在,試著從192.168.0.102之類的其他IP地址范圍來訪問Nginx服務(wù)器。

下一步,用下列命令檢查Nginx日志:

tail -f /var/log/nginx/error.log 

你應(yīng)該會在下列輸出中看到訪問被禁止:

2019/03/0916:13:01[error]11589#11589:*1accessforbiddenbyrule,client:192.168.0.102,server:_,request:"GET/test/HTTP/1.1",host:"172.16.0.122"

5.用TLS保護Nginx

傳輸層安全(TLS)是安全套接層(SSL)的后續(xù)技術(shù)。它提供更強大更高效的HTTPS,含有更多的改進,比如ForwardSecrecy、與現(xiàn)代的OpenSSL密碼組以及HSTS。本教程介紹如何在Nginx中啟用自簽名的SSL證書。如果你想改而使用let'sEncrypt證書。

先用下列命令為SSL創(chuàng)建目錄:

mkdir /etc/nginx/ssl/ 

接下來,用下列命令創(chuàng)建密鑰和證書:

cd /etc/nginx/ssl/ 

先用下列命令創(chuàng)建密鑰:

openssl genrsa -aes256 -out nginx.key 1024 

你會看到下列輸出:

Generating RSA private key, 1024 bit long modulus 
...++++++ 
.............................++++++ 
e is 65537 (0x010001) 
Enter pass phrase for nginx.key: 
Verifying - Enter pass phrase for nginx.key: 

接下來用下列命令創(chuàng)建csr:

openssl req -new -key nginx.key -out nginx.csr 

提供所有信息,如下所示:

Generating RSA private key, 1024 bit long modulus 
...++++++ 
.............................++++++ 
e is 65537 (0x010001) 
Enter pass phrase for nginx.key: 
Verifying - Enter pass phrase for nginx.key: 
root@ubuntu1804:~# openssl req -new -key nginx.key -out nginx.csr 
Enter pass phrase for nginx.key: 
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [AU]:IN 
State or Province Name (full name) [Some-State]:Gujarat 
Locality Name (eg, city) []:Junagadh 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT 
Organizational Unit Name (eg, section) []:IT 
Common Name (e.g. server FQDN or YOUR name) []:HITESH 
Email Address []:admin@example.com 
 
Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []:admin 
An optional company name []:IT 

接下來用下列命令簽名證書:

openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt 

你會看到下列輸出:

Signature ok 
subject=C = IN, ST = Gujarat, L = Junagadh, O = IT, OU = IT, CN = HITESH, emailAddress = admin@example.com 
Getting Private key 
Enter pass phrase for nginx.key: 

接下來打開Nginx默認虛擬主機文件,定義證書:

nano /etc/nginx/sites-enabled/default 

進行下列更改:

server { 
        listen 192.168.0.100:443 ssl; 
        root /var/www/html; 
        index index.html index.htm index.nginx-debian.html; 
        server_name _; 
        ssl_certificate /etc/nginx/ssl/nginx.crt; 
        ssl_certificate_key /etc/nginx/ssl/nginx.key; 
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2; 

完成后保存并關(guān)閉文件。然后重啟Nginx服務(wù)器使這些變更生效:

systemctl restart nginx 

6.用密碼保護目錄

創(chuàng)建NginxWeb服務(wù)器時,還可以用密碼來保護特定的目錄。可以使用.htpasswd文件來做到這一點。

為此用下列命令創(chuàng)建passwd文件,并為它添加用戶:

mkdir /etc/nginx/.htpasswd 
htpasswd -c /etc/nginx/.htpasswd/passwd admin 

你會看到下列輸出:

New password:  
Re-type new password:  
Adding password for user admin 

接下來用下列命令在NginxWebroot里面創(chuàng)建測試目錄。

mkdir /var/www/html/test 

接下來用下列命令為www-datauser賦予所有權(quán):

chown -R www-data:www-data /var/www/html/test 

接下來用下列命令打開Nginx默認虛擬主機文件:

nano /etc/nginx/sites-enabled/default 

接下來保護測試目錄,如下所示:

location /test { 
auth_basic  "Restricted"; 
auth_basic_user_file   /etc/nginx/.htpasswd/passwd; 

完成后保存并關(guān)閉文件。然后重啟Nginx服務(wù)使這些變更生效:

systemctl restart nginx 

接下來打開Web瀏覽器,輸入URLhttp://your-server-ip/test。系統(tǒng)會提示你輸入用戶名和密碼,訪問測試目錄,如下所示:



以上就是關(guān)于扣丁學(xué)堂Linux培訓(xùn)之Nginx Web服務(wù)器保駕護航的若干要點詳細介紹,想要學(xué)好Linux開發(fā)小編給大家推薦口碑良好的扣丁學(xué)堂,扣丁學(xué)堂有專業(yè)老師制定的Linux學(xué)習(xí)路線圖輔助學(xué)員學(xué)習(xí),此外還有與時俱進的Linux課程體系和Linux系統(tǒng)入門學(xué)習(xí)視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好linux開發(fā)技術(shù)的小伙伴快快行動吧??鄱W(xué)堂Linux技術(shù)交流群:422345477。


扣丁學(xué)堂PHP培訓(xùn)                     【掃碼進入HTML5進階免費公開課】


【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】    【掃碼進入HTML5進階免費公開課】



查看更多關(guān)于“Linux培訓(xùn)資訊”的相關(guān)文章>>
標(biāo)簽: Linux培訓(xùn) Linux視頻教程 紅帽Linux視頻 Linux學(xué)習(xí)視頻 Linux入門視頻

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部