banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận bảo mật Các pro chỉ giúp em cách tunning con webserver này với  XML
  [Question]   Các pro chỉ giúp em cách tunning con webserver này với 04/03/2009 14:11:16 (+0700) | #1 | 171862
duejigum
Member

[Minus]    0    [Plus]
Joined: 09/11/2007 12:49:42
Messages: 9
Offline
[Profile] [PM]
Tôi mơi được quản lý một máy chủ vơi gần 50 site bé thôi. Gân đây không hiểu máy chạy ì ạch quá.
Co nhưng lúc chỉ co 100 etablish thôi mà may cứ đơ ra. Tôi kiểm tra thi thấy Mysql có vẻ CPU cao, Và time_waite nhiều qua

Để các bạn có thể giúp được nhiều hơn tôi đưa ra một vài thông số . Rất mong sự giúp đỡ của các bạn

Phần cứng
4gh RAM
core 2 due Intel(R) Xeon(R) CPU X3210 @ 2.13GHz

Hien may chu dang chay cpannel cung php mysql

Tôi đa tunning apache vơi thông sô :

KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 5
#UseCanonicalName Off
UseCanonicalName On


<IfModule prefork.c>
StartServers 5
ServerLimit 500
MinSpareServers 10
MaxSpareServers 50
MaxClients 400
MaxRequestsPerChild 5000
</IfModule>

Tunning mysql

set-variable = max_connections=750
set-variable = max_user_connections=720
set-variable = table_cache=15394
set-variable = thread_concurrency=2
set-variable = interactive_timeout=10
set-variable = open_files_limit=35000
set-variable = query_cache_limit=2
set-variable = query_cache_size=90M
set-variable = thread_cache_size=128
set-variable = connect_timeout=15
set-variable = thread_cache_size=228
set-variable = key_buffer_size=20M
set-variable = join_buffer_size=4M
set-variable = long_query_time=5
safe-show-database


Hiện tại sử dụng disable function trong php.ini và mod_secutiry2 để chặn shell và một số kiểu tấn công khác

Firewall tôi đang sử dụng iptables :

-I INPUT -d xxxxx -p tcp -m tcp --dport 80 -m state --state ESTABLISHED -m connlimit --connlimit-above 9 --connlimit-mask 32 -j REJECT
-I INPUT -d xxxxxx -p tcp -m tcp -m state --state ESTABLISHED -m connlimit --connlimit-above 9 --connlimit-mask 32 -j REJECT
-I INPUT -d xxxxx -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 14 --connlimit-mask 32 -j REJECT

-I INPUT -d xxxxxxxx -p tcp -m tcp --dport 80 --tcp-flags PSH,ACK PSH,ACK -m string --string "post.swf" --algo bm --from 10 --to 700 -j REJECT --reject-with icmp-port-unreachable


Trước đây khi sử dụng drop trên firewall làm số SYN quá nhiều > 1000
Khi tôi sử dụng REJECT cho firewall thì số TIME_WAITE lại quá nhiều > 600 (Số establish chỉ co 120)

Tôi đá tiến hành tunning OS :

net.core.somaxconn = 2048
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20

Nhưng lượng time_wait vấn nhiều làm chiếm bộ nhớ có thể gây ra cham hệ diều hành

Tôi khôn ghiểu tại sao có nhưng lúc số establish ko nhiều mà số connection đến MYSQL lại tăng vụt gân 500 và CPU thực sự đơ
Mong các ban giúp tôi
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 06/03/2009 22:22:25 (+0700) | #2 | 172117
duejigum
Member

[Minus]    0    [Plus]
Joined: 09/11/2007 12:49:42
Messages: 9
Offline
[Profile] [PM]
Bác conmale ơi để post được bài này em đã phải rewrite 3 lần . Bac làm ơn trả lời giúp em với ah

