วิธีปฏิบัติที่ดีที่สุด Nginx เว็บเซิร์ฟเวอร์การรักษาความปลอดภัย

A+ A-

NGINX เป็นฟรีเปิดแหล่งที่มาที่มีประสิทธิภาพสูงเซิร์ฟเวอร์ HTTP และพร็อกซี่กลับยังเป็นที่รู้จักพร็อกซีเซิร์ฟเวอร์ IMAP / POP3 NGINX มีชื่อเสียงสำหรับประสิทธิภาพสูง, ความมั่นคง, ชุดคุณลักษณะที่อุดมไปด้วยการตั้งค่าง่ายและการบริโภคทรัพยากรต่ำ ในบทความนี้เราจะอธิบายเกี่ยวกับ "การรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ Nginx ปฏิบัติที่ดีที่สุด"

sysctl.conf เป็นไฟล์ที่เรียบง่ายมีค่า sysctl ที่จะอ่านและกำหนดโดย sysctl เพื่อเปิด sysctl.conf ใช้คำสั่งดังต่อไปนี้ -

 $ sudo เป็นกลุ่ม /etc/sysctl.conf

ผลลัพธ์ของตัวอย่างที่ควรจะเป็นเช่นนี้ -

 #
# /etc/sysctl.conf - แฟ้มการกำหนดค่าสำหรับการตั้งค่าตัวแปรระบบ
# ดู /etc/sysctl.d/ สำหรับตัวแปรของระบบเพิ่มเติม
# ดู sysctl.conf (5) สำหรับข้อมูล
#

# kernel.domainname = example.com

# Uncomment ต่อไปนี้เพื่อหยุดการส่งข้อความระดับต่ำบนคอนโซล
# kernel.printk = 3 4 1 3

################################################## ############ 3
# ฟังก์ชั่นที่พบก่อนหน้านี้ใน Netbase
#

# Uncomment สองบรรทัดต่อไปเพื่อเปิดใช้งานการป้องกันการหลอก (กรองเส้นทางย้อนกลับ)
# เปิดแหล่งที่อยู่ในการตรวจสอบการเชื่อมต่อทั้งหมดไป
# ป้องกันการโจมตีปลอมแปลงบาง
# net.ipv4.conf.default.rp_filter = 1
..........................................

เพื่อป้องกันการโจมตี Smurf เพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.icmp_echo_ignore_broadcasts = 1

หากต้องการเปิดการป้องกันสำหรับข้อผิดพลาดที่ไม่ดี ICMP เพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.icmp_ignore_bogus_error_responses = 1

เมื่อต้องการเปิด syncookies สำหรับป้องกันการโจมตี SYN น้ำท่วมเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.tcp_syncookies = 1

เมื่อต้องการเปิดและเข้าสู่ระบบหัวหมุนแหล่งที่มาของการกำหนดเส้นทางและเปลี่ยนเส้นทางแพ็คเก็ตเพิ่มบรรทัดต่อไปนี้เพื่อ sysctl.conf ไฟล์

 net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

ยกเลิกการแหล่งที่มาแพ็คเก็ตถูกส่งเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

หากต้องการเปิดการกรองเส้นทางกลับเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

เพื่อแจ้งเปลี่ยนแปลงตารางเส้นทางเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

เมื่อต้องการเปิด execshild เพิ่มบรรทัดต่อไปนี้เพื่อ sysctl.conf ไฟล์

 kernel.exec โล่ = 1
kernel.randomize_va_space = 1

การปรับแต่ง IPv6 เพิ่มบรรทัดต่อไปยังแฟ้ม sysctl.conf

 net.ipv6.conf.default.router_solicitations = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.default.max_addresses = 1

เพื่อเพิ่มประสิทธิภาพการพอร์ตใช้ปอนด์และเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 fs.file-Max = 65535

ในการอนุญาตให้ PIDs มากขึ้นเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 kernel.pid_max = 65536

เพื่อเพิ่มขีด จำกัด ของระบบ IP พอร์ตเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.ip_local_port_range = 2000 65000

เพื่อเพิ่ม TCP ขนาดสูงสุดบัฟเฟอร์กำหนดตารางโดยใช้ setsockopt () และเพิ่มบรรทัดต่อไปนี้ sysctl.conf ไฟล์

 net.ipv4.tcp_rmem = 4096 87,380 8,388,608
