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:
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ó.
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ừ 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
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ừ chối tất cả các gói tin SSH từ Internet
iptables -A INPUT -p tcp --dport 22 -j DROP
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
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ừ chối tất cả các gói tin ICMP từ Internet
iptables -A INPUT -p icmp -j DROP
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ừ 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
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ừ 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
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