Hôm nay tôi sẽ chia sẻ “Cài đặt và cấu hình IPTABLES”.Iptables là một tiện ích tường lửa cực kỳ linh hoạt được xây dựng cho các hệ điều hành Linux. Iptables giám sát lưu lượng ra vào server bằng các rule được cấu hình. Khi một kết nối cố gắng tự thiết lập trên hệ thống của bạn, iptables sẽ tìm một quy tắc trong danh sách của nó để khớp với nó. Nếu không tìm thấy bất kì quy tắc nào có sẵn, thì sẽ áp dụng các rule mặc định với các gói tin.
Iptables thường được cài sẵn trên các server như Debian, Ubuntu,.. Và mặc định không chặn bất kì port nào. Bài viết dưới đây sẽ cho bạn biết thêm một số thông tin hữu ích về tường lửa trên server Linux.
1. Cài đặt IPTABLES
Để cài đặt IPTABLES ta sử dụng các lệnh sau:
- Trên Debian, Ubuntu:
Khởi động dịch vụ 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:
Không cho phép firewalld tự bật khi reboot server:
Đảm bảo không cho các dịch vụ khác start firewalld:
Cài đặt packages iptables-services từ CentOS repositories:
- Khởi động dịch vụ iptables
Bật tự động iptables khi boot server, để đảm bảo server luôn luôn có sự bảo vệ từ iptables.
Kiểm tra trạng thái iptables đảm bảo nó đang hoạt động:
Sử dụng lệnh sau để hiển thị các rule đang có:
2. Cách quản lý của 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ọ.
Một ví dụ đơn giản về lệnh Ping:
Cho phép kết nối (ACCEPT):
Chặn kết nối (DROP):
Từ chối các kết nối (REJECT):
3. Mở hoặc chặn các port trên IPTABLES
Mở port trên Iptables. Chỉ nên mở những port cần thiết và nắm rõ việc hoạt động của các port đó. Những dịch vụ thưởng được mở port INPUT là:
- SSH : port 22
- Web: http – 80, https – 443
Nếu là web server thì chỉ nên mở port SSH và Web. Ngoài ra nếu là server chạy hosting hay các dịch vụ mail thì mở các port theo từng service như: SMTPS – 465/587, POP3 – 110, POP3s – 995, MAP – 143 và IMAPs – 993…
Sau khi liệt kê các port cần mở cho server ta dùng lệnh sau để cấu hình:
Lệnh sau có nghĩa là: A tức Append – chèn vào chuỗi INPUT (chèn xuống cuối), port xxx giao thức TCP
Hoặc sử dụng lệnh sau để không ảnh hưởng đến các rule có sẳn:
I tức Insert- chèn vào chuỗi INPUT.
Lệnh chặn như sau:
Chặn kết nối từ server có IP là 10.11.12.13
Chặn kêt nối đến port SSH từ IP 10.11.12.13
Chặn kết nối đến port SSH
Xem lại các rule đã cấu hình bằng lệnh sau:
Nếu muốn xóa tất cả các cấu hình để làm lại thì ta gõ lệnh sau:
4. Lưu cấu hình IPTABLES
Sau khi đã cấu hình xong các port mở chặn ta tiến hành lưu các rule đã cấu hình vào file.
Các rule sẽ được lưu vào file: /etc/sysconfig/iptables
Hoặc sử dụng lệnh sau để lưu ra một file backup
Trong trường hợp xấu không mong muốn có thể bạn xóa một rule nào đó dẫn đến mất kết nối dịch vụ. Để khôi phục lại những rule đã tạo từ file backup ta dùng lệnh sau:
iptables-restore < /etc/sysconfig/iptables
iptables-restore < /usr/src/iptables-rule
File /etc/sysconfig/iptables-config có chứa một số cấu hình cho dịch vụ iptables. Các bạn cũng nên tìm hiểu một số lệnh trong file này để ứng dụng.
IPTABLES_SAVE_ON_STOP = “no” Giá trị này nên chuyển thành “yes” khi đó mỗi lần stop iptables (hay là khi tắt máy) thì các rules trong bộ nhớ sẽ được save vào file /etc/sysconfig/iptables để tải lại các lần sau
IPTABLES_SAVE_ON_RESTART =”no” Giá trị này nếu sửa thành “yes” thì mỗi khi restart dịch vụ iptables, các rules cũng được ghi lại vào file
5. Lưu ý quan trọng
RULE đầu tiên:
Trước khi tạo bất cứ một rules nào bạn cần phải tạo một rule cho phép chính mình và đặt ở đầu file iptables. Bởi vì mọi firewall đều làm việc theo nguyên tắc duyệt các rule từ trên xuống dưới, nếu thỏa mãn thì áp dụng ngay bất kể các rule bên dưới có match hay không. Vậy nên các trong khi thao tác với iptables, bạn cần biết IP của máy mình đang dùng là gì. Nếu có ip tĩnh thì quá tốt, nếu không thì cũng phải biết dải ip mà ADSL của mình thường xuyên được cấp. Sau đó tạo một rules đầu tiên trong file iptables như sau:
Trong đó 113.123.133.143 giả định là ip mà máy của bạn đang dùng. Nếu như bạn có một dài IP hay dùng thì thay bằng dòng
Như vậy bất kể sau đó bạn có khai báo một lệnh DROP hay REJECT nào thì ip của bạn vẫn access được đến server mà không sợ thiết lập rules “tự tử” cấm chính mình.
RULE thứ 2
Cho dù bạn cẩn thận đến đâu, kể cả khi bạn đã áp dụng nguyên tắc thứ nhất thì vẫn có thể bạn không access được vào server, chẳng hạn như bạn đã mở ip của bạn, nhưng mạng của nhà cung cấp dịch vụ lại cấm ip của bạn thì sao? hoặc giả bạn cho phép dải ip ở công ty của bạn access, nhưng bạn đang ở quán cafe wifi và muốn access vào VPS thì sao? Để tránh tình huống này bạn cần tạo ra một rule thứ 2 cho phép một máy dự phòng và máy này thì bạn có thể remote từ xa vào để thao tác. Hãy add thêm dòng lệnh sau vào ngay bên dưới dòng lệnh nêu trên trong file iptables
trong đó 14.115.112.45 là máy dự phòng để bạn có thể access vào máy chủ khi mà IP thứ nhất bị cấm.
Chúc bạn thành công!!!
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* 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
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 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: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Đị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
=============================
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,khóa học pl/sql, 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, 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 dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty