Tường lửa

Trong điện toán, **tường lửa** hay **firewall** là một hệ thống bảo mật mạng giám sát và kiểm soát lưu lượng mạng đến và đi dựa trên các quy tắc bảo mật được xác định trước. Một tường lửa thường thiết lập một rào cản giữa một mạng nội bộ đáng tin cậy và mạng bên ngoài không tin cậy, chẳng hạn như Internet.

Tường lửa thường được phân loại thành **Tường lửa mạng** hay **tường lửa dựa trên máy chủ**. Tường lửa mạng lọc lưu lượng giữa hai hoặc nhiều mạng và chạy trên phần cứng mạng. Tường lửa dựa trên máy chủ chạy trên máy tính chủ và kiểm soát lưu lượng mạng vào và ra khỏi các máy đó. Chúng cũng được phân loại thành **tường lửa bảo vệ** để bảo vệ an ninh cho máy tính cá nhân hay mạng cục bộ, tránh sự xâm nhập, tấn công từ bên ngoài và **tường lửa ngăn chặn** thường do các nhà cung cấp dịch vụ Internet thiết lập và có nhiệm vụ ngăn chặn không cho máy tính truy cập một số trang web hay máy chủ nhất định, thường dùng với mục đích kiểm duyệt Internet.

## Lịch sử
Thuật ngữ tường lửa ban đầu đề cập đến một bức tường nhằm mục đích hạn chế đám cháy trong tòa nhà. Việc sử dụng sau này đề cập đến các cấu trúc tương tự, chẳng hạn như tấm kim loại ngăn cách khoang động cơ của một chiếc xe hoặc máy bay từ khoang hành khách. Thuật ngữ này được áp dụng vào cuối những năm 1980 cho công nghệ mạng xuất hiện khi Internet còn khá mới về mặt sử dụng và kết nối toàn cầu. Tiền thân của tường lửa bảo mật mạng là các bộ định tuyến được sử dụng vào cuối những năm 1980, vì chúng tách các mạng với nhau, do đó ngăn chặn sự lây lan của các vấn đề từ mạng này sang mạng khác.

### Thế hệ thứ nhất: bộ lọc gói tin

Loại tường lửa mạng được báo cáo đầu tiên được gọi là bộ lọc gói tin. Bộ lọc gói hoạt động bằng cách kiểm tra các gói được chuyển giữa các máy tính. Khi gói không khớp với bộ quy tắc lọc của bộ lọc gói, bộ lọc gói sẽ bỏ (loại bỏ âm thầm) gói hoặc từ chối gói (loại bỏ nó và tạo thông báo Internet Control Message Protocol cho người gửi) ngược lại thì nó được phép vượt qua. Các gói có thể được lọc theo địa chỉ mạng nguồn và đích, giao thức, số cổng nguồn và đích. Phần lớn giao tiếp Internet trong thế kỷ 20 và đầu thế kỷ 21 đã sử dụng Transmission Control Protocol (TCP) hoặc User Datagram Protocol (UDP) kết hợp với các cổng phổ biến, cho phép tường lửa thời kỳ đó phân biệt và do đó kiểm soát các loại cụ thể của lưu lượng truy cập (như duyệt web, in từ xa, truyền email, truyền file), trừ khi các máy ở mỗi bên của bộ lọc gói sử dụng cùng một cổng không chuẩn.

Bài báo đầu tiên được xuất bản về công nghệ tường lửa là vào năm 1988, khi các kỹ sư của Digital Equipment Corporation (DEC) phát triển các hệ thống lọc được gọi là tường lửa lọc gói tin. Tại AT&T Bell Labs, Bill Cheswick và Steve Bellovin tiếp tục nghiên cứu về lọc gói và phát triển một mô hình làm việc cho công ty riêng của họ dựa trên kiến trúc thế hệ đầu tiên của họ.

