Trước hêt cần nói qua về IPtables:
1. Giới thiệu về iptables
-IPtables là một chương trình chạy ở không gian người dùng, cho phép người quản trị hệ thống có thể cấu hình các bảng của tường lửa trong nhân Linux (được cài đặt trong các Module Netfilter khác nhau) và lưu trữ các chuỗi, luật. Các Module nhân và chương trình khác nhau được áp dụng cho từng giao thức; iptables cho IPv4, ip6tables cho IPv6, arptables cho ARP, và ebtables cho Ethernet frames.
-Iptables do Netfilter Organiztion viết ra để tăng tính năng bảo mật trên hệ thống Linux.
-Iptables cung cấp các tính năng sau:
Tích hợp tốt với kernel của Linux.
Có khả năng phân tích package hiệu quả.
Lọc package dựa vào MAC và một số cờ hiệu trong TCP Header
Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống
Cung cấp kỹ thuật NAT
Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS
2. Cài đặt iptables
-Iptables được cài đặt mặc định trong hệ thống Linux, package của iptables là iptablesversion.
rpm hoặc iptables-version.tgz …, ta có thể dùng lệnh để cài đặt package này:
$ rpm –ivh iptables-version.rpm đối Red Hat
$ apt-get install iptables đối với Debian
- Khởi động iptables: service iptables start
- Tắt iptables: service iptables stop
- Tái khởi động iptables: service iptables restart
- Xác định trạng thái iptables: service iptables status
3, Cấu hình: các bước thực hiện:
Bước 1:
mở terminal lên gõ lệnh: iptables –L
Bước 2:
gõ lệnh như hình vẽ để tiến hành tạo file iptables.test.rules trong
/etc
/etc
Bước 3:
thêm vào file vừa tạo đoạn code rồi lưu
lại:
*filter
# Allows all loopback
(lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all
established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound
traffic
# You can modify this
to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal
ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH
connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE
SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix
"iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly
allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
|
Bước 4:
Nạp cấu hình cho bộ nhớ
Bước 5:
Sau khi thực hiện các bước trên gõ lệnh: iptables –L ta sẽ có được cấu hình như hình
vẽ:
Bước 6:
Lưu file với tên: iptables.up.rules
xem hình:
Bước 7:
Bây giờ chúng ta cần phải đảm bảo là cấu hình sẽ được lưu lại mỗi khi ta khởi
động máy, mở tệp tin: /etc/network/interfaces
thêm
vào dòng: ”pre-up intables-restore < /etc/iptables.up.rules” ngay
sau dòng “iface lo inet loopback”
Bước 8:
restart the network card để hoàn tất, máy sẽ khởi động lại.
Dùng
lệnh: /etc/init.d/networking restart
để hiểu được đoạn code trên bạn cần hiểu các thuật ngữ và các lệnh sau:
Tác giả: phúc ceh + feddxii
để hiểu được đoạn code trên bạn cần hiểu các thuật ngữ và các lệnh sau:
1, Các
thuật ngữ cần hiểu:
* Jump là cơ chế
chuyển một packet đến một target nào đó để xử lý thêm một số thao tác khác.
* Target là cơ chế
hoạt động trong iptables, dùng để nhận diện và kiểm tra packet. Các target
được xây dựng sẵn trong iptables như:
- ACCEPT: iptables chấp
nhận chuyển data đến đích.
- DROP: iptables khóa
những packet.
- LOG: thông tin của
packet sẽ gởi vào syslog daemon iptables tiếp tục xử lý luật tiếp theo trong
bảng mô tả luật. Nếu luật cuối cùng không match thì sẽ drop packet. Với tùy
chọn thông dụng là --log-prefix=”string”, tức iptables sẽ ghi nhận lại những
message bắt đầu bằng chuỗi “string”.
- REJECT: ngăn chặn
packet và gởi thông báo cho sender. Với tùy chọn thông dụng là -- reject-with
qualifier, tức qualifier chỉ định loại reject message sẽ được gởi lại cho
người gởi. Các loại qualifer sau: icmp-port-unreachable (default),
icmp-net-unreachable, icmp-host-unreachable, icmp-proto-unreachable, …
- DNAT: thay đổi địa
chỉ đích của packet. Tùy chọn là --to-destination ipaddress.
- SNAT: thay đổi địa
chỉ nguồn của packet. Tùy chọn là --to-source[- address][:-]
- MASQUERADING: được
sử dụng để thực hiện kỹ thuật NAT (giả mạo địa chỉ nguồn với địa chỉ của
interface của firewall). Tùy chọn là [--to-ports [-]], chỉ định dãy port
nguồn sẽ ánh xạ với dãy port ban đầu
|
2. Các
lệnh trong iptables
-t
:Chỉ định bảng cho iptables bao gồm:filter,nat,mangle tables.
-j :
Nhảy đến một target chain khi packet thỏa luật hiện tại.
-A:Thêm
luật vào cuối iptables chain.
-F:
Xóa tất cả các luật trong bảng lựa chọn.
-p :
Mô tả các giao thức bao gồm: icmp, tcp, udp và all
-s :
Chỉ định địa chỉ nguồn
-d :
Chỉ định địa chỉ đích
-i :
Chỉ định “input” interface nhận packet
-o :
Chỉ định “output” interface chuyển packet ra ngoài
|
Tác giả: phúc ceh + feddxii
bạn ơi thế bạn có thể cho mình xin bài tiểu luận này của bạn đc ko? mình cũng đang làm về đề tài này nè hic hic
ReplyDeletechào bạn, rất cảm ơn khi bạn post lên tài liệu này, mình thấy rất hay, mình cũng đang tìm hiểu về phần này nhưng cảm thấy mơ hồ quá, bạn có thể post tiếp tài liệu được không? mình rất cảm ơn bạn...
ReplyDeleteAnh chị ơi!.có thể cho em biết ở bước 3 .mình lưu cách nào vậy.giúp em với.
ReplyDeletethank cả nhà!