Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÈÃLinuxϵͳ·ÀÖ¹syn¹¥»÷

ÐéÄâÖ÷»ú·þÎñÉÌÔÚÔËÓª¹ý³ÌÖпÉÄÜ»áÊܵ½ºÚ¿Í¹¥»÷£¬³£¼ûµÄ¹¥»÷·½Ê½ÓÐSYN£¬DDOSµÈ¡£Í¨¹ý¸ü»»IP£¬²éÕÒ±»¹¥»÷µÄÕ¾µã¿ÉÄܱܿª¹¥»÷£¬µ«ÊÇÖжϷþÎñµÄʱ¼ä±È½Ï³¤¡£±È½Ï³¹µ×µÄ½â¾ö·½·¨ÊÇÌíÖÃÓ²¼þ·À»ðǽ¡£²»¹ý£¬Ó²¼þ·À»ðǽ¼Û¸ñ±È½Ï°º¹ó¡£¿ÉÒÔ¿¼ÂÇÀûÓÃLinux ϵͳ±¾ÉíÌṩµÄ·À»ðǽ¹¦ÄÜÀ´·ÀÓù¡£
µÖÓùSYN SYN¹¥»÷ÊÇÀûÓÃTCP/IPЭÒé3´ÎÎÕÊÖµÄÔ­Àí£¬·¢ËÍ´óÁ¿µÄ½¨Á¢Á¬½ÓµÄÍøÂç°ü£¬µ«²»Êµ¼Ê½¨Á¢Á¬½Ó£¬×îÖÕµ¼Ö±»¹¥»÷·þÎñÆ÷µÄÍøÂç¶ÓÁб»Õ¼Âú£¬ÎÞ·¨±»Õý³£Óû§·ÃÎÊ¡£
LinuxÄÚºËÌṩÁËÈô¸ÉSYNÏà¹ØµÄÅäÖã¬ÓÃÃüÁ sysctl -a | grep syn ¿´µ½£º
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlogÊÇSYN¶ÓÁеij¤¶È£¬tcp_syncookiesÊÇÒ»¸ö¿ª¹Ø£¬ÊÇ·ñ´ò¿ªSYN Cookie ¹¦ÄÜ£¬¸Ã¹¦ÄÜ¿ÉÒÔ·ÀÖ¹²¿·ÖSYN¹¥»÷¡£tcp_synack_retriesºÍtcp_syn_retries¶¨ÒåSYN µÄÖØÊÔ´ÎÊý¡£¼Ó´óSYN¶ÓÁг¤¶È¿ÉÒÔÈÝÄɸü¶àµÈ´ýÁ¬½ÓµÄÍøÂçÁ¬½ÓÊý£¬´ò¿ªSYN Cookie¹¦ÄÜ¿ÉÒÔ×èÖ¹²¿·Ö SYN¹¥»÷£¬½µµÍÖØÊÔ´ÎÊýÒ²ÓÐÒ»¶¨Ð§¹û¡£
µ÷ÕûÉÏÊöÉèÖõķ½·¨ÊÇ£º
Ôö¼ÓSYN¶ÓÁг¤¶Èµ½2048£º
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
´ò¿ªSYN COOKIE¹¦ÄÜ£º
sysctl -w net.ipv4.tcp_syncookies=1
½µµÍÖØÊÔ´ÎÊý£º
sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3
ΪÁËÏµÍ³ÖØÆô¶¯Ê±±£³ÖÉÏÊöÅäÖ㬿ɽ«ÉÏÊöÃüÁî¼ÓÈëµ½/etc/rc.d/rc.localÎļþÖС£
 
# vi /etc/sysctl.conf
 
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_rmem = 32768
net.ipv4.tcp_wmem = 32768
 
·Àֹͬ²½°üºéË®£¨Sync Flood£©
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
Ò²ÓÐÈËд×÷
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s ÏÞÖÆsyn²¢·¢ÊýÿÃë1´Î£¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÐÞ¸Ä
·ÀÖ¹¸÷ÖÖ¶Ë¿ÚɨÃè
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
PingºéË®¹¥»÷£¨Ping of Death£©
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCE


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

LinuxÖÐALIGNºêµÄÔ­Àí

1. Òý×Ó
int a;  
int size = 8;
   
Èç¹ûÈÃaΪ(size =8)µÄÕûÊý±¶±íʾ³É¶þ½øÖÆÓ¦ÊÇʲôÑù×ÓÄØ£¿ÄǾÍÊÇÈÃÕâ¸öÊý±íʾ³É¶þ½øÖÆÊ±µÄ×îºóÈýλΪ0.
¶øÒª´ïµ½ÕâһĿ±ê£¬Ö»ÒªÏÂÃæÕâ¸öÊýÓëËü½øÐÐÓëÔËËã¾Í¿ÉÒÔÁË:
  11111111 11111111 11111111 11111000  
¶øÉÏÃæÕâ¸öÊýʵ¼ÊϾÍÊ ......

Linux C notes (BOOK UNIX)

Chapter 1: Thread
¢Ù thread functions
1. pthread_self();
2. thread existing
    you can get the value of rval_ptr just by  pthread_join(pthread_t tht, void ** rval_ptr)
    cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......

linuxϵͳ±à³Ì´úÂë1

#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <time.h>
#include <unistd.h>
#define TIME_STRING_BUF 50
char * timestring(time_t t,char *buf)
 {
   struct tm *local; ......

LinuxϵͳÐÔÄÜÖ¸±ê½éÉÜ

http://andrew913.javaeye.com/blog/431259
Àí½âLinuxµ÷ÓŲÎÊý
ÔÚÎÒÃǽéÉÜLinuxϵͳµÄ¸÷ÖÖµ÷ÓŲÎÊýºÍÐÔÄܼà²â¹¤¾ß֮ǰ£¬ÐèÒªÏÈÌÖÂÛһЩ¹ØÓÚÐÔÄܵ÷ÓŵIJÎÊý¡£ÒòΪLinuxÊÇÒ»¸ö¿ªÔ´²Ù×÷ϵͳ£¬ËùÒÔÓÖ´óÁ¿¿ÉÓõÄÐÔÄܼà²â¹¤¾ß¡£¶ÔÕâЩ¹¤¾ßµÄÑ¡ÔñÈ¡¾öÓÚÄãµÄ¸öÈËϲºÃºÍ¶ÔÊý¾Ýϸ½ÚµÄÒªÇó¡£ËùÓеÄÐÔÄܼà²â¹¤¾ß¶¼Êǰ´ÕÕͬÑùµÄ¹æÔòÀ´ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