Ý tưởng đầu tiên được đã hình thành sau khi hàng loạt các vụ xâm phạm nghiêm trọng đối với an ninh liên mạng xảy ra vào cuối những năm 1980. Năm 1988, một nhân viên tại trung tâm nghiên cứu NASA Ames tại California gửi một bản ghi nhớ qua thư điện tử tới đồng nghiệp rằng: "Chúng ta đang bị một con VIRUS Internet tấn công! Nó đã đánh Berkeley, UC San Diego, Lawrence Livermore, Stanford, và NASA Ames." Con virus được biết đến với tên Sâu Morris này đã được phát tán qua thư điện tử và khi đó đã là một sự khó chịu chung ngay cả đối với những người dùng vô thưởng vô phạt nhất. Sâu Morris là cuộc tấn công diện rộng đầu tiên đối với an ninh Internet. Cộng đồng mạng đã không hề chuẩn bị cho một cuộc tấn công như vậy và đã hoàn toàn bị bất ngờ. Sau đó, cộng đồng Internet đã quyết định rằng ưu tiên tối cao là phải ngăn chặn không cho một cuộc tấn công bất kỳ nào nữa có thể xảy ra, họ bắt đầu cộng tác đưa ra các ý tưởng mới, những hệ thống và phần mềm mới để làm cho mạng Internet có thể trở lại an toàn.

Năm 1988, bài báo đầu tiên về công nghệ tường lửa được công bố, khi Jeff Mogul thuộc Digital Equipment Corp. phát triển các hệ thống lọc đầu tiên được biết đến với tên các tường lửa lọc gói tin. Hệ thống khá cơ bản này đã là thế hệ đầu tiên của cái mà sau này sẽ trở thành một tính năng kỹ thuật an toàn mạng được phát triển cao. Từ năm 1980 đến năm 1990, hai nhà nghiên cứu tại phòng thí nghiệm AT&T Bell, Dave Presetto và Howard Trickey, đã phát triển thế hệ tường lửa thứ hai, được biến đến với tên các tường lửa tầng mạch (*circuit level firewall*). Các bài báo của Gene Spafford ở Đại học Purdue, Bill Cheswick ở phòng thí nghiệm AT&T và Marcus Ranum đã mô tả thế hệ tường lửa thứ ba, với tên gọi tường lửa tầng ứng dụng (*application layer firewall*), hay tường lửa dựa proxy (*proxy-based firewall*). Nghiên cứu công nghệ của Marcus Ranum đã khởi đầu cho việc tạo ra sản phẩm thương mại đầu tiên. Sản phẩm này đã được Digital Equipment Corporation's (DEC) phát hành với tên SEAL. Đợt bán hàng lớn đầu tiên của DEC là vào ngày 13 tháng 9 năm 1991 cho một công ty hóa chất tại bờ biển phía Đông của Mỹ.

Tại AT&T, Bill Cheswick và Steve Bellovin tiếp tục nghiên cứu của họ về lọc gói tin và đã phát triển một mô hình chạy được cho công ty của chính họ, dựa trên kiến trúc của thế hệ tường lửa thứ nhất của mình. Năm 1992, Bob Braden và Annette DeSchon tại Đại học Nam California đã phát triển hệ thống tường lửa lọc gói tin thế hệ thứ tư. Sản phẩm có tên "Visas" này là hệ thống đầu tiên có một giao diện với màu sắc và các biểu tượng, có thể dễ dàng cài đặt thành phần mềm cho các hệ điều hành chẳng hạn Microsoft Windows và Mac/OS của Apple và truy nhập từ các hệ điều hành đó. Năm 1994, một công ty Israel có tên Check Point Software Technologies đã xây dựng sản phẩm này thành một phần mềm sẵn sàng cho sử dụng, đó là FireWall-1. 
Một thế hệ thứ hai của các tường lửa proxy đã được dựa trên công nghệ Kernel Proxy. Thiết kế này liên tục được cải tiến nhưng các tính năng và mã chương trình cơ bản hiện đang được sử dụng rộng rãi trong cả các hệ thống máy tính gia đình và thương mại. Cisco, một trong những công ty an ninh mạng lớn nhất trên thế giới đã phát hành sản phẩm này năm 1997.

Thế hệ FireWall-1 mới tạo thêm hiệu lực cho động cơ kiểm tra sâu gói tin bằng cách chia sẻ chức năng này với một hệ thống ngăn chặn xâm nhập.

## Các loại tường lửa
Có ba loại tường lửa cơ bản tùy theo:
* Truyền thông được thực hiện giữa một nút đơn và mạng, hay giữa một số mạng.
* Truyền thông được chặn tại tầng mạng, hay tại tầng ứng dụng.
* Tường lửa có theo dõi trạng thái của truyền thông hay không.

