Skip to main content

Giới thiệu và hướng dẫn sử dụng cơ bản iptables (Firewall)

1. iptables là gì?

thanhnt@Thanhnt:~$ whatis iptables
iptables (8) - administration tool for IPv4 packet filtering and NAT
Trước đây, gói firewall/NAT được sử dụng phổ biến trên linux là ipchans, dần dần bị thay thế dó có nhiều bug và thiếu tính năng, iptables ra đời.

So với ipchains, iptables có những ưu điểm vượt trội như:
  • Tích hợp cao với linux kernel
  • Có khả năng phân tích packet hiệu quả
  • Filter packet được dựa trên các MAC address và các giá trị của flags trong TCP header
  • Hệ thống log có các tùy chọn phù hợp, dựa trên mức độ và chi tiết reports
  • Translation địa chỉ mạng tốt hơn
  • Hỗ trợ tích hợp với các web proxy programs
  • Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS
...............

2. Một số lệnh cơ bản khi làm việc với iptables

  • Khởi động: service iptables start
  • Tắt: service iptables stop
  • Khởi động lại: service iptables restart
  • Xác định trạng thái: service iptables status

3. Cơ chế xử lý trong iptables

Iptables sẽ kiểm tra các packet khi nó đi qua iptables host, quá trình kiểm tra sẽ được tiến hành theo trình tự thời gian

Bất kì packet nào muốn đi đến host đều phải đi qua Input Chain
Bất kì packet nào muốn đi ra khỏi host đề phải đi qua output Chain
Bất kì packet nào mà máy host muốn chuyển (forward) cho máy khác phải đi qua Forward Chain

Tất cả các điều trên đều được iptables giám sát một cách chặt chẽ. Việc cấu hình cho input, output và foward chain được gọi là thiết lập rules cho Firewall

Một số port và service thông dụng trên linux:

Port Protocol service
21 TCP FTP
22 TCP SSH
23 TCP TELNET
25 TCP SMTP
53 TCP NAME(DNS)
80 TCP HTTP
110 TCP POP3
443 TCP HTTPS
3306 TCP MYSQL


4. Một số câu lệnh khi config iptables
4.1 Block a một địa chỉ IP

$ iptables -I INPUT -s 10.10.10.10 -j DROP
Để block một địa chỉ IP đơn ta sử dụng tùy chon -s (source)
-I : insert vào file config của input chain
INPUT: kiểm tra packet đến host, qua input chain
DROP: drop packet gửi đến từ máy có IP 10.10.10.10

4.2 Cho phép tất cả các traffic từ một IP:

$ iptables -A INPUT -s 10.10.10.10 -j ACCEPT

-A: append

4.3: Block tất cả các address theo port:
iptables -A INPUT -p tcp --dport 3306 -j DROP
-p: protocol. Ở đây là tcp
-dport: dest port, ở đây là 3306 , port của MySQL

4.4 Cho phép một port từ một single IP
iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT
Tìm hiểu thêm tại:
$ man iptables

Comments

  1. Nên bổ xung thêm phần xử lý các rule của iptables là có thứ tự --> apply từng rule 1 từ trên xuống dưới trong 1 chain nếu thảo mãn 1 rule nào đó nó sẽ được xử lý theo option -j của rule đó (DROP, ACCEPT hoặc jump đến 1 table khác do người dùng định nghĩa).

    ReplyDelete

Post a Comment

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG