Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 20-07-2009, 10:58 AM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Phân tích, ngăn chặn một cuộc tấn công , DOS, DDOS
Phân tích, ngăn chặn một cuộc tấn công DOS, DDOS

Một bữa đẹp trời đang ngồi nghiên cứu cái joomla thì anh cutynhangheo quăng cho cái này thấy hay wa save liền trong máy. Nhưng mà tài liệu này bằng tiếng Anh , với trình độ anh văn kém cỏi toàn bị anh khuong_dx shock không ,nên quyết định ngồi dịch cái này cho anh em cùng tham khảo ,nếu thấy trình độ English của LK kém quá đừng cười nha !!!
Cố Gắng Dừng DDOS
Một Router bị vô hiệu hóa do một IP nào đó trên Router hoạt động không bình thường . Nó được giải đáp nhanh do :
1) Nó bị j chệch trong một cuộc tấn công thật
2) Nó không có vấn đề gì , chỉ là một bài tập đơn giản
A) Phát hiện tấn công
1) Sử dụng dòng lệnh “netstat”
Ta có thể dùng câu lệnh “netstat” để phát hiện xâm nhập với cấu trúc câu lệnh dưới ;
Code: Select all
netstat -an | grep :80 | sortCode: Select all
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'Code: Select all
netstat -n -p|grep SYN_REC | wc -lCode: Select all
netstat -lpn|grep :80 |awk '{print $5}'|sortCode: Select all
netstat -an | grep :80 | awk '{ print $5 }' | awk -F: '{ print $1 }' | sort | uniq -c | sort -nAttack example SYN_RECV or SYN Flooding to the Apache (port 80).
Code: Select all
tcp 0 0 192.168.0.3:80 192.168.0.5:60808 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60761 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60876 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60946 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60763 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60955 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60765 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60961 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60923 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61336 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61011 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60911 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60758 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60828 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61114 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61074 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60826 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60959 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60900 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60940 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60920 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60825 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60945 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60913 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61009 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60755 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60904 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61583 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60910 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60915 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60827 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61458 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60908 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61007 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60927 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60951 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60942 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61113 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60909 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60822 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60894 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60952 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60928 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60936 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60906 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61466 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60919 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60914 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60926 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60939 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60931 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60831 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60823 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60954 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60916 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60963 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60947 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61006 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60933 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60950 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60895 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60917 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61480 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60935 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60960 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60767 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60918 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60821 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61077 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60905 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61517 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60893 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60953 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60903 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61439 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61337 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61545 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61299 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61010 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60930 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60744 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60929 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60754 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61008 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61116 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60811 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60807 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60938 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60764 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60873 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60817 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61550 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60748 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60956 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60753 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61115 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60741 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61075 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60948 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60829 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60943 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61338 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60762 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60824 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60830 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61535 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60898 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60815 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60962 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60957 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60944 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60921 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60759 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60897 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61518 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60958 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60922 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60937 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60875 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60766 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60751 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60768 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60743 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:61076 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60912 SYN_RECV
tcp 0 0 192.168.0.3:80 192.168.0.5:60816 SYN_RECV
Ở trên là một ví dụ của việc SYN-Attack đến Apache
2)Xem xét trạng thái server của apache
Nếu như chúng ta nhìn vào trạng thái Server của Apache thì chúng ta sẽ thấy các kết nối trong trạng thái ‘Reading’(‘R’ Reading Request).Vấn đề xảy ra khi con số của kết nối ‘Reading’ đầy trong ‘Maxclient’ của Apache thì Apache sẽ không đồng ý với các yêu cầu kết nối mới của các client mới , mặc dù các yêu cầu đó hợp lệ nhưng nó vẫn không kết nối.
Chúng ta có thể tăng giá trị của ’MaxClients’ để cho các đường yêu cầ kết nối không bị đầy và lúc này các yêu cầu của tất cả client đều được chấp nhận.
Một cách đánh giá khác là ta có thể giảm giá trị của ‘Timeout’ của Apache để các yêu cầu ‘Reading’ chúng sẽ ngắt kết nối của các yêu cầu nhanh chóng trước khi MaxClient bị đầy.
3)Xem xét logs của mod_evasive
Nếu như nó là dạng Distributed DOS (DDOS) một dạng tấn công từ chối dich vụ phân phối thì chúng ta sẽ thấy trong logs có rất nhiều địa chỉ IP khác nhau yêu cầu kếu nối đến Apache
4)Xem xét logs của syslog (của kernel)
Ta tìm dòng :
-possible SYN flooding on port 80.
-Sending cookies."Sending Cookies"
- nếu như chúng được bật trong /etc/sysctl.conf
# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1.
- Đôi khi tốt hơn nếu chúng được tắt đi:
net.ipv4.tcp_syncookies = 0 .
-Đường này chúng ta có thể thấy được Ip’s của attack:
May 17 1424 lan kernel
-ip_conntrack : table full, droping packet.Full Table. Chúng có vấn đề bởi vì chúng không chấp nhận nhiều kết nối mặc dù chúng hợp pháp. Chúng ta có thể tăng giá trị của ‘chart’ nếu như mạng chúng ta cho nhiều hơn.
Directly: echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max
Để giá trij được lưu và không bị mất khi khởi đọng lại máy chúng ta cần tăng thêm giá trị của chúng bên trong sysctl.conf
net.ipv4.ip_conntrack_max = 65535remembers to restart the net to apply the changes in the / proc (service network restart).
-Martian packages:
Aug 31 1229 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1207 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1257 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1255 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 13:08:12 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1303 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1338 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1338 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1342 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1318 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1354 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1432 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1408 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1442 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1405 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1405 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 1458 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 15:05:27 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 15:06:14 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0
Aug 31 15:09:08 lan kernel: martian source 192.168.0.10 from 0.0.0.0, on dev eth0