Phân loại theo phạm vi của các truyền thông được lọc, có các loại sau:
* Tường lửa cá nhân hay tường lửa máy tính, một ứng dụng phần mềm với chức năng thông thường là lọc dữ liệu ra vào một máy tính đơn.
* Tường lửa mạng, thường chạy trên một thiết bị mạng hay máy tính chuyên dụng đặt tại ranh giới của hai hay nhiều mạng hoặc các khu phi quân sự (mạng con trung gian nằm giữa mạng nội bộ và mạng bên ngoài). Một tường lửa thuộc loại này lọc tất cả truyền thông dữ liệu vào hoặc ra các mạng được kết nối qua nó.

Loại tường lửa mạng tương ứng với ý nghĩa truyền thống của thuật ngữ "tường lửa" trong ngành mạng máy tính.

Khi phân loại theo các tầng giao thức nơi giao thông dữ liệu có thể bị chặn, có ba loại tường lửa chính:
* Tường lửa tầng mạng. Ví dụ iptables.
* Tường lửa tầng ứng dụng. Ví dụ TCP Wrappers.
* Tường lửa ứng dụng. Ví dụ: hạn chế các dịch vụ ftp bằng việc định cấu hình tại tệp `/etc/ftpaccess`.
Các loại tường lửa tầng mạng và tường lửa tầng ứng dụng thường trùm lên nhau, mặc dù tường lửa cá nhân không phục vụ mạng, nhưng một số hệ thống đơn đã cài đặt chung cả hai.

Cuối cùng, nếu phân loại theo tiêu chí rằng tường lửa theo dõi trạng thái của các kết nối mạng hay chỉ quan tâm đến từng gói tin một cách riêng rẽ, có hai loại tường lửa:
* Tường lửa có trạng thái (*Stateful firewall*)
* Tường lửa phi trạng thái (*Stateless firewall*)

## Lý do sử dụng tường lửa
Mạng internet ngày càng phát triển và phổ biến rộng khắp mọi nơi, lợi ích của nó rất lớn. Tuy nhiên cũng có rất nhiều ngoại tác không mong muốn đối với các cá nhân là cha mẹ hay tổ chức, doanh nghiệp, cơ quan nhà nước... như các trang web không phù hợp lứa tuổi, nhiệm vụ, lợi ích, đạo đức, pháp luật hoặc trao đổi thông tin bất lợi cho cá nhân, doanh nghiệp... Do vậy họ (các cá nhân, tổ chức, cơ quan và nhà nước) sử dụng tường lửa để ngăn chặn.

Tường lửa đóng vai trò rất quan trọng để ngăn chặn các thành phần nguy hiểm như hacker, sâu, hay các loại virus trước khi chúng có thể xâm nhập vào máy tính của ta.

## Tường lửa bảo vệ

Tường lửa mang đến nhiều tác dụng có lợi cho hệ thống máy tính. Cụ thể:

* Tường lửa ngăn chặn các truy cập trái phép vào mạng riêng. Nó hoạt động như người gác cửa, kiểm tra tất cả dữ liệu đi vào hoặc đi ra từ mạng riêng. Khi phát hiện có bất kỳ sự truy cập trái phép nào thì nó sẽ ngăn chặn, không cho traffic đó tiếp cận đến mạng riêng.
* Tường lửa giúp chặn được các cuộc tấn công mạng.
* Firewall hoạt động như chốt chặn kiểm tra an ninh. Bằng cách lọc thông tin kết nối qua internet vào mạng hay máy tính cá nhân. 
* Dễ dàng kiểm soát các kết nối vào website hoặc hạn chế một số kết nối từ người dùng mà doanh nghiệp không mong muốn. 
* Bạn có thể tùy chỉnh tường lửa theo nhu cầu sử dụng. Bằng cách thiết lập các chính sách bảo mật phù hợp.

## Tường lửa ngăn chặn

### Các ngoại tác không mong muốn
- Các ngoại tác không mong muốn thường là "đồi trụy", gợi dục (sex, khiêu dâm), chống đối chế độ, (chính trị, "phản động" hay bất đồng chính kiến) hoặc các liên lạc, giao dịch với đối thủ cạnh tranh gây ra cho đối tượng người dùng được cho là không phù hợp tiếp cận, như là một hình thức kiểm duyệt internet.

