Võ Nguyên Thoại
Contents
- 1. IPtables là gì?
- 2. Các thành phần chính trong IPtables
- 3. Tại sao nên sử dụng IPtables?
- 4. Cách cấu hình cơ bản trong IPtables
- 5. Các tùy chọn trong IPtables
- 6. Một số lệnh cơ bản trong IPtables
- 7. Hướng dẫn cách sử dụng IPtables để mở Port VPS
- 8. Hướng dẫn thiết lập IPtables với Linux Firewall chi tiết
Sự phát triển không ngừng của các cuộc tấn công mạng khiến việc bảo vệ hệ thống máy chủ trở thành một nhiệm vụ “sống còn” đối với các nhà quản trị. Từ việc chặn lưu lượng truy cập không mong muốn đến bảo vệ chống lại các mối đe dọa từ bên ngoài, IPtables mang lại sự linh hoạt và kiểm soát mạnh mẽ cho người dùng. Trong bài viết này, MONA Host sẽ giúp bạn tìm hiểu IPtables là gì, các bước chi tiết để cấu hình Iptables trên Ubuntu nhằm tăng cường bảo mật hệ thống Linux Firewall của bạn một cách hiệu quả nhất.
IPtables là gì?
IPtables là một công cụ quản lý tường lửa mạnh mẽ trên hệ điều hành Linux, cho phép người dùng kiểm soát lưu lượng mạng vào ra thông qua việc tạo ra các quy tắc cụ thể. Việc sử dụng IPtables giúp tăng cường an ninh mạng, ngăn chặn các truy cập trái phép và bảo vệ hệ thống khỏi các mối đe dọa tiềm ẩn.
IPtables được tích hợp sẵn trong hầu hết các bản phân phối Linux phổ biến như Ubuntu, Debian, và CentOS, giúp người dùng dễ dàng quản lý các chính sách bảo mật mạng của mình.
Các thành phần chính trong IPtables
IPtables hoạt động dựa trên ba thành phần chính, bao gồm Tables (bảng chứa các quy tắc lọc gói tin), Chains (chuỗi các quy trình kiểm tra), và Targets (hành động cụ thể sau khi gói tin được kiểm tra). Dưới đây là mô tả chi tiết về các thành phần cơ bản trong IPtables.
Bạn có thể thiết lập nhiều bảng khác nhau, mỗi bảng có thể chứa nhiều chuỗi, mỗi một chuỗi là một bộ quy tắc.
Tables trong IPtables
Các Tables (bảng) trong IPtables đóng vai trò quan trọng trong việc quản lý và xử lý gói tin mạng thông qua các quy tắc định trước. Mỗi bảng trong hệ thống này đảm nhận một chức năng cụ thể để đảm bảo sự bảo mật và hiệu quả cho mạng lưới.
- Filter Table: Bảng Filter là bảng phổ biến nhất và được sử dụng trong hầu hết các hoạt động của IPtables. Chức năng chính của bảng này là kiểm tra và quyết định liệu các gói tin có được phép tiếp tục đến đích hay bị chặn lại. Nó đảm bảo rằng chỉ những gói tin hợp lệ mới được chuyển tiếp.
- NAT Table: Bảng NAT chịu trách nhiệm quản lý việc chuyển đổi thông tin địa chỉ nguồn và đích của gói tin. Với bảng này, hệ thống có thể điều chỉnh địa chỉ IP và cổng một cách linh hoạt, cho phép các gói tin được định tuyến một cách chính xác hơn trong mạng. Điều này đặc biệt hữu ích khi quản lý luồng dữ liệu vào ra mạng nội bộ.
- Mangle Table: Mangle là bảng được sử dụng khi cần thay đổi các thông số trong header của gói tin. Bảng này cho phép điều chỉnh các giá trị như TTL (Time to Live) hay các thiết lập dịch vụ mạng khác. Bảng này đặc biệt hữu ích khi cần tối ưu hóa hiệu suất mạng hoặc cấu hình các chính sách xử lý gói tin phức tạp hơn.
- Raw Table: Bảng Raw trong IPtables được thiết kế để xử lý các gói tin trước khi các quy tắc theo dõi trạng thái được áp dụng. Cho phép người dùng quyết định xem các gói tin có cần được theo dõi hay không, giúp giảm tải cho hệ thống và tối ưu hóa hiệu năng xử lý.
- Security Table: Bảng Security được sử dụng để thiết lập các chính sách bảo mật thông qua các hệ thống như Linux. Nó giúp tạo ra một lớp bảo mật bổ sung, ngăn chặn những gói tin không mong muốn xâm nhập vào mạng, đảm bảo sự an toàn cho hệ thống.
Chains trong IPtables
Chains trong IPtables là những khối lệnh quyết định cách xử lý gói tin, có vai trò quan trọng cho quá trình điều hướng và bảo mật hệ thống mạng. Mỗi bảng trong IPtables như Filter Table, Mangle Table hay Nat Table đều chứa các chuỗi (Chain) với chức năng riêng biệt, cụ thể là:
- Trong Mangle Table và Nat Table, Chain PREROUTING xử lý gói tin ngay khi nó được nhận từ giao diện mạng.
- Chain INPUT xuất hiện tại bảng Mangle Table và Nat Table, đảm bảo việc thực thi các quy tắc trước khi gói tin được tiếp nhận vào hệ thống.
- Chain OUTPUT tồn tại trong Filter Table, Raw Table và Mangle Table, chịu trách nhiệm xử lý các gói tin được tạo ra từ chính tiến trình của hệ thống.
- Chain FORWARD được sử dụng trong Mangle Table và Filter Table để xử lý các gói tin được chuyển tiếp qua hệ thống bằng cách áp dụng các quy tắc định tuyến.
- Cuối cùng, Chain POSTROUTING tồn tại ở bảng Mangle Table và Nat Table để đảm bảo các quy tắc được thực thi khi gói tin rời khỏi hệ thống giao diện mạng, sau khi hoàn thành quá trình xử lý.
Target trong IPtables
Target trong IPtables đại diện cho hành động mà hệ thống sẽ thực hiện đối với gói tin khi chúng thỏa mãn điều kiện của các quy tắc đã được thiết lập trước đó. Các Target phổ biến trong IPtables bao gồm:
- ACCEPT: Chấp nhận gói tin và cho phép nó tiếp tục đi qua hệ thống.
- DROP: Loại bỏ gói tin mà không cần gửi phản hồi.
- REJECT: Loại bỏ gói tin và gửi phản hồi tới nguồn phát.
- LOG: Ghi lại thông tin của gói tin vào nhật ký hệ thống.
Target quyết định cách hệ thống xử lý các gói tin khi chúng đi qua tất cả các quy tắc đã đặt mà không gặp phải sự gián đoạn nào.
Tại sao nên sử dụng IPtables?
Khi nhắc đến tường lửa, nhiều người thường tìm đến các giải pháp đơn giản, dễ sử dụng như firewalld hoặc ufw. Tuy nhiên, sự đơn giản của chúng cũng hạn chế tính linh hoạt và không khai thác hết tiềm năng mà iptables mang lại như:
- Tính năng toàn diện: iptables là một công cụ mạnh mẽ, cung cấp cho người dùng đầy đủ các chức năng cần thiết để quản lý lưu lượng mạng.
- Linh hoạt trong xử lý packet: So với firewalld và ufw, iptables cho phép xử lý các packet một cách linh hoạt hơn, giúp người dùng thực hiện nhiều thao tác phức tạp như NAT, ghi log và chuyển tiếp.
- Khả năng sáng tạo: Làm việc với iptables cho phép người dùng tự do xây dựng các kịch bản tường lửa tùy chỉnh kết hợp cùng việc thiết lập các quy tắc, đảm bảo cấu hình hệ thống được bảo mật theo cách hiệu quả nhất.
- Trải nghiệm thực tế: Sử dụng iptables giúp bạn nắm bắt và áp dụng chi tiết những quy tắc về quản lý cũng như bảo mật hệ thống. Hiểu rõ cách chúng hoạt động, dễ dàng kiểm soát, điều chỉnh và kiểm soát toàn diện các quy tắc bảo mật hệ thống.
Cách cấu hình cơ bản trong IPtables
Khi thiết lập tường lửa với IPtables, người dùng cần thực hiện một số cấu hình cơ bản để đảm bảo an toàn cho hệ thống. IPtables cho phép người dùng quản lý lưu lượng mạng bằng cách sử dụng các quy tắc cụ thể để xác định hành động đối với các gói tin. Người dùng có thể dễ dàng cấu hình các quy tắc này thông qua dòng lệnh.
Mỗi quy tắc trong IPtables bao gồm một chuỗi và một mục tiêu tương ứng. Nghĩa là người dùng có thể thiết lập các quy tắc để cho phép, từ chối hoặc ghi lại các gói tin. Các mục tiêu phổ biến bao gồm:
- ACCEPT: Cho phép gói tin tiếp tục đến đích của nó.
- DROP: Từ chối gói tin mà không thông báo cho bên gửi.
- LOG: Ghi lại gói tin để phân tích sau.
Các tùy chọn trong IPtables
Công cụ IPtables mang đến nhiều tùy chọn phong phú, giúp người dùng thực hiện các tác vụ quản lý tường lửa một cách hiệu quả. Mỗi tùy chọn này không chỉ tạo điều kiện thuận lợi cho việc cấu hình mà còn đảm bảo an ninh cho hệ thống.
Tùy chọn cài đặt thông số IPtables
Các tùy chọn được phân loại rõ ràng theo từng loại khác nhau. Tùy chọn để chỉ định các thông số cho IPtables là một trong những yếu tố cực kỳ quan trọng. Do đó, chi tiết thực hiện các tùy chọn chỉ định thông số như sau:
- Chỉ định tên Table: -t
- Chỉ định loại giao thức: -p
- Chỉ định card mạng vào: -i
- Chỉ định card mạng ra: -o
- Chỉ định IP nguồn: -s <địa_chỉ_ip_nguồn>
- Chỉ định IP đích: -d <địa_chỉ_ip_dích>
- Chỉ định cổng nguồn: -sport
- Chỉ định cổng đích: -dport
Tùy chọn thao tác với chain
Trong công cụ này, các tùy chọn để thao tác trên chain sẽ cung cấp cho người dùng những khả năng linh hoạt trong việc quản lý lưu lượng mạng. Việc hiểu rõ và áp dụng chính xác các tùy chọn này là rất quan trọng để đạt được hiệu quả tối ưu. Chi tiết về các tùy chọn để thao tác trên chain bao gồm:
- Tạo chain mới: Iptables –N
- Xóa tất cả các quy tắc đã có trong chain: Iptables –X
- Đặt danh sách cho các chain ‘built-in’ (INPUT, OUTPUT & FORWARD): Iptables –p
- Liệt kê các quy tắc trong chain:Iptables –L
- Xóa các quy tắc trong chain: Iptables –F
- Đặt lại bộ đếm Packet về 0: Iptables –Z
Tùy chọn thao tác với rule
Để thao tác trên các quy tắc trong Iptables, người dùng cần nắm rõ các tùy chọn được quy định. Những tùy chọn này giúp việc quản lý và điều chỉnh quy tắc trở nên dễ dàng hơn. Dưới đây là một số tùy chọn quan trọng mà người dùng nên ghi nhớ:
- Thêm quy tắc: -A
- Xóa quy tắc: -D
- Thay thế quy tắc: -R
- Chèn thêm quy tắc: -I
Một số lệnh cơ bản trong IPtables
Các lệnh này trong IPtables được phân thành hai loại chính: cơ bản và nâng cao. Trên thực tế, người dùng thường chỉ cần áp dụng linh hoạt các lệnh cơ bản để thực hiện các thao tác đơn giản mà hiệu quả. Một số lệnh cơ bản dưới đây mà người dùng cần nắm vững.
Câu lệnh tạo một rule mới
Để tạo một rule mới trong IPtables, bạn có thể sử dụng câu lệnh:
iptables -A INPUT -i lo -j ACCEPT
Trong đó:
- “-A” là viết tắt của Append, có nghĩa là thêm quy tắc vào cuối danh sách quy tắc hiện có.
- “INPUT” chỉ ra rằng quy tắc này sẽ áp dụng cho các gói tin gửi đến máy chủ.
- “-i lo” cho biết quy tắc áp dụng cho giao diện loopback, tức là giao tiếp nội bộ trong máy chủ.
- “-j ACCEPT” chỉ rõ hành động là chấp nhận các gói tin phù hợp với quy tắc này.
Sau khi thêm quy tắc, bạn có thể kiểm tra các quy tắc hiện tại bằng lệnh:
iptables -L -v
Nếu quy tắc mới được thêm thành công, bạn sẽ thấy nó xuất hiện trong danh sách. Đừng quên lưu lại các thay đổi và khởi động lại tường lửa để áp dụng:
service iptables save
service iptables restart
Để tiếp tục thêm các quy tắc cho phép duy trì kết nối hiện tại, bạn có thể sử dụng:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Nếu bạn cần mở cổng từ bên ngoài sử dụng giao thức TCP, ví dụ cho SSH trên cổng 22, bạn có thể thực hiện lệnh:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Trong đó, -p tcp xác định giao thức và –dport 22 chỉ định cổng áp dụng. Cuối cùng, để ngăn chặn mọi kết nối không tuân thủ quy tắc đã thiết lập, bạn có thể dùng:
iptables -A INPUT -j DROP
Câu lệnh bổ sung một rule mới
Để thêm một quy tắc mới vào IPtables tại một vị trí cụ thể, việc sử dụng các lệnh bổ sung là rất cần thiết. Người dùng có thể thay thế tham số -A table bằng tham số -I để thực hiện điều này. Câu lệnh để thêm một quy tắc mới có thể được viết như sau:
iptables -I INPUT 2 -p tcp --dport 8080 -j ACCEPT
Với câu lệnh này, bạn có thể dễ dàng cấu hình để chấp nhận các kết nối TCP đến cổng 8080.
Câu lệnh xóa một rule
Để xóa một quy tắc đã được thiết lập trong IPtables, bạn có thể sử dụng lệnh xóa với tham số -D. Cụ thể, cấu trúc lệnh để loại bỏ một quy tắc sẽ như sau:
IPtables -D INPUT 4
Nếu bạn muốn xóa tất cả các quy tắc có hành động DROP trong IPtables, quy trình này cũng khá đơn giản. Chỉ cần thực hiện lệnh với cú pháp sau để xóa toàn bộ các quy tắc đó:
IPtables -D INPUT -j DROP
Hướng dẫn cách sử dụng IPtables để mở Port VPS
Việc mở port một cách an toàn sẽ đảm bảo tính ổn định trong việc kết nối hệ thống với các dịch vụ bên ngoài. Sau đây MONA Host sẽ cung cấp hướng dẫn chi tiết về cách mở port sử dụng IPtables (IPtables open port), giúp bạn không chỉ hiểu rõ hơn về cách thức hoạt động của công cụ này mà còn có thể áp dụng thực tiễn một cách hiệu quả.
Mở Port SSH
Để mở cổng SSH 22 và cho phép truy cập vào VPS từ bất kỳ thiết bị hay người dùng nào, bạn có thể thực hiện theo các bước đơn giản sau đây.
Trước tiên, để cho phép truy cập SSH từ mọi nguồn, bạn hãy sử dụng lệnh sau:
iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Cổng SSH thường được cài đặt mặc định là 22. Nếu bạn đã thay đổi cổng SSH sang một số khác, hãy nhớ điều chỉnh lại cổng trong lệnh trên.
Tiếp theo, nếu bạn muốn chỉ cho phép kết nối SSH từ một địa chỉ IP cụ thể, hãy sử dụng lệnh này:
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx -m tcp --dport 22 -j ACCEPT
Trong lệnh này, IPtables sẽ thêm một quy tắc cho phép kết nối SSH chỉ từ địa chỉ IP mà bạn đã chỉ định (được đại diện bởi xxx.xxx.xxx.xxx).
Mở Port Web Server
Để mở cổng cho Web Server và cho phép truy cập từ bất kỳ thiết bị nào, bạn có thể thực hiện như sau:
Đầu tiên, để mở cổnng HTTP (cổng 80) cho mọi nguồn truy cập, hãy sử dụng lệnh sau:
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Cổng HTTP thường được thiết lập mặc định là 80. Nếu bạn đã thay đổi cổng cho Web Server sang một cổng khác, hãy nhớ điều chỉnh lại số cổng trong lệnh trên.
Nếu bạn chỉ muốn cho phép kết nối từ một địa chỉ IP cụ thể, hãy sử dụng lệnh sau:
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx -m tcp --dport 80 -j ACCEPT
Trong lệnh này, IPtables sẽ thêm một quy tắc cho phép kết nối đến Web Server chỉ từ địa chỉ IP mà bạn đã chỉ định (được đại diện bởi xxx.xxx.xxx.xxx).
Mở Port Mail
Để mở các cổng cho dịch vụ Mail trên server bằng IPtables, hãy thao tác theo các bước sau:
Các lệnh cho phép người dùng sử dụng giao thức SMTP qua các cổng mặc định là 25 và 465 là:
# IPtables -I INPUT -p tcp -m tcp --dport 25 -j ACCEPT
# IPtables -I INPUT -p tcp -m tcp --dport 465 -j ACCEPT
Công cụ này sẽ hiển thị các giao thức SMTP và URD như sau:
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:urd
Để mở các cổng POP3 (cổng mặc định 110 và 995) cho phép người dùng đọc email trên server, hãy sử dụng lệnh:
# IPtables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
# IPtables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
Công cụ này sẽ hiển thị các giao thức POP3 và POP3S:
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s
Cuối cùng, bạn có thể sử dụng các dòng lệnh dưới đây để mở cổng cho giao thức IMAP (cổng mặc định 143 và 993):
# IPtables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
# IPtables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
Công cụ này sẽ hiển thị các giao thức IMAP và IMAPS như sau:
ACCEPT tcp -- anywhere anywhere tcp dpt:imap
ACCEPT tcp -- anywhere anywhere tcp dpt:imaps
Chặn địa chỉ IP truy cập
Để chặn một địa chỉ IP cụ thể truy cập vào server, sử dụng lệnh:
IPtables -A INPUT -s IP_ADDRESS -j DROP
Hay nếu muốn chặn một địa chỉ IP truy cập vào một cổng nhất định, bạn có thể áp dụng lệnh:
IPtables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
Sau khi đã thiết lập tất cả các quy tắc, bao gồm việc mở các cổng cần thiết hoặc hạn chế kết nối, cần chặn toàn bộ các kết nối còn lại và cho phép toàn bộ các kết nối ra ngoài từ VPS:
IPtables -P OUTPUT ACCEPT
IPtables -P INPUT DROP
Để kiểm tra lại các quy tắc sau khi thiết lập, sử dụng lệnh:
service IPtables status
IPtables -L -n
Tùy chọn -n giúp chỉ định IP, ví dụ, nếu chặn kết nối từ một địa chỉ cụ thể, IPtables sẽ hiển thị là xxx.xxx.xxx.xxx với tham số -n.
Cuối cùng, lưu lại các cài đặt tường lửa IPtables, nếu không sẽ mất khi khởi động lại hệ thống.
Trong CentOS, cấu hình được lưu tại:
/etc/sysconfig/IPtables
Để lưu các quy tắc tường lửa, sử dụng:
IPtables-save | sudo tee /etc/sysconfig/IPtables
Hoặc:
service IPtables save
Kết thúc, các quy tắc tường lửa được lưu vào /etc/sysconfig/IPtables: [OK]
Hướng dẫn thiết lập IPtables với Linux Firewall chi tiết
Để thiết lập IPtables Linux Firewall, người dùng cần nắm rõ các quy tắc và lệnh cơ bản. Việc áp dụng chính xác các lệnh này không chỉ giúp bảo vệ hệ thống mà còn tăng cường khả năng kiểm soát lưu lượng mạng. Dưới đây MONA Host sẽ hướng dẫn bạn những bước thiết lập IPtabales cụ thể và chi tiết nhất.
Hướng dẫn này giả định rằng bạn đang sử dụng máy chủ Linux với IPTables đã được cài đặt và người dùng của bạn có quyền truy cập với lệnh sudo. Khi làm việc với IPTables trên firewall Linux, bạn cần lưu ý không tự khóa truy cập vào máy chủ của mình bằng cách chặn lưu lượng SSH (cổng 22, theo mặc định). Nếu bạn mất quyền truy cập, bạn có thể cần phải kết nối thông qua một OOB console (Out of Band console) để khôi phục quyền truy cập của mình.
Bước 1: Cài đặt IPtables Linux Firewall
Trên hầu hết các phiên bản Linux hiện nay, IPtables đã được tích hợp sẵn. Để xác nhận iptables đã được cài đặt, hãy sử dụng lệnh sau:
iptables --version
Đối với các hệ điều hành dựa trên Debian, chẳng hạn như Ubuntu, bạn có thể thực hiện các bước sau để cài đặt IPtables (install IPtables). Đầu tiên, sử dụng trình quản lý gói APT để cài đặt IPtables Ubuntu bằng lệnh:
sudo apt install iptables
Để đảm bảo rằng các quy tắc tường lửa IPtables được giữ nguyên sau khi khởi động lại, bạn cần cài đặt gói iptables-persistent:
sudo apt install iptables-persistent
Trong quá trình này, hệ thống sẽ hiển thị đường dẫn tệp lưu các quy tắc và yêu cầu bạn xác nhận việc lưu các quy tắc hiện tại cho IPv4 và IPv6.
Cuối cùng, để kích hoạt dịch vụ netfilter-persistent khi khởi động, bạn chỉ cần chạy lệnh sau:
sudo systemctl enable netfilter-persistent
Lệnh này đảm bảo rằng dịch vụ sẽ tự động khởi động mỗi khi hệ thống được khởi động lại.
Bước 2: Cách cấu hình IPtables trên Linux
Lệnh iptables cho phép người dùng quản lý lưu lượng truy cập mạng thông qua việc cấu hình tường lửa. Để cấu hình IPtables trên Linux (configure IPtables in Linux) hiệu quả, trước hết bạn cần nắm vững các lệnh cơ bản hay được sử dụng. Dưới đây là hướng dẫn chi tiết cách cấu hình IPtables trong các tình huống thực tế.
Liệt kê các rule hiện tại dưới dạng bảng
Để xem các quy tắc iptables ở chế độ dạng bảng, bạn hãy sử dụng lệnh sau:
sudo iptables -L
Hệ thống sẽ hiển thị trạng thái các chuỗi hiện có, bao gồm INPUT, FORWARD và OUTPUT.
Nếu bạn muốn giới hạn đầu ra cho một chuỗi cụ thể ( INPUT, OUTPUT, TCP,…), bạn hãy chỉ định tên chuỗi ngay sau -L.
Ví dụ như: bạn cần xem chuỗi INPUT, hãy nhập lệnh sau:
sudo iptables -L INPUT
Cho phép kết nối với Loopback
Giao diện loopback, hay còn được gọi là lo, giúp các phần mềm trong máy tính giao tiếp nhanh chóng và hiệu quả. Khi bạn ping localhost hoặc ping 127.0.0.1, máy chủ của bạn sẽ tự ping chính nó bằng cách sử dụng vòng lặp.
Để cho phép toàn bộ lưu lượng trên giao diện loopback, bạn hãy chạy lệnh sau:
sudo iptables -A INPUT -i lo -j ACCEPT
Lệnh này sẽ cấu hình tường lửa để chấp nhận tất cả lưu lượng truy cập từ giao diện localhost.
Cho phép lưu lượng truy cập cho các dịch vụ cụ thể
Để cho phép lưu lượng trên các cổng cho các dịch vụ khác nhau, người dùng có thể tham khảo các lệnh dưới đây:
- Lệnh cho phép những lượng truy cập web HTTP đến ( port 80 ), sử dụng lệnh sau:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- Lệnh chỉ cho phép những lưu lượng SSH đến:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Lệnh cho phép những lượng truy cập HTTPS (port 443):
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Kiểm soát lưu lượng truy cập theo địa chỉ IP
Người dùng có thể kiểm soát lưu lượng dựa trên địa chỉ IP bằng các lệnh như:
- Chấp nhận tất cả lưu lượng từ một địa chỉ IP:
sudo iptables -A INPUT -s [IP-address] -j ACCEPT
- Loại bỏ lưu lượng từ một địa chỉ IP:
sudo iptables -A INPUT -s [IP-address] -j DROP
- Từ chối lưu lượng từ phạm vi địa chỉ IP:
sudo iptables -A INPUT -m iprange --src-range [IP-address-range] -j REJECT
Thay thế địa chỉ IP trong lệnh bằng địa chỉ thực tế.
Ghi lại các gói bị chặn
Để ghi lại các gói tin bị loại bỏ, thực hiện các bước sau:
- Sử dụng mục tiêu LOG và thêm tiền tố tin nhắn:
sudo iptables -A INPUT -j LOG --log-prefix "Dropped: "
- Thêm quy tắc để loại bỏ các gói tin sau khi ghi nhật ký:
sudo iptables -A INPUT -j DROP
- Để kiểm tra nhật ký, sử dụng lệnh dmesg:
sudo dmesg | grep "Dropped"
- Ngoài ra, người dùng có thể kiểm tra tệp syslog:
sudo tail -f /var/log/syslog | grep “Dropped packet”
Xóa một rule
Để xóa một rule cụ thể, đầu tiên bạn cần liệt kê tất cả các quy tắc bằng lệnh là:
sudo iptables -L --line-numbers
Nhập câu lệnh này để xác định số dòng của rule cần xóa và chạy:
sudo iptables -D INPUT [number]
Thay thế [number] bằng số dòng quy tắc cần xóa.
Chặn tất cả lưu lượng đến ngoại trừ SSH
Để chặn mọi lưu lượng truy cập đến ngoại trừ các kết nối SSH, bạn cần thực hiện các thao tác chi tiết như sau:
- Đặt chính sách mặc định cho chuỗi INPUT thành DROP bằng lệnh:
sudo iptables -P INPUT DROP
- Cho phép kết nối SSH bằng lệnh:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Cho phép các kết nối liên quan và đã được thiết lập bằng lệnh:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Bước 3: Lưu thay đổi trên IPtables
Để giữ các quy tắc IPtables sau khi khởi động lại, hãy thực hiện lưu bằng câu lệnh:
sudo netfilter-persistent save
Bằng cách hiểu rõ các lệnh và quy tắc trong IPtables là gì, bạn sẽ kiểm soát tốt hơn việc truy cập và bảo mật cho VPS của mình. Nếu bạn đang tìm kiếm một Cloud Hosting, VPS mạnh mẽ và bảo mật, MONA Host chính là giải pháp toàn diện, đáp ứng đầy đủ những yêu cầu từ chất lượng sản phẩm cho đến dịch vụ hỗ trợ chuyên nghiệp. Hãy liên hệ ngay HOTLINE 1900 636 648 để được tư vấn và trải nghiệm dịch vụ lưu trữ web hàng đầu thị trường.
Bài viết liên quan
Đăng ký để nhận các bài nghiên cứu, blog, thông tin mới nhất từ chúng tôi