Tìm hiểu về các tường lửa để nâng cao bảo mật cho WordPress và máy chủ của bạn.
Kiến thức trong bài viết này là những kiến thức cơ bản của quản trị viên hệ thống: để giúp website của bạn nâng cao bảo mật, phòng chống ddos…
Hiểu nguyên lý hoạt động tường lửa có giá trị gì?
Tường lửa có ảnh hưởng đến hiệu suất hay không?
Bài viết sẽ rất khó hiểu nếu như bạn chỉ đang dùng share hosting và chưa từng trải nghiệm sử dụng vps hoặc server. Yêu cầu chút nền tảng thì sẽ dễ hiểu hơn. Nhưng mình sẽ cố gắng giải thích đơn giản nhất có thể.
Mục lục
Tường lửa để làm gì?
Tường lửa là hệ thống kiểm soát truy cập [ cho phép hoặc được phép truy cập hay không ].
Ví dụ ngắn gọn:
Tường lửa được ví như là chú bảo vệ, xem những ai có thể đủ điều kiện đi được qua cổng.
Điều kiện ở đây thì tuỳ bạn thiết lập: ví dụ chú bảo vệ đang làm bảo vệ ở một trường tiểu học, thì điều kiện ở đây có thể được đi qua cổng là học sinh tiểu học mặc đồng phục của nhà trường có độ tuổi từ 6 tuổi đến 10 tuổi và các giáo viên có đeo thẻ giáo viên và bác bảo vệ quen mặt thì mới được đi qua, còn lại không ai được phép đi qua. (đó là danh sách các quy tắc quy định ai có quyền truy cập hay không)
Mật khẩu giống như chìa khoá cửa
và
Tường lửa giống như những người gác cổng quyết định ai sẽ đến được tiếp cận cái cửa đó để thử đưa chìa khoá vào xem có được hay không.
Như bạn có thể thấy, có nhiều hình thức bảo mật để ngăn chặn hacker.
Tường lửa về cơ bản là hình thức bảo mật đầu tiên của bạn. Giống như người bảo vệ hay người gác cửa quyết định ai vào hay không.
Dựa trên quy tắc của bạn đề ra. Họ quyết định cửa nào được phép vào. Có lẽ cửa trước là dành cho tất cả mọi người. Có lẽ cửa lối sau chỉ dành cho nhân viên nội bộ…
- Tường lửa mạng kiểm soát port nào được đóng hoặc mở và IP nào có thể có quyền truy cập.
- Các dịch vụ khác nhau sử dụng các port sẽ khác nhau. Ví dụ: SSH sử dụng cổng 22, FTP sử dụng cổng 21, HTTP sử dụng 80, HTTPS sử dụng 443 v.v. Bạn quyết định port nào được mở và cho ai riêng ai và không cho riêng ai…
Nhìn chung có 2 cách mà hacker có thể gây ra sự cố máy chủ, website của bạn:
- Gọi là hack: Họ vi phạm truy cập dữ liệu trái phép của bạn. Điều này có thể có nghĩa là tiêm mã và hoặc gán backdoor, thêm tài khoản admin, đánh cắp dữ liệu của bạn hoặc thay đổi tập tin của bạn. chuyển hướng website của bạn sang 1 trang khác, viết bài content lừa đảo, hoặc lấy máy chủ đào tiền ảo…
- Gọi là DOS hoặc DDOS: làm tràn ngập quá tải hệ thống của bạn bằng các kết nối giả mạo người dùng với số lượng cực lớn, làm quá tải tài nguyên máy chủ và gây ngừng hoạt động.
Tường lửa mạng – không trạng thái và có trạng thái
Tường lửa mạng thế hệ đầu tiên là tường lửa không trạng thái
- Chỉ có thể lọc các gói dựa trên các port người dùng đi qua và IP đang được sử dụng. Họ không thể phát hiện khi nào các gói tin giả mạo fake IP của họ để giành quyền truy cập
- Tường lửa không trạng thái được cấu hình thủ công. Khi các port (mở/đóng) và IP (cho phép/từ chối) được set, nó chỉ cần lọc các gói dựa trên các quy tắc trên. không thể tự động điều chỉnh các quy tắc để bảo vệ các port đã mở.
- Tường lửa không trạng thái chỉ thực hiện lọc gói ở layer 3 trên mô hình OSI. (Nói cách khác, nó bảo vệ bạn khỏi các cuộc tấn công DDOS LAYER 3).
Vì vậy, để xác định và kiểm soát luồng gói tốt hơn, chúng tôi sử dụng tường lửa mạng thế hệ thứ hai ( tường lửa trạng thái ):
- có thể kiểm tra trạng thái của các gói tin (mở, đóng, thiết lập, v.v… do đó có tên là “trạng thái”)
- Nó cũng có thể ghi lại lưu lượng truy cập và nhận ra các kiểu lạm dụng. Đó là một hệ thống giám sát.
- Bởi vì nó kiểm tra các gói kỹ lưỡng hơn nên nó cũng sử dụng nhiều tài nguyên hơn so với không trạng thái
- Tường lửa trạng thái có thể cho phép bạn bảo mật các port đã mở tốt hơn vì nó đủ “thông minh” để phát hiện/hạn chế việc lạm dụng. Ví dụ: nó cho phép mọi người truy cập vào port webserver của bạn 80 hay 443 nhưng sẽ cấm IP nếu họ thực hiện hơn 20 kết nối cùng lúc.
- Tường lửa trạng thái có thể thực hiện lọc gói tin và quét mọi thứ trên layer 4 của mô hình OSI, giúp ngăn chặn các cuộc tấn công DDOS layer 3 và 4 một cách hiệu quả).
Tường lửa ứng dụng web (WAF)
Vậy tường lửa ứng dụng web (WAF) là gì?
Không giống như tường lửa mạng lọc các gói trên layer 3 và layer 4… tường lửa ứng dụng waf lọc lưu lượng trên layer 7 (trong mô hình OSI)
Điều này cho phép nó lọc lưu lượng theo cách khác và thông qua các giao thức khác nhau. Hãy so sánh cả 3.
- Tường lửa LAYER 3 – lọc các gói dựa trên port chúng đi qua và IP chúng đến và đi.
- Tường lửa LAYER 4 – có thể lọc dựa trên thông tin của layer 3 cũng như trạng thái kết nối, số lượng kết nối được thực hiện và liệu IP này có nằm trong danh sách cấm vì lạm dụng gần đây hay không.
- Tường lửa LAYER 7 – có thể lọc dựa trên thông tin lớp 3 & 4 cũng như những thứ như tác nhân người dùng, hoặc yêu cầu get hay post v.v.
Layer 7 có thể lọc thông tin và chặn những thứ mà tường lửa cấp thấp hơn không thể.
Ví dụ: tường lửa mạng (layer 3&4) của bạn có thể chặn port SSH 22 đối với tất cả lưu lượng truy cập nhưng nếu bạn có nhu cầu làm webserver bạn phải để mở port HTTP 80 và port HTTPS 443 mở cho tất cả khách truy cập vào trang web của bạn. Nếu bạn làm webserver mà tắt port 80 và 443 thì làm sao website có thể truy cập được.
Và điều đó có nghĩa là traffic tốt và xấu đều có thể đi qua các cổng trên không thể tắt . Và nếu tất cả lưu lượng truy cập được phép thông qua các port đã mở này, bạn cần một cách khác để lọc chúng. Đó là lúc WAF (Layer 7) xuất hiện.
- Trong mô hình OSI mạng là lớp vật lý (layer 1). Chúng ta chỉ nhìn thấy một sợi cáp có dòng điện chạy qua nó. Chúng ta không thể biết phần nào của nguồn điện caps đó có phải là hacker hay người dùng bình thường, hay là khách vip.
- Layer (3 & 4) có thể phân biệt các bit điện đó thành các gói mạng. Nhưng nó không thể biết những gói đó có thông tin xấu hay tốt hay nó đang thực thi đoạn code gì. Nó chỉ có thể xem họ đến từ IP nào và đến từ port nào họ muốn truy cập và trạng thái kết nối và số lần ip đó truy cập.
- Layer (7) là lớp ứng dụng và có thể nhìn thấy chính xác code đang chạy, dữ liệu nào được truyền qua. Nó có thể xem và xử lý dữ liệu ở dạng chính xác mà người dùng (con người) nhìn thấy bằng mắt.
Tường lửa ứng dụng web (WAF) có thể lọc theo:
- Tác nhân người dùng ví dụ: chỉ có ai dùng trình duyệt chrome mới được vào website còn lại các trình duyệt khác không được vào.
- Có thể chặn khách truy cập vào 1 trang 1 url nào đó.
- chỉ có người dùng iphone mới truy cập được vào website còn người dùng android thì không được truy cập
- Chỉ người IP việt nam mới truy cập được vào url wp-admin website của bạn.
- Có thể chặn không truy cập trực tiếp, mà chỉ được phép truy cập từ link giới thiệu mà thôi.
- Rất nhiều và rất nhiều…
Lọc theo cách này cho phép bạn loại bỏ một cách có chọn lọc hơn lưu lượng truy cập xấu đi qua các port đã mở. hacker khó truy cập hơn vì có quá nhiều thông tin được đọc từ mỗi yêu cầu truy cập. Họ phải mất nhiều công sức hơn để qua mặt đánh lừa tường lửa.
Hạn chế của tường lửa ứng dụng web.
Vì WAF rất tiên tiến, tại sao chúng ta không sử dụng chúng làm mặc định và quên đi tường lửa lớp 3 & 4?
- Layer 7 Họ sử dụng nhiều tài nguyên hơn vì họ xử lý nhiều thông tin hơn
Mỗi một layer thì nó có ý nghĩa riêng của nó. biết là layer 7 nhìn xịn xò ấy. Nhưng không phải chỉ mình nó là đủ.
Ví dụ: tổng thống nước mỹ, cận vệ của họ người bảo vệ của họ. nếu bạn là người võ nghệ đầy mình rất pro. thì sẽ được đi gần tổng thống làm cận vệ. còn ngược lại nếu bạn võ nghệ không giỏi lắm thì ra chông xe gác cổng cho tổng thống. Không ai làm ngược lại lấy người giỏi võ đi ra gác cổng chông xe, và lấy người không giỏi võ đi làm cận vệ.
việc có nhiều layer tường lửa bảo mật không chỉ an toàn hơn mà còn tiết kiệm tài nguyên hơn nhiều.
Máy chủ WAF so với Cloud WAF
Khái niệm thì như cái tên của nó bạn đã biết:
- Máy chủ WAF là bạn có vps hoặc server bạn tự làm waf trong máy chủ của mình
- Cloud WAF bạn sử dụng dịch vụ proxy ngược như CDN cloudflare, Sucuri có support Cloud WAF
Tường lửa dựa trên cloud có nhiều lợi ích so với tường lửa dựa trên máy chủ của bạn:
- Cloud WAF Tường lửa được quản lý bởi một công ty bảo mật chuyên nghiệp chỉ ăn xong rồi nghiên cứu phát triển về bảo mật.
- Có thể xử lý các cuộc tấn công lớn hơn (được phân phối trên cụm máy chủ), trong khi máy chủ duy nhất của bạn chỉ có thể xử lý các cuộc tấn công nhỏ.
Cloud WAF cho phép bạn có được sự bảo vệ tốt nhất mà không cần phải làm gì cả. Không phải lo lắng về việc thiết lập, bảo mật hoặc độ phức tạp. Chỉ cần định tuyến lưu lượng truy cập của bạn thông qua máy chủ của họ và họ sẽ thực hiện tất cả việc lọc cho bạn. Những nhược điểm rõ ràng là chi phí và khả năng làm chậm khách hàng truy cập.
Tường lửa phổ biến (và cách chúng được sử dụng)
Tường lửa máy chủ tích hợp sẵn (iptables (Centos 5,Centos 6…), firewalld (centos 7, almalinux, rocky linux…), ufw (ubuntu, debian…):
Đây là những tường lửa mạng cơ bản (không trạng thái) được tích hợp kèm trong bản phối của hệ điều hành Linux
Ví dụ nếu muốn mở port 80 với iptables
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Ví dụ nếu muốn mở port 80 với firewalld
firewall-cmd --zone=public --add-port=80/tcp
Ví dụ nếu muốn mở port 80 với ufw
ufw allow 80
Firewall cloud nếu như bạn dùng vps của google cloud hoặc amazon Lightsail thì bạn muốn mở port hay đóng port thì phải seting trong dashboard giao diện quản trị của hãng vps này.
hay gần gũi hơn bạn truy cập bạn dùng dịch vụ internet của vnpt, viettel, fpt… bạn truy cập vào 192.168.1.1 bạn mở port và đóng port thiết lập trong router của nhà bạn.
Phần mềm tường lửa trạng thái:
Đây là những phần mềm tường lửa bổ sung mà bạn có thể cài đặt trên máy chủ của mình
- ConfigServer Security & Firewall (còn gọi là CSF) : Rất nhiều tính năng và rất mạnh mẽ, nó có thể có quá nhiều cài đặt, cái này cũng phát triển từ iptables
- Fail2ban thực tế không phải là một công cụ tường lửa nhưng nó đọc nhật ký của bạn và quản lý các quy tắc tường lửa, sử dụng các tường lửa được tích hợp sẵn của hệ điều hành như iptables hoặc firewalld của bạn để cấm IP khi vi phạm theo quy định bạn đặt ra. Đây là công cụ mình cực thích
- cPHulk nó cũng tương tự như Fail2ban
WAF dựa trên máy chủ:
Về cơ bản, đây là một tập hợp các quy tắc tường lửa ứng dụng được cấu hình sẵn được cài đặt trên máy chủ của bạn.
- Firewall 7G/8G (của Jeff Star) – một WAF phổ biến khác với các quy tắc .htaccess được tạo riêng cho WordPress. Bộ quy tắc WAF này rất nhanh, có tính bảo vệ và được tạo ra hoàn hảo dành riêng cho WordPress.
- ModSecurity – WAF mã nguồn mở miễn phí phổ biến nhất hiện có trên (dành cho Apache hoặc LiteSpeed). Các cấu hình rất đơn giản và chủ yếu dựa vào các bộ quy tắc có sẵn của các tổ chức bảo mật hiện có (chủ yếu là “OWASP” và “COMODO”). Hạn chế của ModSecurity là nó làm giảm khá khá tốc độ website của bạn và chặn lưu lượng truy cập hợp pháp đối với một số ứng dụng nhất định.
- NGINX ModSecurity WAF – đây là phiên bản ModSecurity được viết lại của NGINX. Thật không may, chỉ có sẵn với phiên bản trả phí của NGINX (còn gọi là “NGINX Plus”).
- .htaccess – không phải tường lửa mà là tệp cấu hình được Apache/LiteSpeed sử dụng để thực thi hoặc lọc các yêu cầu web theo nhiều cách khác nhau. Bạn có thể đưa ra các quy tắc vào đó để chặn một số loại và nguồn yêu cầu nhất định. Một số WAF thực sự dựa trên điều này. Bạn có thể đã thấy các hướng dẫn hoặc plugin bảo mật chỉ sao chép các dòng mã vào .htacess của mình. Htaccess có thể giống như một “WAF” thủ công. Bạn thân mình cũng rất hay dùng .htaccess để tự tạo WAF.
WAF dựa trên cloud:
WAF dựa trên đám mây cloud thường là dịch vụ miễn phí hoặc trả phí của các công ty tên tuổi. Chúng thân thiện với người dùng và không yêu cầu bất kỳ cấu hình phức tạp nào. Giao diện trực quan cho bạn cảm giác an tâm. Rất nhiều báo cáo, biểu đồ và đồ thị trực quan để cho bạn thấy tất cả các cuộc tấn công mà họ đã ngăn chặn. Và cũng là một giao diện đơn giản để bạn tạo các quy tắc tùy chỉnh nếu cần.
- Cloudflare – không chỉ là một hãng DNS tuyệt vời miễn phí và nhanh nhất mà còn là hãng CDN tuyệt vời bạn bật WAF (để bảo mật) khi dụng CDN cloudflare.
- Sucuri – công ty lớn chuyên về bảo mật rất nổi tiếng. Bạn đăng ký dịch vụ của họ và chuyển lưu lượng truy cập của bạn qua máy chủ của họ, nơi thực hiện tất cả việc lọc lưu lượng truy cập cho bạn.
- quic.cloud – là từ hãng của nhà LiteSpeed. CDN của quic cloud khá chất lượng, có cả waf cũng rất ok.
WAF dựa trên ứng dụng PHP:
Đây là các plugin bảo mật và tường lửa mà bạn thấy cho WordPress. Một số dựa trên máy chủ và chỉ cần ghi các quy tắc WAF vào tệp htaccess của bạn. Một số khác dựa trên php và thực thi các quy tắc ở cấp độ PHP.
Htaccess được chạy ở cấp máy chủ đương nhiên là nhanh hơn nhiều so với PHP. Và vâng…nếu bạn chỉ sao chép các quy tắc tương tự vào htaccess của mình, bạn sẽ không cần plugin WAF dựa trên PHP,mình không thích triển khai theo cách này vì chúng chậm hơn…nhưng chúng có thể hữu ích trên máy chủ NGINX hoặc bất kỳ môi trường share hosting mà bạn không có quyền truy cập vào cấu hình máy chủ.
Tôi cũng đưa vào một số plugin bảo mật mà thực tế chỉ là một plugin tích hợp cho WAF
- WordFence
- BBQ Firewall
- Ithemes Security
- WebARX
Mình đang sử dụng tường lửa gì?
- mình dùng fail2ban trong mọi hoạt động bình thường
- WAF thì thường mình không sử dụng, khi cảm thấy cần thiết thì tự mình viết vài rules .htaccess tận chí nếu hơi có biến căng thì mình triển khai thêm tường lửa 8G
- còn nếu bị ddos quyết liệt quá thì mình dùng waf cloudflare cdn thêm những waf tuỳ chỉnh riêng
Điều gì tạo nên một bức tường lửa tốt?
- Ngăn chặn lưu lượng truy cập xấu, đồng thời cho phép lưu lượng truy cập tốt . đừng ngược lại là được, đừng chặn truy cập tốt lại cho phép truy cập xấu.
- Tiết kiệm tài nguyên, không làm chậm máy chủ của bạn.
- Nếu dựa trên cloud waf, nó có thể xử lý các cuộc tấn công DDOS khổng lồ. Thông thường các cuộc tấn công DDOS lớn sẽ dễ dàng áp đảo các máy chủ đơn lẻ.
Tường lửa ảnh hưởng đến hiệu suất như thế nào?
- Tường lửa mạng (layer 3&4) không ảnh hưởng đến hiệu suất máy chủ. sử dụng rất ít tài nguyên.
- Nếu có bất cứ điều gì, tường lửa mạng sẽ hỗ trợ hiệu suất bằng cách đóng các cổng không cần thiết và ngăn chặn lưu lượng truy cập xấu quấy rối hoặc rút tài nguyên đến các cổng đó.
- Tường lửa WAF có thể làm chậm đáng kể máy chủ của bạn vì chúng sử dụng tài nguyên để xử lý các quy tắc tường lửa cho mọi yêu cầu bất kể lưu lượng truy cập đó tốt hay xấu.
- Tường lửa WAF, nếu không được cấu hình chính xác, thực sự có thể khiến máy chủ của bạn ngừng hoạt động hoặc phát sinh những lỗi ngớ ngẩn.
- Bất kỳ waf proxy tường lửa nào, hay cloud waf hay chính từ máy chủ của bạn, đều sẽ làm chậm tốc độ trang web của bạn.
- hiệu suất là máy chủ không có tường lửa sẽ nhanh hơn máy chủ có tường lửa. Nhưng trong các cuộc tấn công được diễn ra, máy chủ có tường lửa sẽ nhanh hơn máy chủ không có tường lửa vì nó ngăn chặn các cuộc tấn công sử dụng hết tài nguyên.
Bạn có cần tường lửa không?
Câu trả lời là không, khi bạn không bao giờ bị tấn công, thực sự vấn đề này rất hên xui không ai nói trước được điều gì, nếu bạn thấy chắc chắn là website của bạn bất kỳ ai không thèm động đến thì thôi hãy bỏ qua thì chả cần dùng tường lửa.
nếu bạn không nằm trong trường hợp trên thì:
Câu trả lời là có
Để lại một bình luận