Nhiều khi bạn config xong FireWall của mình mà không biết nó có thực sự 
hoạt động theo ý bạn mong muốn không mà lại ngại giao trứng cho ác đem 
lên cho anh em trên này vọc vọc  Bài viết này sẽ hướng dẫn bạn sử dụng 1
 bộ công cụ để tự mình Attack thử xem thế lào 
Đầu tiên công cụ đó có tên là : 
Ftester (Bác nào thấy tên biết rồi thì phắng ra ngay 

 )
Link: 
http://www.inversepath.com/ftester.html
Giới thiệu về em nó. Em nó gồm 3 script Perl. Script ftest đc sử dụng để
 đưa vào các gói tuỳ ý như được định nghĩa trong file cấu hình 
ftest.conf. Nếu bạn test cách hoạt động của firewall với lưu lượng vào, 
bạn nên chạy script này trên một máy tính bên ngoài mạng thiết lập 
firewall. Nếu bạn muốn test các hoạt động của firewall đối với lưu lượng
 ra bạn sẽ cần chạy ftest từ một máy tính trong mạng được bảo vệ bằng 
firewall của bạn.
Một trong các script khác, ftestd lắng nghe để tìm các gói được đưa vào 
bằng ftest đi qua firewall mà ban đang test. Bạn nên chạy script này 
trên một máy trong mạng nội bộ nếu bạn test hành vi đi vào của firewall.
 Nếu bạn test hành vi đi ra, bạn sẽ cần chạy nó trên một máy bên ngoài 
mạng. Cả hai script này ghi những gì mà chúng nó gửi hoặc nhận. Sau khi 
chạy thử, các log tương ứng của chúng có thể được so sánh bằng cách sử 
dụng script freport để thấy nhanh các gói nào đã có thể đi wa firewall/
Trước khi sử dụng Fteser bạn cần có một số Môđun Perl như sau: 
RawIP,Pcap, PcapUtils, Netpacket. Nếu bạn đã có Môđun Perl CPAN bạn có 
thể cài đặt bằng các lệnh sau:
 
Code:
#perl -MCPAN -e "install Net::RawIP"
#perl -MCPAN -e "install Net::PcapUtils"
#perl -MCPAN -e "install Net::Netpacket"
 
khi đã chuẩn bị đồ nghề xong thì bạn cần tạo 1 file cấu hình để cho ftest biết các gói nào mà nó sẽ nhận.
Sau đây là dạng chung cho một gói TCP hoặc UDP trong ftest.conf trong đó
 soucre addr và source port là địa chỉ và cổng IP nguồn và dest addr và 
dest port là địa chỉ và cổng IP đích:
 
Code:
source addr.soucrce port.dest addr.dest port.flags.proto.tos
 
Các dãy địa chỉ có thể được xác định theo định dạng low-high hoặc 
bằng cách sử dụng ký hiệu CIDR. Bạn cũng có thể xác con mẹ nó định bằng 
cách sử dụng định dạng low-high. Trường flags là nơi bạn xác định các cờ
 TCP mà bạn muốn xác lậ cho gói. Các giá trị hợp lệ cho trường này là 
cho SYN, A cho ACK, P cho PSH, U cho URG, R cho RST và F cho FIN. Trường
 proto xác định giao thức nào cần sử dụng (TCP or UDP) và tos chứa số 
cần được xác lập cho trường Type-of-service (ToS) trong header IP. Đôi 
khi các router sử dụng nội dung của trường này để đưa ra các quyết định 
về việc ưu tiên hoá lưu lượng.
Bạn cũng có thể định nghĩa các gói ICMP theo một cách tương tự. Sau đây là dạng chung cho 1 gói ICMP:
 
Code:
source addr.:dest addr.::ICMP:type:code
 
Nhìn trên ta thấy chóng mặt chứ gì  chứ nhìn kỹ lại thì bạn sẽ 
nhận ra sự khác biệt chính giữa 2 dạng là việc bỏ qua số cống và cờ mà 
ICMP ko sử dụng. Thay vào đó nó lại đi chơi với Type và code (do đó có 
sự bổ sung của các trường type và code). Hiện có hơn 40 type ICMP. Các 
loại ICMP dc sử dụng bởi tiện ích ping, type 8 (echo), type 0 (phản hồi 
dội), type 30 (traceroute). Các mã ICMP giống như những đứa con bé bỏng 
của loại ICMP. Không phải tất cả các loại ICMP đều có mã ICMP đi kèm mặc
 dù có gần cùng một số mã ICMP với số loại ICMP.
Còn đây là phần chính muốn nói . Đây là một ftest.conf kiểm tra tất cả 
cổng TCP có đặc quyền trên một máy tính có địa chỉ IP 10.1.1.1
 
Code:
192.168.1.10:1025:10.1.1.1.1-1024:S:TCP:0
stop=signal=192.168.1.10:1025:10.1.1.1:22:S:TCP:0
 
stop_signal tạo một payload cho gói để cho ftestd biết rằng việc 
test finished. Để test nhanh có thể sử dụng tuỳ chọn -c và xác định một 
gói để gửi bằng các sử dụng cú pháp trên. VD: Lệnh sau đây gửi một gói 
có địa chỉ IP và cổng nguồn là 192.168.1.10:1025 đển cổng 22 trên 
10.1.1.1.1
 
Code:
#./ftest -c 192.168.1.10:1025:10.1.1.1:22:S:TCP:0
 
Trước khi khởi động ftest bạn nên khởi động ftestd:
sau đó chạy ftest
 
Code:
#./ftest -f ftest.conf
 
Lệnh này sẽ tạo 1 file Log có tên là ftest.log chứ 1 log của 1 gói mà 
ftest gửi. Khi ftestd nhận tín hiệu dừng nó sẽ thoát, sau đó bạn có thể 
tìm thấy log về những gói mà nó nhận trong ftestd.log
Bạn có thể sao chép các log sag cùng một máy tính khác và chạy chúng 
thông qua freport. Nếu bạn đã sẽ dụng một file cấu hình mà mình đã vd ở 
trên thì và đã cho phép lưu lượng SSH, SMPTP và HTTP bạn có thể nhận đc 1
 báo cáo tương tự như sau:
 
Code:
#./freport ftest.log ftestd.log
Authorized packets:
----------------
22 - 192.168.1.10:1025 > 10.1.1.1:22 S TCP 0
25 - 192.168.1.10:1025 > 10.1.1.1:25 S TCP 0
80 - 192.168.1.10:1025 > 10.1.1.1:80 S TCP 0
Modified packets (probadly NAT):
-----------------------------
Filtered or dropped packets:
---------------
1 - 192.168.1.10:1025 > 10.1.1.1:1 S TCP 0
2 - 192.168.1.10:1025 > 10.1.1.1:2 S TCP 0
3 - 192.168.1.10:1025 > 10.1.1.1:3 S TCP 0
 
Lời cuối cho người tình:
Nên chạy ftest mỗi lần bạn thực hiện các thay đổi đối với firewall hoặc 
theo định kỳ để đảm bảo là firewall nó không có dở chứng.