[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 06/03/2009 23:20:08 (+0700) | #3 | 172120
[Avatar]
kenshin8x
Member

[Minus]    0    [Plus]
Joined: 29/11/2006 20:45:54
Messages: 195
Location: ĐH CNTT
Offline
[Profile] [PM]
theo mô tả của bạn thì có lẽ bạn đang bị DOS. mình nghĩ bạn chưa đọc kỹ "Ký sự các vụ DDoS đến HVA " của anh comale rồi! việc thiết lập các thông số dựa vào nhiều yếu tố để tính toán các giá trị phù hợp. và khó khăn của bạn chính là máy chủ của bạn có tới gần 50 site smilie .
theo mình trước tiên bạn nên kiểm tra xem nguyên nhân gì khiến cho server của bạn trở nên ì ạch như vậy. bạn kiểm tra log, kiểm tra các gói tin ra vào server của bạn. Nếu được thì bạn đưa một vài thông tin về tcpdump và log lên đây để mọi người giúp đỡ.
Thân!
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 07/03/2009 01:04:17 (+0700) | #4 | 172139
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Thêm mấy cái này nữa:

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 108000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 5

Thêm 1 dòng:

-A INPUT -p tcp --syn -d xxxx --dport 80 -m limit --limit 3 --limit-burst 3 -j DROP trước các dòng có -m connlimit.

Nên dùng -j DROP thay vì -j REJECT cho các dòng lệnh luật. vì máy chủ của mình phải tốn thêm tài nguyên để "reject".

What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 10/03/2009 03:51:29 (+0700) | #5 | 172552
duejigum
Member

[Minus]    0    [Plus]
Joined: 09/11/2007 12:49:42
Messages: 9
Offline
[Profile] [PM]
Cảm ơn bác conmale đã trả lời giúp em . Em có mốt số thắc mắc nữa ạh
Theo em hiểu với
-A INPUT -p tcp --syn -d xxxx --dport 80 -m limit --limit 3 --limit-burst 3 -j DROP
thì tôc độ syn sẽ bị giới hạn 3 lần trên một giây. Mà server của em chạy một lúc 50 site thì trong một thời điểm chỉ cần co 4 site có người truy cập đồng thời thì sẽ bị DROP ah anh comale

Ah em hỏi thêm limit-Burst là 3 có phải cứ sau 3 gói syn thì rule sẽ được giới hạn với tốc đôn 3syn/s. và khi tôc độ syn thực tế mà bé hơn 3syn/s thì dần dần nó lại quay về trạng thái ban đầu tức là 3 tổng số gói syn = 3 thì rule được áp dụng đúng không ah

Nếu theo như anh dùng DROP nhiều thì lúc đó SYN_RE sẽ nhiều ah. Bộ nhớ vẫn tốn chứ anh
Còn timewaite thì lam sao để giảm được anh theo em có 2 cai timewait là TCP và Firewall thì êm đã tunning
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
và timwaite của TCP = 20s
Vậy thời gian giải phóng timewaite chỉ là 40s nhưng trên thực tế là 60s --> Tại sao anh nhỉ

Mong câu trả lời của bác
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 10/03/2009 05:06:16 (+0700) | #6 | 172573
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

duejigum wrote:
Cảm ơn bác conmale đã trả lời giúp em . Em có mốt số thắc mắc nữa ạh
Theo em hiểu với
-A INPUT -p tcp --syn -d xxxx --dport 80 -m limit --limit 3 --limit-burst 3 -j DROP
thì tôc độ syn sẽ bị giới hạn 3 lần trên một giây. Mà server của em chạy một lúc 50 site thì trong một thời điểm chỉ cần co 4 site có người truy cập đồng thời thì sẽ bị DROP ah anh comale
 

Thì em chỉnh cho phù hợp với hoàn cảnh của server mình. Anh chỉ cho 1 con số như thế, em cần chỉnh cho thích hợp.

duejigum wrote:

Ah em hỏi thêm limit-Burst là 3 có phải cứ sau 3 gói syn thì rule sẽ được giới hạn với tốc đôn 3syn/s. và khi tôc độ syn thực tế mà bé hơn 3syn/s thì dần dần nó lại quay về trạng thái ban đầu tức là 3 tổng số gói syn = 3 thì rule được áp dụng đúng không ah
 

Đại loại là thế.

duejigum wrote:

Nếu theo như anh dùng DROP nhiều thì lúc đó SYN_RE sẽ nhiều ah. Bộ nhớ vẫn tốn chứ anh
 

syn vào nhiều là do bên ngoài vào nhiều chớ chẳng phải do mình drop mà nó có nhiều hơn. Bị syn thì thế nào cũng tốn bộ nhớ mà bị syn xong rồi, thiết lập xong request đến tận http và vào đến 1 URL nào đó (có dính đến việc tạo query đến DB) thì càng tốn hơn nữa. Vậy, cứ xét cái nào ít tốn hơn thì làm và nên nghĩ rằng bị DDoS luôn luôn tốn.

duejigum wrote:

Còn timewaite thì lam sao để giảm được anh theo em có 2 cai timewait là TCP và Firewall thì êm đã tunning
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
và timwaite của TCP = 20s
Vậy thời gian giải phóng timewaite chỉ là 40s nhưng trên thực tế là 60s --> Tại sao anh nhỉ
 

Không hiểu câu này. Thực tế nào? Em dựa vào đâu để có "thực tế" ấy?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 11/03/2009 03:41:50 (+0700) | #7 | 172750
duejigum
Member

[Minus]    0    [Plus]
Joined: 09/11/2007 12:49:42
Messages: 9
Offline
[Profile] [PM]

conmale wrote:

duejigum wrote:
Cảm ơn bác conmale đã trả lời giúp em . Em có mốt số thắc mắc nữa ạh
Theo em hiểu với
-A INPUT -p tcp --syn -d xxxx --dport 80 -m limit --limit 3 --limit-burst 3 -j DROP
thì tôc độ syn sẽ bị giới hạn 3 lần trên một giây. Mà server của em chạy một lúc 50 site thì trong một thời điểm chỉ cần co 4 site có người truy cập đồng thời thì sẽ bị DROP ah anh comale
 

Anh tư vấn giúp em với. Cái này phải nói là thật sự khó anh ạh ?


conmale wrote:

syn vào nhiều là do bên ngoài vào nhiều chớ chẳng phải do mình drop mà nó có nhiều hơn. Bị syn thì thế nào cũng tốn bộ nhớ mà bị syn xong rồi, thiết lập xong request đến tận http và vào đến 1 URL nào đó (có dính đến việc tạo query đến DB) thì càng tốn hơn nữa. Vậy, cứ xét cái nào ít tốn hơn thì làm và nên nghĩ rằng bị DDoS luôn luôn tốn.
 

Em nghĩ vỉ Syn bi drop nên tiếp tuc syn qua đó se làm lượng syn nhiều mà anh. Nhưng ko sao đúng là phương án nào tốt nhất thì chọn hiiiiii

duejigum wrote:

Còn timewaite thì lam sao để giảm được anh theo em có 2 cai timewait là TCP và Firewall thì êm đã tunning
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
và timwaite của TCP = 20s
Vậy thời gian giải phóng timewaite chỉ là 40s nhưng trên thực tế là 60s --> Tại sao anh nhỉ
 

Không hiểu câu này. Thực tế nào? Em dựa vào đâu để có "thực tế" ấy? 

Cái này em test băng ngồi tính thời gian giải phong của một timeout qua script thôi ah
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 11/03/2009 10:42:45 (+0700) | #8 | 172796
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]

conmale wrote:
Thêm mấy cái này nữa:

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 108000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 5
 


Anh cho em chút ít tài liệu về những thông số trên được không anh?
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children"
[Up] [Print Copy]
  [Question]   Re: Các pro chỉ giúp em cách tunning con webserver này với 11/03/2009 18:46:38 (+0700) | #9 | 172821
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

mR.Bi wrote:

conmale wrote:
Thêm mấy cái này nữa:

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 108000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 30
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 5
 


Anh cho em chút ít tài liệu về những thông số trên được không anh? 


Trong source code của kernel có thư mục "Documentation". Trong thư mục này có "networking" và bên trong "networking" có ip-sysctl.txt.

Một bản online: http://www.mjmwired.net/kernel/Documentation/networking/ip-sysctl.txt
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|