• Webmaster Tools
  • Diễn Đàn Hỏi Đáp
  • Profile
  • Ủng hộ
  • DNS Check
  • CheckIP
  • Liên Hệ
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • WEB MẪUHOT

Hướng dẫn IPtables – bảo mật Ubuntu VPS với Linux Firewall

by ĐỖ TRUNG QUÂN 08/05/2018
Tác giả: ĐỖ TRUNG QUÂN Date: 08/05/2018Last Update 19/12/2020 0 comments 169 lượt xem
Dịch vụ xử lý mã độc WordPress
WEB MẪU WORDPRESS
Share FacebookTwitterPinterestTelegramEmail
169

NỘI DUNG

  • Giới thiệu
  • Bạn cần gì?
  • Khái niệm cơ bản về Iptables
  • Bước 1: Cài đặt Iptables Linux Firewall
    • 1. Cài đặt Iptables
    • 2. Kiểm tra trạng thái hiện tại của Iptables
  • Bước 2: Định nghĩa các chain rules
    • 1. Cho phép lưu lượng truy cập trên localhost
    • 3. Lọc các gói tin dựa trên nguồn của nó
    • 4. Chặn tất cả các truy cập khác
    • 5. Xóa các rules
  • Bước 3: Lưu giữ các thay đổi
  • Lời kết

hướng dẫn iptables

Contents

  • Giới thiệu
  • Bạn cần gì?
  • Khái niệm cơ bản về Iptables
  • Bước 1: Cài đặt Iptables Linux Firewall
  • Bước 2: Định nghĩa các chain rules
  • Bước 3: Lưu giữ các thay đổi
  • Lời kết
  • 3shares

Giới thiệu

Iptables Linux firewall được sử dụng để theo dõi lưu lượng truy cập đến và đi ở một máy chủ và lọc nó dựa trên các rules do người dùng định nghĩa trước đó để ngăn chặn bất cứ ai truy cập vào hệ thống. Sử dụng Iptables, bạn có thể định nghĩa các rules chỉ cho phép lưu lượng được chọn lọc trên máy chủ của bạn. Trong bài hướng dẫn này, bạn sẽ học được cách làm thế nào để bảo vệ ứng dụng web bằng cách sử dụng Iptables.

Lưu ý: Đối với người dùng RHEL/CentOS, có một dịch vụ tên là firewallD đã được cài đặt sẵn trên các hệ điều hành này. Nếu bạn muốn sử dụng Iptable, bạn phải vô hiệu hóa nó trước.

Bạn cần gì?

Trước khi bắt đầu thực hiện bài hướng dẫn này, bạn cần những điều sau:

  • Một máy tính có cài trình kết nối SSH (Kết nối SSH tới VPS Hướng Dẫn)
  • Một VPS chạy hệ điều hành Ubuntu phiên bản 16.04

Khái niệm cơ bản về Iptables

Tất cả các dữ liệu được gửi đi trong các gói tin được định dạng qua internet. Linux kernel cung cấp một giao diện để lọc cả các gói tin đi vào và ra sử dụng một bảng các bộ lọc gói tin. Iptables là một ứng dụng dòng lệnh và là một bức tường lửa Linux mà bạn có thể sử dụng để thiết lập, duy trì và kiểm tra các bảng này. 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. Mỗi quy tắc định nghĩa phải làm gì với gói tin nếu nó phù hợp với gói đó. Khi một gói tin được xác định, nó sẽ đưa ra một TARGET. Một target (mục tiêu) có thể là một chuỗi khác để khớp với một trong các giá trị đặc biệt sau đây:

  • ACCEPT: gói tin sẽ được phép đi qua.
  • DROP: gói tin sẽ không được phép đi qua.
  • RETURN: bỏ qua chuỗi hiện tại và quay trở lại quy tắc tiếp theo từ chuỗi mà nó được gọi.

Trong phạm vi của bài hướng dẫn iptables này, chúng ta sẽ làm việc với một trong những bảng mặc định được gọi là bộ lọc. Bảng bộ lọc có ba chuỗi bộ quy tắc.

  • INPUT – được sử dụng để điều khiển các gói tin đến tới máy chủ. Bạn có thể chặn hoặc cho phép kết nối dựa trên cổng, giao thức hoặc địa chỉ IP nguồn.
  • FORWARD – được sử dụng để lọc các gói dữ liệu đến máy chủ nhưng sẽ được chuyển tiếp ở một nơi khác.
  • OUTPUT – được sử dụng để lọc các gói tin đi ra từ máy chủ của bạn.
    Hướng dẫn iptables - filter table

Bước 1: Cài đặt Iptables Linux Firewall

1. Cài đặt Iptables

Iptable được cài đặt sẵn trong hầu hết các bản phân phối của Linux. Nhưng nếu nó chưa được cài đặt trên hệ thống Ubuntu/Debian, hãy sử dụng lệnh sau để cài đặt:

sudo apt-get update
sudo apt-get install iptables

2. Kiểm tra trạng thái hiện tại của Iptables

Bạn có thể dùng lệnh sau để kiểm tra các cấu hình hiện tại của Iptables.
Tùy chọn -L để liệt kê tất cả các rules (qui tắc) và -v để hiện thêm các danh sach bổ trợ. Bạn hãy chú ý các ký tự viết hoa viết thường là khác nhau nhé.

sudo iptables -L -v

Ví dụ đầu ra như sau:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source          destination    
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source          destination    
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source          destination

Đây là kết quả của lệnh bạn vừa nhập, hiện cả ba chains được thiết lập mặc định là ACCEPT và không có rules cho bất kỳ chains nào.
Để làm cho bài hướng dẫn Iptable này thực tế hơn, chúng ta sẽ sửa đổi INPUT chain để lọc lưu lượng truy cập đến.

Bước 2: Định nghĩa các chain rules

Định nghĩa các chain rules là thực hiện thêm nó vào danh sách chain hiện tại. Đây là lệnh Iptables được định dạng với các tùy chọn thông thường, chúng tôi sẽ không nêu rõ hết tất cả các tham số.

sudo iptables -A  -i <interface> -p <protocol (tcp/udp)> -s <source> --dport <port no.>  -j <target>

-A: thêm chain rules
-i <interface> là giao diện mạng bạn cần thực hiện lọc các gói tin
-p <protocol> là giao thức mạng thực hiện lọc (tcp/udp)
–dport <port no.> là cổng mà bạn muốn đặt bộ lọc
Bạn có thể tìm hiểu thêm và các tùy chọn và các lệnh thực thi của iptable tại đây

1. Cho phép lưu lượng truy cập trên localhost

Cho phép giao tiếp giữa ứng dụng mà database của nó trên server như bình thường

sudo iptables -A INPUT -i lo -j ACCEPT

Kết quả như sau

Chain INPUT (policy ACCEPT 7 packets, 488 bytes)
pkts bytes target prot opt in out source            destination    
0 0 ACCEPT all  --  lo any anywhere          anywhere

-A thêm rules vào chains INPUT cho phép tất cả các kết nối ở interface lo 
Cho phép truy cập trên các cổng HTTP, SSH, SSL

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Cho phép tất cả các truy cập TCP trên các cổng 22 (SSH), HTTP (80), HTTPS (443)

3. Lọc các gói tin dựa trên nguồn của nó

Nếu bạn muốn cho phép hay từ chối các gói tin dựa trên một IP nguồn của nó hãy sử dụng tham số -s

sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT

Cho phép các gói tin từ IP 192.168.1.3

sudo iptables -A INPUT -s 192.168.1.3 -j DROP

Từ chối các gói tin từ  IP 192.168.1.3
Nếu bạn muốn từ chối các gói tin từ một dãy IP hãy sử dụng  tham số Iprange -m với dãy IP đặt  sau –src-range

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP

4. Chặn tất cả các truy cập khác

Lưu ý: một việc rất quan trọng là bạn cần DROP tất cả các gói tin từ các nguồn khác để tránh các truy cập trái phép từ các cổng mở trên server của bạn.

sudo iptables -A INPUT -j DROP

Sau khi đã thiết lập các rules, bạn có thể kiểm tra lại bằng lệnh sau

sudo iptables -L -v

5. Xóa các rules

Nếu bạn muốn xóa tất cả các rules để tạo lại từ đầu hãy dùng lệnh

sudo iptables -F

Bạn có thể xóa từng rules khác nhau dùng tham số -D nhưng trước tiên bạn cần dùng lệnh

sudo iptables -L --line-numbers

để liệt kê các rules tương ứng với từng số

Chain INPUT (policy ACCEPT)
num  target prot opt source            destination    
1 ACCEPT all  --  192.168.0.4       anywhere       
2 ACCEPT tcp  --  anywhere          anywhere          tcp dpt:https
3 ACCEPT tcp  --  anywhere          anywhere          tcp dpt:http
4 ACCEPT tcp  --  anywhere          anywhere          tcp dpt:ssh

Sau đó dùng lệnh

sudo iptables -D INPUT 3

để xóa rules số 3 ở chain INPUT

Bước 3: Lưu giữ các thay đổi

Các Iptables rules chúng ta tạo ra đều được lưu ở bộ nhớ, nếu bạn reboot máy chủ thì bạn cần thực hiện tạo lại các rules này.
Để lưu giữ vào cấu hình hệ thống, bạn dùng lệnh sau

sudo /sbin/iptables-save

Nếu bạn muốn tắt firewall, hãy sử dụng lệnh

sudo iptables -F
sudo /sbin/iptables-save

 

Lời kết

Trong bài hướng dẫn về Iptables này, chúng tôi sử dụng Iptables Linux firewall để chỉ cho phép lưu lượng trên các cổng cụ thể và cũng đảm bảo rằng các rules sẽ được lưu lại sau khi khởi động máy chủ  lại. Linux firewall này sẽ chặn các gói tin không mong muốn nhưng có một điều lưu ý là Iptables chỉ có thể điều khiển lưu lượng ipv4. Nếu hộp VPS của bạn đã kích hoạt mạng ipv6, bạn phải đặt các quy tắc khác nhau cho lưu lượng truy cập đó với iptables.

5/5 - (2 bình chọn)

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
ĐỖ TRUNG QUÂN

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn. Hiện tại mình là admin của Blog DOTRUNGQUAN.INFO - CaiSSL.COM - QuantriVPS.COM. Mới đây mình có tạo ra nhóm Hỗ trợ Server - Hosting & WordPress | Hỗ Trợ Xử Lý Mã Độc WordPress với mục đích gây dựng một cộng đồng nhỏ để mọi người trao đổi kinh nghiệm, kiến thức quản trị VPS. Các thủ thuật, mẹo vặt khi sử dụng VPS. Rất mong nhận được sự ủng hộ của các bạn.

Author Box
Author Image

ĐỖ TRUNG QUÂN

Chuyên viên quản trị hệ thống.

Tư vấn & triển khai dịch vụ

VPS | Hosting | SSL | Mailserver | Website | Sửa lỗi WordPress

Bài viết của tác giả

Hosting/VPS khuyên dùng

Phổ Biến

  • Hướng dẫn tạo SSH Key trên macOS

  • Hướng dẫn sử dụng SSH Key

  • Hướng dẫn cài đặt v2board trên AAPANEL

  • Vấn đề IP Public liên tục bị thay đổi vì sao và cách khắc phục

  • Khắc phục lỗi không hiện hình ảnh và mô tả khi share link lên Facebook

  • Hướng dẫn kích hoạt Theme Flatsome mới nhất.

BẠN BÈ & ĐỐI TÁC

Thạch Phạm | CỔ Ý CONCEPT | Trương Quốc Cường | Đàm Trung Kiên | Web An Tâm | Phong Đinh | Học Mò | PHUNG.VN | Đăng Đạt

Bạn được quyền sao chép lại nội dung trên website Đỗ Trung Quân, miễn là có dẫn nguồn.

Hosting/VPS được tài trợ bởi AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay

AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay


Back To Top
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • WEB MẪUHOT