Chúng không mong muốn các packages đó đến đường ,nơi mà chúng không thể đến nơi nhận thấy vấn đề của sự cản trở(cracker).Sử dụng các packages giống nhau có thể giúp attacker tấn công bên trong stacks TCP/IP
5)Xem xét trên đồ thiij của MRTG,RRDtool
Nếu như bạn thấy lưu lượng (traffic) đi về tăng lên đến 100mbps . Chắc hẳn họ đang muốn làm j` bạn đây ,hihi
B)Cố gắng dừng tấn công DDOS
1) - mod_evasive
Web Oficial:
http://www.nuclearelephant.com/projects/mod_evasive/
Chúng ta cân nhắc rằng nếu 50 kết nối trên 2 giây đến 2 trang ,nếu như đã đủ vậy thì tôi sẽ chặn IP đó lại. Tương tự như vậy nhưng 50 yêu cầu trong 1 giây đến một trang thì ta cũng block Ip đá lại.
Nếu như bạn muốn chặn(block) Ip làm flood (tràn ngập) thì bạn có thể sử dụng iptables
DOSSystemCommand "sudo -u root -c '/sbin/iptables -A INPUT -s %s -j DROP"To remember to look at the syslog for if there are possible positive reinforcements (ip's that didn't make flood).
Tránh những xác thực sai
Để cho mod_evasive làm việc chính xác bạn cần phải điều chỉnh :
MaxRequestsPerChild 0To put a high but never limitless value (0).
MaxRequestsPerChild 10000Config example:
http://www.eth0.us/mod_evasive

2)mod_security
Vấn đề của mod_security là bạn cần phải đổi tham số để phát hiện cược tấn công nhỏ nhất. Trong một ví dụ chúng ta sử dụng trong http_referer và User Agent để phát hiện DDOS

3)Tcplimit,Ipdrop,IPblock
Sử dụng dynamic firewalls

4)Tối ưu hóa và đảm bảo cho mạng của bạn với sysctl.conf
cat /proc/sys/net/ipv4/tcp_syncookies
# Enable IP spoofing protection, turn on Source Address Verification
net.ipv4.conf.all.rp_filter = 1
# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
a) Activate SynCookies protection : Nó làm việc bằng cách gửi ra ngoài ‘syncookies’ khi syn sắp xếp dự trữ của socket bị tràn
b) Disable source routing
c) Reverse Path Filtering: Bác bỏ các packets đi vào nếu như địa chỉ IP nguồn không phù hợp với network interface
d) Log RP filter dropped packets (martians)
e) Maximal number of remembered connection requests
=> /sbin/sysctl -w net.ipv4.tcp_max_syn_backlog=256 ).
f) How may times to retry before killing TCP connection (default 7 on most systems)
=> /sbin/sysctl -w net.ipv4.tcp_orphan_retries=47).
g) Number of SYN packets the kernel will send before giving up
=> /sbin/sysctl -w net.ipv4.tcp_syn_retries=5 8).
h) Disable broadcast icmp reply
=> /sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
i) Disable ICMP redirect
j) Disable timestamps
k)Reduce DOS ability by reducing timeouts.
Danh sach của tất cả cái có thể thay đổi được của TCP
http://ipsysctl-tutorial.frozentux.n...variables.html
Danh sach của tất cả cái có thể thay đổi được của / proc/sys/net/ipv4 / * (with default varlores(bình ổn) and explanations(giải thích))
http://ipsysctl-tutorial.frozentux.n.../ip-sysctl.txt
5) APF Firewall with the module anti-ddos
http://www.rfxnetworks.com/downloads/apf-current.tar.gz
tar xvzf apf-current.tar.gz
cd apf-0.9.6-1/
./install.shservice apf start
/usr/local/sbin/apf –s
Cấu hình file :
/etc/apf/conf .apf
- After making the tests leave: DEVEL_MODE="0"
- If it leaves us a similar error to this:: apf(9413): unable to load iptables module (ip_tables), aborting.We change this: SET_MONOKERN="1"
-Ports that we want to open up (inbound)
IG_TCP_CPORTS="21,22,25,53,80,110"
-If you want to block the whole exit traffic puts it in 1 (outbound): EGF="0"
- If we want to use the module antddos to put at 1: USE_AD="0"
Log:
/var/log/apf_log
To see the packages:
LOG_DROP="1"will keep it in the syslog, example:
remembers that to use the antidos you should add the cron job:
*/8 * * * * root /etc/apf/ad/antidos -a >> /dev/null 2>&1
http://www.r-fx.org/apf/README.antidos

KISS My Firewall is an alternative.

Script PHP
http://www.prism-hosting.com/AntiDoS

6) To stop the botnet

ZmbScap - Zombie Scapper - Stoopt DDoS Programs
http://www.metaeye.org/projects/zmbscap/

Tracking Botnets - Bot-Commands
http://www.honeynet.org/papers/bots/...-commands.html

Tracking Botnets
http://www.honeynet.org/papers/bots/

Tracking Botnets - DDoS-attacks
http://www.honeynet.org/papers/bots/botnet-ddos.html

Phatbot Trojan Analysis
http://www.lurhq.com/phatbot.html

F-Bot by f-secure - it Eliminates the Agobot and all their variants
http://www.f-secure.com/tools/f-bot.zip

Nepenthes - Autoinfecarse without danger to analyze
http://nepenthes.mwcollect.org/

honeytrap – trap attacks against tcp services
http://honeytrap.sourceforge.net/

7 - using rules of the iptables


8 - using the mod_throttle


http://www.snert.com/Software/mod_throttle/

Others:
Mod_Throttle, mod_bandwidth, mod_iplimit, mod_tsunami, mod_limitipconn.c

ForApache 2:
mod_cband

Code: Select all
<IfModule mod_throttle.c>
ThrottlePolicy Volume 10G 30d
</IfModule>
<Location /throttle-me>
SetHandler throttle-me
</Location>
http://www.webhostgear.com/160.html

C) References (Tham khảo)

- Syctl.conf Hardening
http://www.eth0.us/sysctl

- Ipsysctl tutorial 1.0.4
http://ipsysctl-tutorial.frozentux.n...-tutorial.html

- Hardening the TCP/IP stack to SYN attacks
http://www.securityfocus.com/infocus/1729

- DDOS and SYN_Recv Attacks And some SOlutions
http://www.vbulletin.com/forum/showthread.php?t=126699

- Distributed Reflection Denial of Service
http://www.grc.com/dos/drdos.htm

- Dynamic iptables firewalls
http://www-128.ibm.com/developerworks/library/l-fw/

- Preventing DDoS Attacks
http://www.linuxsecurity.com/content/view/121960/49/

- Distributed Denial of Service (DDoS) Attacks/tools
http://staff.washington.edu/dittrich/misc/ddos/

- Linux firewall rulesets and snippets of rule sets
http://www.gotroot.com/tiki-index.ph...rewall%20rules

Enjoy!

(translate by luongkhiem - )
  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 04:41 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.