### Cách thức ngăn chặn
- Để ngăn chặn các trang web không mong muốn, các trao đổi thông tin không mong muốn, người ta dùng cách lọc các địa chỉ web không mong muốn mà họ đã tập hợp được hoặc lọc nội dung thông tin trong các trang thông qua các từ khóa để ngăn chặn những người dùng không mong muốn truy cập vào mạng và cho phép người dùng hợp lệ thực hiện việc truy xuất.

- Bức tường lửa có thể là một thiết bị định hướng (Router, một thiết bị kết nối giữa hai hay nhiều mạng và chuyển các thông tin giữa các mạng này) hay trên một máy chủ (Server), bao gồm phần cứng và/hoặc phần mềm nằm giữa hai mạng (chẳng hạn mạng Internet và mạng cục bộ, mạng liên kết các gia đình, điểm kinh doanh internet, tổ chức, công ty, hệ thống Ngân hàng, cơ quan nhà nước).

- Cơ quan nhà nước có thể lập bức tường lửa ngay từ cổng Internet quốc gia hoặc yêu cầu các nhà cung cấp dịch vụ đường truyền (IXP) và nhà cung cấp dịch vụ Internet (ISP) thiết lập hệ thống tường lửa hữu hiệu hoặc yêu cầu các đại lý kinh doanh internet thực hiện các biện pháp khác.

### Nhược điểm khi sử dụng tường lửa
* Sử dụng tường lửa cần phải xử lý một lượng lớn thông tin nên việc xử lý lọc thông tin có thể làm chậm quá trình kết nối của người kết nối.
* Việc sử dụng tường lửa chỉ hữu hiệu đối với những người không thành thạo kỹ thuật vượt tường lửa, những người sử dụng khác có hiểu biết có thể dễ dàng vượt qua tường lửa bằng cách sử dụng các proxy không bị ngăn chặn.

### Cách vượt tường lửa ngăn chặn

Các trang web bị chặn nhất là các trang web sex thường rất linh động thay đổi địa chỉ để tránh sự nhận diện hoặc nhanh chóng thông báo địa chỉ mới một cách hạn chế với các đối tượng dùng đã định.
Người dùng ở các nước có hệ thống tường lửa ngăn chặn có thể tiếp cận với nội dung bị chặn qua các ngõ khác bằng cách thay đổi địa chỉ Proxy, DNS hoặc qua vùng nhớ đệm (cache) của trang tìm kiếm thông dụng như Google, Yahoo..., hoặc sử dụng phần mềm miễn phí Tor, Freegate. Nói chung người dùng mạng hiểu biết nhiều về máy tính thì biết nhiều kỹ xảo vượt tường lửa.

## Xem thêm

* Access control list
* Air gap (networking)
* Bastion host
* Comparison of firewalls
* Computer security
* De-perimeterisation
* Distributed firewall
* Egress filtering
* End-to-end principle
* Firewall pinhole
* Firewalls and Internet Security
* Golden Shield Project
* Guard (information security)
* Identity-based security
* IP fragmentation attacks
* List of Unix-like router or firewall distributions
* Mangled packet
* 
* Next-Generation Firewall
* Personal firewall
* Screened subnet
* Unidirectional network
* Virtual firewall
* Vulnerability scanner
* Windows Firewall

## Chú thích

## Liên kết ngoài

* Internet Firewalls: Frequently Asked Questions, compiled by Matt Curtin, Marcus Ranum and Paul Robertson.
* Firewalls Aren’t Just About Security  – Cyberoam Whitepaper focusing on Cloud Applications Forcing Firewalls to Enable Productivity.
* Evolution of the Firewall Industry – Discusses different architectures and their differences, how packets are processed, and provides a timeline of the evolution.
* A History and Survey of Network Firewalls  – provides an overview of firewalls at the various ISO levels, with references to the original papers where first firewall work was reported.
* Software Firewalls: Made of Straw? Part 1 and Software Firewalls: Made of Straw? Part 2  – a technical view on software firewall design and potential weaknesses
* Why the Future of Firewall Security will be Context-Based  – GajShield Whitepaper providing an insight on how Context based security will empower the future of firewall security.