IPtables là gì? Chắc hẳn bạn đã từng nghe qua thuật ngữ này nếu đang hoạt động trong lĩnh vực lập trình. IPtables đáp ứng điều kiện bảo mật mạng lưới dữ liệu an toàn tuyệt đối trên internet. Cũng vì điều đó mà nó có thể trở thành hệ thống tường lửa được nhiều người tin dùng. Mời bạn khám phá những kiến thức hay về IPtables thông qua những chia sẻ bên dưới.
Giới thiệu khái quát về công nghệ IPtables
IPtables là gì?
IPtables là một công cụ quản lý tường lửa trong hệ thống Linux. Nền tảng cho phép người dùng quản lý và điều khiển luồng dữ liệu trên mạng bằng cách thiết lập các quy tắc và chính sách bảo mật dựa trên địa chỉ IP, giao thức, cổng và các tiêu chí khác.
IPtables hoạt động dựa trên việc kiểm tra và xử lý các gói tin dữ liệu khi chúng di chuyển qua hệ thống mạng. Người dùng có thể sử dụng IPtables để thiết lập các quy tắc cho việc chặn, chuyển hướng hoặc cho phép các gói tin dữ liệu dựa trên nhiều yếu tố khác nhau.
Trên hệ thống IPtables hỗ trợ người dùng tạo và quản lý các chains (chuỗi) và rules (quy tắc) để kiểm soát việc truy cập mạng. Công cụ này cung cấp cơ chế hoạt động linh hoạt để thực hiện các điều kiện bảo mật mạng. Đồng thời, nền tảng còn là một phần quan trọng của việc bảo vệ hệ thống mạng trong môi trường Linux.
Iptables có mấy thành phần?
- Tables (Bảng): IPtables sử dụng bốn bảng chính để tổ chức các quy tắc và quản lý gói tin dữ liệu. Các bảng bao gồm:
- Raw: Cho phép thay đổi các header của gói tin.
- Filter: Sử dụng để quyết định liệu gói tin có được chấp nhận, từ chối hoặc chuyển hướng.
- NAT: Sử dụng để thực hiện Network Address Translation (NAT), cho phép chuyển đổi địa chỉ IP và cổng.
- Mangle: Cho phép thay đổi các header của gói tin với các quy tắc chuyên biệt.
Chains (Chuỗi)
Các chain trong IPtables đóng vai trò quan trọng trong quyết định cách thức xử lý các gói tin dữ liệu khi chúng di chuyển qua hệ thống mạng. Dưới đây giới thiệu cơ sở ứng dụng các chains chính trong IPtables:
- INPUT chain (Chuỗi INPUT): Chuỗi này được áp dụng cho tất cả các gói tin dữ liệu đang vào hệ thống từ mạng bên ngoài. Nền tảng quyết định xem liệu các gói tin này có được chấp nhận (ACCEPT) và điều hướng tới ứng dụng đích, hoặc bị từ chối (DROP/REJECT). Các quy tắc trong chain này thường kiểm tra địa chỉ nguồn, cổng đích và giao thức.
- OUTPUT chain (Chuỗi OUTPUT): Được áp dụng cho các gói tin dữ liệu đi ra từ hệ thống tới mạng bên ngoài. Tại đây, quy tắc được thực hiện để quyết định liệu gói tin được chấp nhận và gửi đi, hoặc bị từ chối.
- FORWARD chain (Chuỗi FORWARD): Chuỗi này xử lý các gói tin dữ liệu chuyển tiếp qua hệ thống. Điều này có nghĩa là nền tảng không tiến hành giao dịch trực tiếp giữa hệ thống và mạng bên ngoài. Forward chain thường được sử dụng trong các cấu hình máy chủ định tuyến hoặc cấu hình máy chủ chuyển tiếp.
- PREROUTING chain (Chuỗi PREROUTING): Đây là một chuỗi được áp dụng trong quá trình xử lý gói tin trước khi nó được định tuyến. Công cụ thường được sử dụng trong các trường hợp NAT (Network Address Translation) để thay đổi địa chỉ IP hoặc cổng nguồn của gói tin.
- POSTROUTING chain (Chuỗi POSTROUTING): Chuỗi này thường được áp dụng trong quá trình xử lý gói tin sau khi nó đã được định tuyến. Nền tảng thường được sử dụng trong các trường hợp NAT để thay đổi địa chỉ IP hoặc cổng đích của gói tin.
Targets (Mục tiêu)
Các mục tiêu (targets) trong IPtables biểu thị hành động cụ thể mà một gói tin sẽ thực hiện khớp với một quy tắc trong chains. Bạn có thể tìm hiểu những mục tiêu chính trong IPtables như sau:
- ACCEPT: Mục tiêu này cho phép gói tin được chấp nhận và chuyển tiếp trong hệ thống mạng. Nền tảng cấp phép cho gói tin theo quy tắc được xác định.
- DROP: Khi mục tiêu được đặt là DROP, gói tin sẽ bị từ chối mà không phản hồi cho người gửi. Điều này có nghĩa là gói tin sẽ bị loại bỏ một cách im lặng và không được xuất khẩu ra ngoài mạng.
- REJECT: Mục tiêu này tương tự như DROP nhưng công cụ sẽ gửi một tin nhắn báo lỗi trở lại cho người gửi. Điều này thông báo rằng gói tin đã bị từ chối và không được chấp nhận.
- DNAT (Destination Network Address Translation): Mục tiêu này cho phép thay đổi địa chỉ đích của gói tin khi nó đi qua tường lửa. Nền tảng thường được sử dụng trong các tình huống NAT để chuyển hướng gói tin đến một địa chỉ đích mới.
- SNAT (Source Network Address Translation): Mục tiêu này cho phép thay đổi địa chỉ nguồn của gói tin khi nó đi qua tường lửa. SNAT được ứng dụng trong các tình huống NAT để chuyển đổi địa chỉ IP nguồn.
- MIRROR: Mục tiêu này cho phép sao chép và gửi gói tin đến một địa chỉ khác trong mạng. Công nghệ cho phép theo dõi và kiểm tra gói tin một cách song song với quá trình xử lý thông thường.
Rules (Quy tắc)
Bộ quy tắc IPtables là các điều kiện được xác định để quyết định cách thức xử lý gói tin dữ liệu. Người dùng có thể cân nhắc một số quy tắc cụ thể dưới đây:
- Địa chỉ IP nguồn và đích: Các quy tắc có thể được xác định dựa vào địa chỉ IP nguồn và/hoặc đích của gói tin. Điều này cho phép quản trị mạng thiết lập các chính sách dựa trên nguồn và đích của dữ liệu
- Cổng giao thức: Quy tắc có thể được áp dụng dựa vào cổng sử dụng trong giao thức (TCP, UDP, ICMP, vv.). Hệ thống quản trị mạng kiểm soát truy cập dựa trên loại giao thức và cổng sử dụng.
- Mục tiêu (target): Quy tắc cũng định nghĩa mục tiêu xử lý của gói tin, tức là hành động cụ thể sẽ được thực hiện khi gói tin khớp với quy tắc. Các mục tiêu bao gồm ACCEPT, DROP, REJECT, DNAT, SNAT, và MIRROR.
- Chuỗi (chain): Quy tắc còn phải xác định chuỗi mà nó sẽ áp dụng, tức là nó sẽ được kiểm tra trong chuỗi INPUT, OUTPUT, FORWARD hoặc các chuỗi tùy chỉnh khác.
- Thời gian: Các quy tắc cũng có thể áp dụng hoặc không áp dụng theo định dạng thời gian nhất quán, chẳng hạn như thời gian cụ thể trong ngày, tuần hoặc tháng.
Khám phá cấu hình cơ bản của IPtables
Cấu hình IPtables cơ bản là gì? Trên phương diện cấu hình, IPtables thiết lập và quản lý các bảng và quy tắc trong kernel Linux để lọc và xử lý các gói tin mạng. Quá trình cho phép người dùng tạo ra các bảng và chuỗi quy tắc để quyết định xem các gói tin sẽ được xử lý như thế nào dựa trên các tiêu chí như địa chỉ IP, giao thức và cổng.
Mỗi quy tắc trong IPtables định nghĩa cách thức xử lý gói tin khi chúng khớp với điều kiện được xác định trong quy tắc đó. Quy tắc này có thể quyết định liệu gói tin sẽ được chấp nhận, từ chối, chuyển hướng hoặc thực hiện các hành động khác tùy thuộc vào yêu cầu bảo mật cụ thể của mạng.
Việc sử dụng IPtables để cấu hình tường lửa mạng cho phép người dùng tùy chỉnh các quy tắc bảo mật. Bên cạnh đó, người dùng có thể kiểm soát luồng dữ liệu mạng một cách linh hoạt và chính xác hơn trong môi trường Linux.
Cập nhật các rules trong IPtables
Các rules trong IPtables là các điều kiện xác định cách thức xử lý gói tin dữ liệu. Dưới đây giới thiệu các dạng rules trong nền tảng để bạn tham khảo:
- Địa chỉ IP nguồn và đích: Các rules có thể được xác định dựa vào địa chỉ IP nguồn và/hoặc đích của gói tin. Điều này cho phép quản trị mạng thiết lập chính sách dựa trên nguồn và đích của dữ liệu.
- Cổng và giao thức: Rules có thể áp dụng dựa vào cổng và giao thức sử dụng trong giao thức (TCP, UDP, ICMP).
- Mục tiêu (target): Rules cũng định nghĩa mục tiêu xử lý gói tin, tức là hành động cụ thể được thực hiện khi gói tin khớp với rule. Các mục tiêu bao gồm ACCEPT, DROP, REJECT, DNAT, SNAT, và MIRROR.
- Chuỗi (chain): Rules cũng phải xác định chuỗi mà chúng sẽ áp dụng, tức là chúng sẽ được kiểm tra trong chuỗi INPUT, OUTPUT, FORWARD hoặc các chuỗi tùy chỉnh khác.
- Thời gian: Các rules có thể áp dụng hoặc không áp dụng theo định dạng thời gian nhất định.
Phân tích những tùy chọn của IPtables
Tùy chọn để chỉ định thông số IPtables
Một số tùy chọn phổ biến để chỉ định thông số trong IPtables bao gồm:
- -p, --protocol: Cho phép bạn chỉ định giao thức dữ liệu (ví dụ: tcp, udp, icmp).
- -s, --source: Được sử dụng để xác định địa chỉ IP nguồn của gói tin.
- -d, --destination: Xác định địa chỉ IP đích cho gói tin.
- --sport: Chỉ định cổng nguồn (port number) của gói tin.
- --dport: Xác định cổng đích (port number) của gói tin.
- -j, --jump: Chỉ định mục tiêu xử lý sau khi gói tin khớp với quy tắc (ví dụ: ACCEPT, DROP).
- -i, --in-interface: Xác định interface đầu vào mà gói tin sử dụng.
- -o, --out-interface: Được sử dụng để xác định interface đầu ra cho gói tin.
Tùy chọn để thao tác với chain trong IPtables
Các tùy chọn phổ biến để thao tác với các chain trong IPtables bao gồm:
- -A, --append: Thêm một rule vào cuối của chain.
- -I, --insert: Chèn một rule vào vị trí cụ thể trong chain.
- -D, --delete: Xóa một rule khỏi chain.
- -R, --replace: Thay thế một rule trong chain bằng rule mới.
- -N, --new-chain: Tạo một chain mới.
- -X, --delete-chain: Xóa một chain khỏi bảng.
- -P, --policy: Thiết lập chính sách mặc định cho một chain.
- -E, --rename-chain: Đổi tên cho một chain.
Tùy chọn để thao tác với rule trong IPtables
Các tùy chọn thao tác với rules trong IPtables bao gồm:
- -A, --append: Thêm một rule vào cuối của chain.
- -I, --insert: Chèn một rule vào vị trí cụ thể trong chain.
- -D, --delete: Xóa một rule khỏi chain.
- -R, --replace: Thay thế một rule trong chain bằng rule mới.
- -C, --check: Kiểm tra xem gói tin có khớp với rule của chain hay không.
- -L, --list: Liệt kê các rule trong chain.
- -F, --flush: Xóa tất cả các rule trong chain.
- -Z, --zero: Reset bộ đếm cho tất cả các rule hoặc một rule cụ thể.
- -N, --new: Tạo ra một user-defined chain mới.
- -X, --delete-chain: Xóa một user-defined chain.
Tạm kết
Toàn bộ kiến thức trong bài viết trên đã giúp bạn đọc hiểu IPtables là gì? Bên cạnh đó, FPT Shop còn cập nhật hàng loạt phương thức sử dụng tường lửa với mục tiêu kiểm soát quyền truy cập. Hy vọng bạn sẽ áp dụng kiến thức hiệu quả trong quá trình quản lý công việc của mình.
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty








