Cài đặt Iptables trên Ubuntu | Các lệnh cơ bản

IPtables là một công cụ lọc gói tin (packet filtering) được sử dụng để quản lý lưu lượng truy cập mạng trong hệ điều hành Linux. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về cách cài đặt Iptables trên Ubuntu nhé!

Xem thêm:

cách điều chỉnh lưu lượng mạng trên Linux

Tìm hiểu về nslookup, soa, any, ns, txt, mx

1. IPtable là gì?

IPtables là một công cụ tường lửa miễn phí trong Linux, cho phép thiết lập các quy tắc riêng để kiểm soát truy cập, tăng tính bảo mật. IPtables có nhiều tùy chỉnh khác nhau, cho phép người dùng đáp ứng nhu cầu cụ thể của mình.

2. Cài đặt IPtables

Trên Debian, Ubuntu:

sudo apt-get update
sudo apt-get install iptables
sudo systemctl start iptables

Trên CentOS, mặc định sử dụng tường lửa là firewalld. Để cài đặt IPTABLES thì trước tiên phải tắt service firewalld:

sudo systemctl stop firewalld

#Không cho phép firewalld tự bật khi reboot server:
sudo systemctl disable firewalld

#Đảm bảo không cho các dịch vụ khác start firewalld:
sudo systemctl mask --now firewalld

#Cài đặt packages iptables-services từ CentOS repositories:
sudo yum install iptables-services

#Khởi động dịch vụ iptables
sudo systemctl start iptables

#Bật tự động iptables khi boot server, để đảm bảo server luôn luôn có sự bảo vệ từ iptables.
sudo systemctl enable iptables

#Kiểm tra trạng thái iptables đảm bảo nó đang hoạt động:
sudo systemctl status iptables

#Sử dụng lệnh sau để hiển thị các rule đang có:
sudo iptables -nvL
root@debian:~# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy AC
EPT)
target     prot opt source               destination

3. Cấu hình tùy chỉnh IPtables

IPTABLES có 3 cấu hình đó là: INPUT, FORWARD và OUTPUT

  • INPUT: quản lý, cấp phép cho các kết nối từ bên ngoài vào server Linux. Ví dụ như kết nối đến SSH port 22, kết nối Web port 80, 443.
  • FORWARD: Tất cả các gói cần định tuyến và không gửi đến nội bộ đều phải thông qua rule này.
  • OUTPUT: quản lý cho phép các gói tin ra đi ra từ server đến các server khác.

Cách iptables phản hồi các gói tin. Dưới đây là 3 action thông dụng.

  • ACCEPT: cho phép kết nối
  • DROP: kết nối sẽ bị chặn và không có bất kì phản hồi nào cho server gửi đến. Thường được áp dụng cho các IP có hành động tấn công server. Cho các server đó biết là IP này không phản hồi như các IP không tồn tại.
  • REJECT: Không cho phép kết nối, nhưng phản hồi lại lỗi. Điều này là tốt nhất nếu bạn không muốn một nguồn cụ thể kết nối với hệ thống của mình, nhưng bạn muốn họ biết rằng tường lửa của bạn đã chặn họ.

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

sudo iptables -L -v.
sudo iptables -F: Xoá tất cả các quy tắc hiện có.

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

3.2 Tùy chỉnh dựa trên địa chỉ IP

Cho phép tất cả các gói tin từ địa chỉ IP 192.168.1.1

iptables -A INPUT -s 192.168.1.1 -j ACCEPT

Tùy chỉnh dựa trên địa chỉ IP

Từ chối tất cả các gói tin từ địa chỉ IP 192.168.1.1

iptables -A INPUT -s 192.168.1.1 -j DROP

Tùy chỉnh dựa trên địa chỉ IP

3.3 Tùy chỉnh dựa trên cổng

Cho phép tất cả các gói tin HTTP từ Internet

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Tùy chỉnh dựa trên cổng

Từ chối tất cả các gói tin SSH từ Internet

iptables -A INPUT -p tcp --dport 22 -j DROP

Tùy chỉnh dựa trên cổng

Cho phép tất cả các gói tin từ cổng 8080 đến cổng 80

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:80

Tùy chỉnh dựa trên cổng

3.4 Tùy chỉnh dựa trên giao thức

Cho phép tất cả các gói tin UDP từ Internet

iptables -A INPUT -p udp -j ACCEPT

Tùy chỉnh dựa trên giao thức

Từ chối tất cả các gói tin ICMP từ Internet

iptables -A INPUT -p icmp -j DROP

Tùy chỉnh dựa trên giao thức

3.5 Tùy chỉnh dựa trên thời gian

Cho phép tất cả các gói tin từ 8h sáng đến 5h chiều

iptables -A INPUT -m time --timestart 08:00 --timestop 17:00 -j ACCEPT

Tùy chỉnh dựa trên thời gian

Từ chối tất cả các gói tin từ 5h chiều đến 8h sáng

iptables -A INPUT -m time --timestart 17:00 --timestop 08:00 -j DROP

Tùy chỉnh dựa trên thời gian

3.6 Tùy chỉnh dựa trên địa chỉ MAC

Cho phép tất cả các gói tin từ máy tính có địa chỉ MAC AA:BB:CC:DD:EE:FF

iptables -A INPUT -m mac --mac-source AA:BB:CC:DD:EE:FF -j ACCEPT

Tùy chỉnh dựa trên địa chỉ MAC

Từ chối tất cả các gói tin từ máy tính có địa chỉ MAC AA:BB:CC:DD:EE:FF

iptables -A INPUT -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP

Tùy chỉnh dựa trên địa chỉ MAC

Trên đây là một số cấu hình IPtables trên Linux. Cảm ơn bạn đã tham khảo quản trị Linux trên ttnguyen.net.

Bài viết liên quan:

cách đổi tên hostname trên Ubunutu

các lệnh quản lý file trên linux ubuntu

phân quyền trong linux ubuntu

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em