net.ipv4.tcp_wmem = 4096 87,380 8,388,608

เพื่อบัน​​ทึกและโหลดไฟล์ดังกล่าวข้างต้นให้ใช้คำสั่งดังต่อไปนี้ -

 # sysctl -p

หากต้องการปิดหมายเลขรุ่น Nginx แสดงเพิ่มบรรทัดต่อไปนี้ /etc/nginx/conf.d/default.conf ไฟล์

 server_tokens ปิด

เพื่อควบคุมการโจมตีให้บัฟเฟอร์ล้นเพิ่มคำสั่งต่อไปยังแฟ้ม /etc/nginx/nginx.conf

 ## เริ่มต้น: จำกัด ขนาดและกันชน Overflows ##
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
## End: ขีด จำกัด ของขนาดและกันชน Overflows ##
  • client_body_buffer_size 1k: คำสั่งนี้ระบุคำขอของลูกค้าขนาดบัฟเฟอร์ร่างกาย
  • client_header_buffer_size 1k: คำสั่งนี้กำหนดขนาด headerbuffer สำหรับหัวข้อการร้องขอจากลูกค้า
  • client_max_body_size 1k: มันแสดงให้เห็นโดยเส้นความยาวเนื้อหาในคำขอส่วนหัว
  • large_client_header_buffers 2 1k: คำสั่งนี้กำหนดจำนวนสูงสุดและขนาดของบัฟเฟอร์สำหรับส่วนหัวมีขนาดใหญ่อ่านจากคำขอของลูกค้า

Nginx PHP และเคล็ดลับในการรักษาความปลอดภัย

เพื่อเพิ่มเคล็ดลับความปลอดภัยใน PHP ก็ควรจะต้องมีไฟล์ที่เรียกว่า php.ini ตัวอย่างของไฟล์ php.ini ควรจะเป็นเช่นนี้ -

 [PHP]

;;;;;;;;;;;;;;;;;;;
; เกี่ยวกับ php.ini;
;;;;;;;;;;;;;;;;;;;
; ไฟล์เริ่มต้นของ PHP ทั่วไปเรียกว่า php.ini เป็นผู้รับผิดชอบ
; การกำหนดค่าหลายแง่มุมของพฤติกรรมของ PHP

; PHP พยายามที่จะค้นหาและโหลดการกำหนดค่านี้จากจำนวนของสถ​​านที่
; ต่อไปนี้เป็นบทสรุปของการสั่งซื้อการค้นหา:
; 1. SAPI สถานที่เฉพาะโมดูล
; 2. ตัวแปรสภาพแวดล้อม PHPRC ( ณ PHP 5.2.0)
; 3. จำนวนรีจิสทรีคีย์ที่กำหนดไว้ล่วงหน้าบน Windows (เหมือน PHP 5.2.0)
; 4. ไดเรกทอรีการทำงานปัจจุบัน (ยกเว้น CLI)
; 5. ไดเรกทอรีของเว็บเซิร์ฟเวอร์ (สำหรับโมดูล SAPI) หรือไดเรกทอรีของ PHP
; (มิฉะนั้นใน Windows)
; 6. ไดเรกทอรีจาก --with-config ไฟล์เส้นทางรวบรวมตัวเลือกเวลาหรือ
; ไดเรกทอรี Windows (C: \ Windows หรือ C: \ WINNT)
; ดูเอกสาร PHP สำหรับข้อมูลที่เฉพาะเจาะจงมากขึ้น

ไม่อนุญาตให้ฟังก์ชั่นที่เป็นอันตรายใน PHP เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 disable_functions = phpinfo ระบบจดหมาย exec

ในการตั้งเวลาดำเนินการสูงสุดของแต่ละสคริปต์เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 max_execution_time = 30

เพื่อกำหนดจำนวนเงินสูงสุดของเวลาแต่ละสคริปต์อาจใช้จ่ายในการแยกวิเคราะห์ข้อมูลการร้องขอ เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 max_input_time = 60

ในการตั้งค่าจำนวนเงินสูงสุดของหน่วยความจำสำหรับสคริปต์ที่จะบริโภคเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 memory_limit = 8M

การตั้งค่าขนาดสูงสุดของข้อมูลที่โพสต์ที่จะยอมรับ PHP เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 post_max_size = 8M

ในการตั้งค่าขนาดสูงสุดที่อนุญาตสำหรับไฟล์ที่อัปโหลดเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 upload_max_filesize = 2M

อย่าให้ข้อความผิดพลาด PHP เพื่อให้ผู้ใช้ภายนอกเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 display_errors = ปิด

เมื่อต้องการเปิดเซฟโหมดเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 safe_mode = on

ในการตั้งค่าการ จำกัด การเข้าถึงจากภายนอกเข้ากับสภาพแวดล้อม PHP, เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 safe_mode_allowed_env_vars = PHP_

จะเห็นข้อผิดพลาดทั้งหมดเข้าสู่ระบบเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 log_errors = on

ในการตั้งค่าที่อนุญาตลดขนาด PHP โพสต์เพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 post_max_size = 1K

ต้องการเปิดใช้งาน SQL เซฟโหมดเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 sql.safe_mode = on

เพื่อหลีกเลี่ยงการเปิดไฟล์ระยะไกลเพิ่มคำสั่งต่อไปยังไฟล์ php.ini

 allow_url_fopen = ปิด

ในการอัปเกรด Nginx ใช้คำสั่งดังต่อไปนี้ -

 $ sudo apt-get อัพเกรด Nginx

ผลลัพธ์ของตัวอย่างที่ควรจะเป็นเช่นนี้ -

 อ่านรายชื่อแพคเกจ ... เสร็จเรียบร้อย
ต้นไม้พึ่งพาอาคาร       
อ่านข้อมูลของรัฐ ... เสร็จเรียบร้อย
คำนวณอัพเกรดเสร็จสิ้น ...
แพคเกจต่อไปนี้ถูกติดตั้งโดยอัตโนมัติและจะต้องไม่มีอีกต่อไป:
  libhdb9-Heimdal libkdc2-Heimdal libntdb1 หลาม ntdb
ใช้ 'apt-get autoremove' จะเอาพวกเขา
แพคเกจใหม่ต่อไปนี้จะถูกติดตั้ง:
  Nginx Nginx ทั่วไป Nginx-core
0 อัพเกรด 3 ติดตั้งใหม่, 0 ที่จะลบและ 0 ไม่ได้อัปเกรด
จำเป็นต้องได้รับ 349 กิโลไบต์จดหมายเหตุ
หลังจากการดำเนินการนี​​้ 1,297 กิโลไบต์พื้นที่ดิสก์เพิ่มเติมจะนำมาใช้
คุณต้องการที่จะต่อหรือไม่? [Y / N] Y
.................................................. ...................

หลังจากบทความนี้คุณจะสามารถที่จะเข้าใจสิ่งที่เป็น Nginx เว็บเซิร์ฟเวอร์และวิธีการรักษาความปลอดภัย Nginx เว็บเซิร์ฟเวอร์ ในบทความต่อไปของเราเราจะเกิดขึ้นกับเทคนิค Linux ตามเพิ่มเติมและเคล็ดลับ ให้อ่าน!

Ads

หุ้น

เมื่อเร็ว ๆ นี้

ทางเลือกที่ดีที่สุดอูบุนตูที่มองหาถ้าคุณเป็นคนรักของลินุกซ์

ขอเริ่มต้นโดยได้รับคุ้นเคยกับบางสิ่งบางอย่าง; พื้นฐาน แต่บิ...

วิธีการเพิ่มลายเซ็นใน Gmail กล่องขาเข้า - เพิ่มลายเซ็นของ Google ใน Gmail

กล่องขาเข้าโดย Google เป็นหนึ่งในสิ่งที่ดีที่สุดของ Google ...

Weekly Tech News: Nokia, Google และนินเทน

สวัสดีครับทุกคนก็ศุกร์ 3 มีนาคมและเช่นเดียวเสมอเรากลับมาพร้...

โครงการ Pi ราสเบอร์รี่สำหรับมือใหม่ - คุณสามารถทำอะไรกับราสเบอร์รี่ Pi

ราสเบอร์รี่ Pi เป็นชุดของพลังงานต่ำคอมพิวเตอร์บอร์ดเดียวที่...

VPN ที่ดีที่สุดสำหรับ Android 2017 - วิธีการใช้ VPN ใน Android

ไปเป็นวันเมื่อ VPNs เพียงสำหรับเทคโนโลยี savvies และแฮกเกอร...

ความคิดเห็น