wiki:jazz/Trac_Updates

2009-04-19

  • 由於把系統從 Etch 升級到 Lenny, Python 環境因而從 2.4 升級到 2.5, Trac 從 0.10 升級到 0.11, 不管是 trac 舊的設定檔以及 plugin 都不管用了。只好從頭把 Trac Plugin 重裝一次。
  • 設定檔的部分:先用 trac-admin testbed initenv 產生一個全新的範本目錄,然後用 vimdiff 比對有哪些新參數要加進去。
  • Plugin 部分:
    • 首先要注意的是 Trac 0.11 已經把 TracAccountManager 跟 TracWebAdmin 納入,因此不可以再裝,否則會有一堆錯誤。
    • Graphviz Plugin - 用 graphviz 語法畫圖的擴充套件
      $ w3m "http://trac-hacks.org/changeset/latest/graphvizplugin/0.11-0.7.4?old_path=/&filename=graphvizplugin/0.11-0.7.4&format=zip"
      $ unzip unzip graphvizplugin_0.11-0.7.4-r5537.zip
      $ cd graphvizplugin/0.11-0.7.4
      graphvizplugin/0.11-0.7.4$ sudo python setup.py bdist_egg
      graphvizplugin/0.11-0.7.4$ sudo easy_install dist/graphviz-0.7.4-py2.5.egg
      
    • WikiInclude - 讓用 [[WikiInclude(WikiStart)]] 語法來包含其他 Wiki 頁面中的內容
      $ wget "http://trac-hacks.org/attachment/wiki/WikiIncludePlugin/0.11.versions.tbz2?format=raw" -O wikiincludeplugin-0.11.tar.gz
      $ tar jxvf wikiincludeplugin-0.11.tar.gz
      $ cd 0.11
      0.11$ cat > setup.py << EOF
      from setuptools import setup
      
      PACKAGE = 'WikiInclude'
      VERSION = '0.2'
      DESCRIPTION = 'Page include plugin for Trac Wiki'
      
      setup(name=PACKAGE,
            version=VERSION,
            packages=['wikiinclude'],
            entry_points={'trac.plugins': ['wikiinclude.wikiinclude=wikiinclude.wikiinclude']})
      EOF
      0.11$ sudo python setup.py bdist_egg
      0.11$ sudo easy_install dist/WikiInclude-0.2-py2.5.egg
      
    • TracRedirect - 用 [[redirect(網址)]] 語法來作頁面自動轉址
      $ svn co http://svn.ipd.uka.de/repos/javaparty/JP/trac/plugins/redirect-0.11/
      $ cd redirect-0.11/
      redirect-0.11$ sudo python setup.py bdist_egg
      redirect-0.11$ sudo easy_install dist/TracRedirect-0.11.3.dev_r3272-py2.5.egg
      
    • Svnauthz File Administration Plugin - 用來管理誰有權限讀取 SVN 目錄的擴充套件
      $ svn co http://trac-hacks.org/svn/svnauthzadminplugin/0.11/ svnauthzadminplugin-0.11
      $ cd svnauthzadminplugin-0.11
      svnauthzadminplugin-0.11$ sudo python setup.py bdist_egg
      svnauthzadminplugin-0.11$ sudo easy_install dist/SvnAuthzAdminPlugin-0.1.2._Moved.to.Trac.0.11_-py2.5.egg
      
  • 過去習慣會修改的字型大小
    • /usr/share/pyshared/trac/htdocs/css/trac.css

      old new  
      11body { background: #fff; color: #000; margin: 10px; padding: 0; }
      22body, th, td {
      3  font: normal 12px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif;
       3 font: normal 16px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif;
      44}
      55h1, h2, h3, h4 {
      66 font-family: Arial,Verdana,'Bitstream Vera Sans',Helvetica,sans-serif;
  • 以前的 template 也失效了,要改用 site.html 重新定義 - 參考 Site Appearance

2009-04-23

  • 把 /usr/share/pyshared/trac/wiki/default-pages 搬到 /usr/share/pyshared/trac/wiki/default-pages.dpkg,只留下 RecentChangesTitleIndexWikiStart 三個預設頁面。
  • 安裝 AccountManager 擴充套件
    $ svn co http://trac-hacks.org/svn/accountmanagerplugin/0.11 TracAccountManager-0.11
    $ cd TracAccountManager-0.11/
    TracAccountManager-0.11$ sudo python setup.py bdist_egg
    TracAccountManager-0.11$ sudo easy_install dist/TracAccountManager-0.2.1dev_r5273-py2.5.egg
    

2009-05-05

  • 參考 2008-03-28 的紀錄,進行 Cloud 跟 Grid 兩個的 Ticket 攻擊清除。
    ~$ sudo sqlite3 /forge/trac_pool/cloud/db/trac.db
    sqlite> delete from ticket where id >= 1;
    sqlite> delete from ticket_change where time >= 1241185964;
    sqlite> .quit
    ~$ sudo sqlite3 /forge/trac_pool/grid/db/trac.db
    sqlite> delete from ticket where id=10;
    sqlite> delete from ticket where id=11;
    sqlite> delete from ticket where id=12;
    sqlite> delete from ticket where id=27;
    sqlite> delete from ticket_change where time=1240251436;
    sqlite> delete from ticket_change where time=1240007219;
    sqlite> delete from ticket_change where time=1240031903;
    sqlite> .quit
    
  • 由於 0.11 版會把 Timeline 的日期用中文表示,因此如果要自訂 Timeline 顯示的話,會出現錯誤。可能程式邏輯還是衍用 2009-05-05 的格式,因此就在範本加入格式的字串,讓 Form 送出的日期字串可以符合程式邏輯。
    "2009年05月05日" is an invalid date, or the date format is not known. Try "YYYY年MM月DD日" instead.
    
    • timeline/templates/timeline.html

      old new  
      1717
      1818      <form id="prefs" method="get" action="">
      1919       <div>
      20         <label>View changes from <input type="text" size="10" name="from" value="${format_date(fromdate)}" /></label> <br />
       20        <label>View changes from <input type="text" size="10" name="from" value="${format_date(fromdate,'%Y-%m-%d')}" /></label> <br />
      2121        and <label><input type="text" size="3" name="daysback" value="$daysback" /> days back</label>.
      2222       </div>
      2323       <fieldset>

2009-06-09

  • 安裝 piwik 來統計檔案下載次數
    # apt-get install php5-mysql php5-gd libsparkline-php mysql-server phpmyadmin
    # apache2ctl restart
    # cd /var/www/
    /var/www# wget http://piwik.org/latest.zip
    /var/www# unzip latest.zip
    /var/www# chown -R www-data:www-data piwik/
    
  • 完成設定後,系統會告知如何把像 Google Analytics 的 javascript 加到 HTML 裡
    <!-- Piwik -->
    <script type="text/javascript">
    var pkBaseURL = (("https:" == document.location.protocol) ? "https://classcloud.org/piwik/" : "http://classcloud.org/piwik/");
    document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
    </script><script type="text/javascript">
    try {
    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
    } catch( err ) {}
    </script>
    <!-- End Piwik Tag --> 
    
  • 安裝 awstats 統計 deb 下載次數
    • 把 /usr/share/doc/awstats/examples/apache.conf 的內容加入 /etc/apache2/sites-enabled/classcloud.conf
      <VirtualHost X.X.X.X:80>
        ServerName  www.classcloud.org
        ErrorLog    /var/log/classcloud-error_log
        CustomLog   /var/log/classcloud-access_log common
        DocumentRoot "/var/www/hadoop"
        <Directory "/var/www/hadoop">
          Order deny,allow
          Allow from all
        </Directory>
        <Directory /var/lib/awstats>
          Options None
          AllowOverride None
          Order allow,deny
          Allow from all
        </Directory>
        <Directory /usr/share/awstats/icon>
          Options None
          AllowOverride None
          Order allow,deny
          Allow from all
        </Directory>
        Alias /icon/ /usr/share/awstats/icon/
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
          AllowOverride None
          Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
          Order allow,deny
          Allow from all
        </Directory>
      </VirtualHost>
      
      $ cat > /etc/awstats/awstats.classcloud.org.conf << EOF
      LogFile="/var/log/classcloud-access_log"
      LogFormat=4
      SiteDomain="classcloud.org"
      AllowFullYearView=3
      EOF
      
  • 執行 /usr/lib/cgi-bin/awstats.pl --config=classcloud.org
  • 觀察 http://classcloud.org/cgi-bin/awstats.pl 有沒有內容
  • 目前 hadoop 套件的下載量為 94 而已

2009-07-01

  • [備忘] 如果遇到 trac 啟動時出現 Database newer than Trac version 錯誤訊息,解決方法可參考以下步驟 - ticket #6300
    • Reference: http://use.perl.org/~Beatnik/journal/35866
      jazz@drbl-xen-srv:~$ sudo apt-get install sqlite3
      jazz@drbl-xen-srv:~$ sudo sqlite3 /forge/trac_pool/grid/db/trac.db
      SQLite version 3.3.8
      Enter ".help" for instructions
      sqlite> select * from system;
      database_version|20
      repository_dir|svn:164b2d09-da6f-4c29-9524-243417f19678:/forge/trac_pool/maicl/svnroot
      youngest_rev|12
      sqlite> update system set value = 19 where name = "database_version";
      sqlite> .quit
      
  • 例行性安全升級 - Debian GNU/Linux "lenny" 第二次穩定版本更新 5.0.2
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-common base-files gnupg gpgv libaprutil1
      libglib2.0-0 libpango1.0-0 libpango1.0-common libxcb-render0 libxcb-xlib0 libxcb-xlib0-dev
      libxcb1 libxcb1-dev linux-image-2.6.26-2-686 phpmyadmin screen tzdata x11-common xutils
    升級 22 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    

2009-09-06

  • 例行性安全升級
    trac-pool:~# apt-get upgrade
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages will be upgraded:
      base-files devscripts dhcp3-client dhcp3-common libcurl3 libmysqlclient15off libperl5.10
      libssl0.9.8 libvolume-id0 linux-image-2.6.26-2-686 linux-libc-dev mysql-client-5.0
      mysql-common mysql-server mysql-server-5.0 openssl perl perl-base perl-modules python-support
      tzdata udev wordpress x11-common xutils
    25 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 74.5MB of archives.
    After this operation, 1382kB of additional disk space will be used.
    Do you want to continue [Y/n]?
    

2009-11-30

  • 例行性安全升級
    trac-pool:~# apt-get upgrade
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages will be upgraded:
      man-db libgnutls26 apache2-utils apache2.2-common apache2-mpm-prefork
      apache2 php5-common php5-cli libapache2-mod-php5 php5-mysql
      php5-mcrypt libgd2-xpm php5-gd libvorbis0a libvorbisenc2
      libvorbisfile3 libvorbis-dev php-pear
    18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    

2009-12-04

  • 例行性安全升級
    trac-pool:~# apt-get upgrade
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages will be upgraded:
      exim4-config man-db liblockfile1
    3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    

2010-02-08

  • 例行性安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      acpid base-files dhcp3-client dhcp3-common dpkg dpkg-dev gzip libc6 libc6-dev
      libc6-i686 libdbd-mysql-perl libexpat1 libglib2.0-0 libkadm55 libkrb53 libldap-2.4-2
      libldap2-dev libltdl3 libltdl3-dev libmysqlclient15off libpq5 libssl0.9.8 libthai-data
      libthai0 linux-image-2.6.26-2-686 linux-libc-dev locales login mysql-client-5.0
      mysql-common mysql-server mysql-server-5.0 ntpdate openssl passwd python-docutils
      python-roman python2.4 python2.4-dev python2.4-minimal python2.5 python2.5-dev
      python2.5-minimal tzdata usbutils
    升級 45 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 98.5MB 的套件檔。
    此操作完成之後,會多佔用 532kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    
  • 安裝 minin 監控系統 - http://trac.nchc.org.tw/munin
    jazz@trac-pool:~$ sudo apt-get install munin munin-node
    

2010-02-11

2010-02-20

  • 因應 PHP5 安全更新,進行系統安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-mod-php5 libmysqlclient15off mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php-pear
      php5-cli php5-common php5-gd php5-mcrypt php5-mysql
    升級 12 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 0B/42.2MB 的套件檔。
    此操作完成之後,會空出 504kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-02-25

  • [除錯] trac 主機又再度出現 "clocksource tsc unstable" 的錯誤訊息然後就進不去了....不確定上次有沒有作 GRUB menu.lst 修改與否....還是因為 apt-get upgrade 更新到 kernel 被洗掉了....只好再手動加進去 :(
    • /boot/grub/menu.lst

      old new  
      121121
      122122title          Debian GNU/Linux, kernel 2.6.26-2-686
      123123root           (hd0,0)
      124 kernel         /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro
       124kernel         /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro clocksource=acpi_pm
      125125initrd         /boot/initrd.img-2.6.26-2-686
      126126
      127127title          Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
  • 另外發現中午十二點附近都有大量 apache load 真不清楚是哪來的攻擊還是搜尋引擎....記憶體使用量最高 commited 到達 3.88 GB 可能要查一下原因了。

2010-02-26

  • 遇到沒品的 426 .... 沒事同時發起 176 個 web 連線到 trac 網站....
    jazz@drbl:~$ cat 10-02-26_trac_down_reason.log | grep ":" | awk '{ print $5 }' | sed 's#\:.*##' | sort -n | uniq -c | sort -n
    ... 略 ....
          3 114.25.224.118
        176 124.254.15.50
    
    • 設了好幾個做法都很難阻擋,包括 /etc/hosts.deny ... 乾脆來一招狠的: 所有來自這個 IP 的封包全部 DROP 掉,北京使用這個 IP 的朋友....我也沒辦法了....你們有害群之馬
      iptables -A INPUT -s 124.254.15.50 -j DROP
      

2010-03-08

  • 例行性安全升級:sudo 安全漏洞補強
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libcups2 libcupsimage2 libcupsys2 sudo
    升級 4 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 493kB 的套件檔。
    此操作完成之後,會空出 8192B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-03-23

  • 又來一個沒品的 426 .... 沒事同時發起多個 web 連線到 trac 網站....直接用上次那招,浙江無錫使用這個 IP 的朋友....我也沒辦法了....你們有害群之馬
    iptables -A INPUT -s 222.191.249.106 -j DROP
    

2010-03-24

  • 例行性安全升級:PHP 與 Linux Kernel
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      dpkg dpkg-dev libapache2-mod-php5 libpango1.0-0 libpango1.0-common
      linux-image-2.6.26-2-686 linux-libc-dev php-pear php5-cli php5-common php5-gd
      php5-mcrypt php5-mysql
    升級 13 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 30.2MB 的套件檔。
    此操作完成之後,會多佔用 73.7kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-03-26

  • 又來一個 426,怎麼這麼多網軍啊....
       129  tcp6     536      0 140.110.240.196:80      121.235.30.92:9508      CLOSE_WAIT  - 
    
  • iptables -A INPUT -s 121.235.30.92 -j DROP
    
  • 原來 iptables 可以計算過濾了幾個呀!! 加個 "-c" 參數就可以統計
    jazz@trac-pool:~$ sudo iptables-save -c
    ... 略 ...
    [726:33684] -A INPUT -s 121.235.30.92/32 -j DROP
    [0:0] -A INPUT -s 222.191.249.106/32 -j DROP
    [0:0] -A INPUT -s 124.254.15.50/32 -j DROP
    ... 略 ...
    # Completed on Fri Mar 26 22:27:36 2010
    
  • 因為又遇到了兩次攻擊行為,所以想試試看有沒有辦法透過 iptable 的方式把同時連線太多次的加以刪除。參考 Using iptables to throttle incoming connections 的文章,修改成統計 80 port 的連線,再用另一台跑 nc 模擬攻擊。發現每 10 個連線會暫停 10 秒鐘。
    iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource
    iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP
    
  • [參考] 調整網路 TCP TIME_WAIT,快速釋放 connection
    在繁忙的server中我們常常會看到許多狀態已是「TIME_WAIT」的連線
    透過調整系統參數可使連線更快速的釋放
    修改系統預設tcp fin timeout
    
        echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 
    
    調整為30sec
    
    調整tcp參數
    
        net.ipv4.tcp_tw_reuse = 0 
    
    net.ipv4.tcp_tw_reuse = 1 表示開啟重用。
    允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉
    
        net.ipv4.tcp_tw_recycle = 0 
    
    net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,預設為0,表示關閉
    
  • 彙整以上的規則,寫一隻 script 來當做開機時啟用安全防護的機制。
    echo "clear rules"
    iptables -F
    iptables -X
    iptables -Z
    iptables -t nat -F
    echo "drop ping and traceroute"
    iptables -A INPUT -i eth0 -p icmp -s any/0 --icmp-type 8 -j DROP
    iptables -A OUTPUT -o eth0 -p icmp --icmp-type 3 -d any/0 -j DROP
    iptables -A OUTPUT -o eth0 -p icmp --icmp-type 11 -d any/0 -j DROP
    echo "drop abuse IP connections"
    iptables -A INPUT -s 124.254.15.50 -j DROP
    iptables -A INPUT -s 222.191.249.106 -j DROP
    iptables -A INPUT -s 121.235.30.92 -j DROP
    echo "drop connect more than 10 times in 10 seconds ..."
    iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name DEFAULT --rsource
    iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --name DEFAULT --rsource -j DROP
    echo "decrease TCP socket TIME_WAIT time"
    echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
    sysctl net.ipv4.tcp_tw_reuse=1
    sysctl net.ipv4.tcp_tw_recycle=1
    

2010-03-28

  • 繼續封鎖
        69  tcp6       0      1 140.110.240.196:80      117.85.101.39:26243     LAST_ACK
        70  tcp6       0  10081 140.110.240.196:80      117.85.101.39:26347     FIN_WAIT1
        71  tcp6       1  90721 140.110.240.196:80      117.85.101.39:26337     LAST_ACK
    
  • 3/26 縱使加了延遲反應還是沒有效果,反而增加了系統的負載,唉~想保持開放可以讓多一點初學者受益,又得防禦這些攻擊,真是令人為難啊~

2010-04-07

2010-04-12

  • 例行性安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libkadm55 libkrb53 libpng12-0
    升級 3 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 801kB 的套件檔。
    此操作完成之後,會空出 32.8kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    
  • 根據 munin 建議,安裝 ethtool 套件
    Traffic of the eth0 interface. Maximum speed is undeterminable (please install ethtool).
    
    jazz@trac-pool:~$ sudo apt-get install ethtool
    

2010-06-28

  • 新增封鎖 202.113.34.186 - [理由] 同時發起 80 個 apache 連線。
    ~$ whois 202.113.34.186
    inetnum:      202.113.32.0 - 202.113.47.255
    netname:      CAIC-CN
    descr:        Civil Aviation Institute of China
    descr:        Tianjin 300300, China
    
  • 例行性更新:更新到 lenny 5.0.5
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-common apt apt-utils
      base-files cpio libapr1 libc6 libc6-dev libc6-i686 libgtk2.0-0
      libgtk2.0-common libkadm55 libkrb53 libmysqlclient15off libpq5 libssl0.9.8
      libxext-dev libxext6 linux-image-2.6.26-2-686 linux-libc-dev locales
      mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 openssl
      phpmyadmin python-support sudo sun-java6-bin sun-java6-jdk sun-java6-jre
      tar tzdata usbutils
    升級 38 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 149MB 的套件檔。
    此操作完成之後,會多佔用 8788kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    
    jazz@trac-pool:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 5.0.5 (lenny)
    Release:        5.0.5
    Codename:       lenny
    

2010-07-02

  • 封鎖整個網段:220.181.7.0/24 - 居然可以用一整個網段來爬網站,難道是在測試 Nutch ??!!
    jazz@trac-pool:~$ netstat -nap | grep ":80"  | awk '{ print $5 }'  | sed 's#:.*##' | sort -n | uniq -c
    (No info could be read for "-p": geteuid()=1000 but you should be root.)
          1
          3 61.64.143.131
          1 220.181.7.117
          1 220.181.7.121
          1 220.181.7.123
          1 220.181.7.124
          1 220.181.7.132
          1 220.181.7.55
          1 220.181.7.56
          1 220.181.7.57
          1 220.181.7.59
          1 220.181.7.62
          1 220.181.7.65
          1 220.181.7.66
          1 220.181.7.67
          1 220.181.7.70
          1 220.181.7.72
          2 220.181.7.78
          1 220.181.7.79
          1 220.181.7.83
          1 220.181.7.88
          1 220.181.7.90
          2 220.181.7.93
          1 220.181.7.94
          2 220.181.7.95
          1 220.181.7.96
    ----------------------------
    jazz@trac-pool:/var/log/apache2$ sudo grep 220.181.7 access.log | awk '{ print $1 }' | sort -n | uniq -c | sort -n | tail -n 20
         39 220.181.7.130
         39 220.181.7.132
         39 220.181.7.70
         39 220.181.7.88
         39 220.181.7.94
         40 220.181.7.122
         40 220.181.7.129
         40 220.181.7.60
         40 220.181.7.65
         40 220.181.7.84
         41 220.181.7.92
         42 220.181.7.117
         43 220.181.7.126
         43 220.181.7.128
         43 220.181.7.71
         43 220.181.7.90
         44 220.181.7.61
         44 220.181.7.83
         46 220.181.7.127
         47 220.181.7.77
    

2010-09-03

  • 例行性更新
    ~$ sudo apt-get autoremove --purge mysql-server phpmyadmin
    ~$ sudo apt-get update
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      ghostscript gs-common lftp libapache2-mod-php5 libfreetype6 libgs8 libldap-2.4-2 libldap2-dev
      libmikmod2 libpng12-0 libssl0.9.8 libtiff4 linux-image-2.6.26-2-686 linux-libc-dev openssl
      php-pear php5-cli php5-common php5-gd php5-mysql wget
    升級 21 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 37.1MB 的套件檔。
    此操作完成之後,會空出 401kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-09-26

  • 例行性更新
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      base-files bzip2 debian-archive-keyring dpkg iputils-ping libbz2-1.0 libfreetype6
      libpango1.0-0 libpango1.0-common libwww-perl linux-image-2.6.26-2-686 linux-libc-dev w3m
    升級 13 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 25.9MB 的套件檔。
    此操作完成之後,會多佔用 106kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-10-10

  • 發現 IOWait 太重,重新啟動。

2010-10-12

  • 例行性更新
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-svn libaprutil1 libfreetype6 libsvn1 python-subversion subversion
    升級 6 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 3680kB 的套件檔。
    此操作完成之後,會多佔用 4096B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-10-25

  • 例行性更新
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libc6 libc6-dev libc6-i686 libpq5 locales
    升級 5 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 14.1MB 的套件檔。
    此操作完成之後,會空出 111kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-11-23

  • 新增封鎖 125.33.180.62 - [理由] 同時發起 60~80 個 apache 連線。
    jazz@trac-pool:~$ whois 125.33.180.62
    inetnum:        125.33.0.0 - 125.33.255.255
    netname:        UNICOM-BJ
    descr:          China Unicom Beijing province network
    descr:          China Unicom
    
  • 例行性安全升級:剛好看到 openssl 需要更新,所以一併處理一下。
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libssl0.9.8 openssl
    升級 2 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 4013kB 的套件檔。
    此操作完成之後,會多佔用 0B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-11-29

  • 新增封鎖 IP - 113.94.159.119
    • 原因:同時發起 270 個連線
          270 113.94.159.119
      
      ~$ whois 113.94.159.119 | head
      % [whois.apnic.net node-4]
      % Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html
      
      inetnum:        113.64.0.0 - 113.95.255.255
      netname:        CHINANET-GD
      descr:          CHINANET Guangdong province network
      descr:          Data Communication Division
      descr:          China Telecom
      country:        CN
      
  • 安全性更新:
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      base-files dpkg dpkg-dev linux-image-2.6.26-2-686 linux-libc-dev sun-java6-bin sun-java6-jdk
      sun-java6-jre tzdata
    升級 9 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 81.1MB 的套件檔。
    此操作完成之後,會空出 1356kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-11-30

  • 新增封鎖 IP - 59.38.32.5
    • 原因:同時發起 104 個連線
      jazz@trac-pool:~$ set
      webcheck () 
      { 
          netstat -na | grep ':80' | grep -v 'LISTEN' | awk '{ print $5 }' | sed 's#:.*##' | sort | uniq -c | sort -n
      }
      jazz@trac-pool:~$ webcheck 
          104 59.38.32.5
      
      jazz@trac-pool:~$ whois 59.38.32.5 | head
      % [whois.apnic.net node-4]
      % Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html
      
      inetnum:        59.32.0.0 - 59.42.255.255
      netname:        CHINANET-GD
      descr:          CHINANET Guangdong province network
      descr:          China Telecom
      descr:          No.31,jingrong street
      descr:          Beijing 100032
      country:        CN
      

2010-12-03

  • 安全升級:由於一直看到有 rkhunter 的警訊,所以進行系統安全升級。
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libkadm55 libkrb53 libxml2 libxml2-dev
    升級 4 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 2148kB 的套件檔。
    此操作完成之後,會多佔用 0B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2010-12-24

  • 還有一些 rkhunter 的警訊,所以根據警訊描述重建系統安全檢查用的資料
    jazz@trac-pool:~$ sudo rkhunter --propupd --check
    
  • 安全升級:
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      exim4 exim4-base exim4-config exim4-daemon-light
    升級 4 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 1769kB 的套件檔。
    此操作完成之後,會空出 45.1kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-01-02

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libxml2 libxml2-dev
      升級 2 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
      需要下載 1513kB 的套件檔。
      此操作完成之後,會多佔用 0B 的磁碟空間。
      是否繼續進行 [Y/n]?
    

2011-01-06

  • 安全升級 - 今天看到 Debian 通知有 apache2 與 openssl 的更新,當然要趕快升級一下!!
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-common libssl0.9.8 openssl
    升級 6 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 5234kB 的套件檔。
    此操作完成之後,會多佔用 24.6kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-01-09

  • 安全升級 - 看到 Debian 通知有 dpkg 的更新,當然要趕快升級一下!!
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      dpkg dpkg-dev
    升級 2 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 3127kB 的套件檔。
    此操作完成之後,會多佔用 4096B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-01-16

  • 安全升級 -
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libc6 libc6-dev libc6-i686 libmysqlclient15off locales mysql-common
    升級 6 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 15.6MB 的套件檔。
    此操作完成之後,會多佔用 20.5kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-01-25

  • 安全升級 -
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      awstats base-files libperl5.10 libpq5 man-db perl perl-base perl-modules
    升級 8 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 11.8MB 的套件檔。
    此操作完成之後,會空出 20.5kB 的磁碟空間。
    是否繼續進行 [Y/n]?                                                    
    
  • 安裝 Varnish - HTTP 加速引擎(HTTP acceleration)
    jazz@trac-pool:~$ sudo apt-get install varnish
    

2011-03-15

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-svn libcups2 libcupsimage2 libcupsys2 libsvn1
      python-subversion subversion
    升級 7 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 3553kB 的套件檔。
    此操作完成之後,會多佔用 0B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-03-27

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-mod-php5 php-pear php5-cli php5-common php5-gd php5-mysql
    升級 6 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 5759kB 的套件檔。
    此操作完成之後,會多佔用 0B 的磁碟空間。
    是否繼續進行 [Y/n]?
    
  • 又來一個同時開 90 個連線的傢伙,擋~
         90 218.66.59.169
    
    jazz@trac-pool:~$ whois 218.66.59.169 | head
    % [whois.apnic.net node-5]
    % Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html
    
    inetnum:        218.66.0.0 - 218.67.127.255
    netname:        CHINANET-FJ
    descr:          CHINANET Fujian province network
    descr:          China Telecom
    descr:          A12,Xin-Jie-Kou-Wai Street
    descr:          Beijing 100088
    country:        CN
    
  • 根據 rkhunter 的 e-mail 警訊描述重建系統安全檢查用的資料
    jazz@trac-pool:~$ sudo rkhunter --propupd --check
    

2011-04-02

  • 新增封鎖 IP - 221.223.104.190 - [原因] 同時發動 74 個連線。
         74 221.223.104.190
    
    sysctl net.ipv4.tcp_tw_recycle=1
    jazz@trac-pool:~$ whois 221.223.104.190 | head
    % [whois.apnic.net node-3]
    % Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html
    
    inetnum:      221.216.0.0 - 221.223.255.255
    netname:      UNICOM-BJ
    descr:        China Unicom Beijing province network
    descr:        China Unicom
    country:      CN
    admin-c:      CH1302-AP
    tech-c:       SY21-AP
    

2011-04-04

  • 升級系統至 Debian Squeeze (6.0.1) 穩定版
    ~$ sudo apt-get upgrade
    ~$ sudo apt-get dist-upgrade
    
  • <1> 首先,解決 PHP 無法正常啟動的問題。
  • 原來是 userdir 模組加了限制,害我移除又重裝了 apache2 跟 php5 相關套件都沒效。當然某種程度,也算系統瘦身一下,清掉了一些很少用的套件。
  • <解法> 開啟 userdir 模組 public_html 的 php5 支援
    • /etc/apache2/mods-available/php5.conf

      old new  
      88    # To re-enable php in user directories comment the following lines
      99    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
      1010    # prevents .htaccess files from disabling it.
      11     <IfModule mod_userdir.c>
      12        <Directory /home/*/public_html>
      13            php_admin_value engine Off
      14        </Directory>
      15     </IfModule>
       11    # <IfModule mod_userdir.c>
       12    #    <Directory /home/*/public_html>
       13    #        php_admin_value engine Off
       14    #    </Directory>
       15    # </IfModule>
      1616</IfModule>
  • 其次,由於升級到 Squeeze,trac 原本作過的一些修改,又得再作一次。先從 plugin 著手。
  • 發現套件庫多了幾個擴充套件:
    trac-email2trac - Creates and amends Trac tickets from e-mail
    trac-accountmanager - account management plugin for Trac
    trac-authopenid - OpenID authentication plugin for Trac
    trac-bitten - continuous integration plugin for Trac
    trac-bzr - Bazaar version control (bzr) backend for Trac
    trac-customfieldadmin - panel for administrating custom ticket fields in Trac
    trac-git - Git version control backend for Trac
    trac-graphviz - Graphs printing plugin for Trac
    trac-icalviewplugin - Provides iCalendar feeds for ticket queries
    trac-ja-resource - Japanese resources for trac
    trac-mastertickets - adds inter-ticket dependencies to Trac
    trac-mercurial - Mercurial version control backend for Trac
    trac-spamfilter - Spam-prevention plugin for Trac
    trac-wikiprint - Make Trac wiki pages printable, exporting to PDF or printable HTML
    trac-wikirename - trac plugin which allows to rename wiki pages
    trac-wikitablemacro - Table from an arbitrary SQL for Trac
    trac-wysiwyg - WYSIWYG style editor for the Trac issue tracking system
    trac-xmlrpc - XML-RPC interface to the Trac wiki and issue tracking system
    
  • <2> 裝幾個常用的擴充套件跟覺得有必要的新套件,並重新啟動 apache2。最後進 Admin 介面重新設定 plugin
    ~$ sudo apt-get install trac-accountmanager trac-graphviz trac-wikiprint trac-wikirename trac-wysiwyg
    
  • <3> 讓 graphviz 支援中文字 - (2009-02-05)
  • [改法] (1) 安裝中文字型 (2) 修改 trac.ini
    ~$ sudo apt-get install ttf-arphic-uming
    
    [graphviz] 
    default_graph_fontname = "/usr/share/fonts/truetype/arphic/uming.ttf"      
    default_graph_fontsize = 10
    
    GraphViz image
  • <4> 修改 accesskey 支援,與 css 預設字型大小 - 詳trac.0.11.7-4.accesskey.patch

2011-04-06

  • 新增封鎖 IP :218.207.217.226、188.64.145.252,原因:發動超過 30 個以上的連線攻擊。
         34 218.207.217.226
         80 188.64.145.252
    

2011-04-08

  • 由於從 Lenny 升級到 Squeeze,Python 也從 2.5 升級到 2.6,所以需要重新安裝慣用的 Trac Plugin。
  • (1) WikiInclude - 讓用 [[WikiInclude(WikiStart)]] 語法來包含其他 Wiki 頁面中的內容
    wget "http://trac-hacks.org/changeset/latest/wikiincludeplugin?old_path=/&filename=wikiincludeplugin&format=zip" -O wikiincludeplugin.zip
    unzip wikiincludeplugin.zip
    cd wikiincludeplugin/0.11/
    sudo python setup.py bdist_egg
    sudo easy_install dist/WikiInclude-0.2-py2.6.egg
    
  • (2) TracRedirect - 用 [[redirect(網址)]] 語法來作頁面自動轉址
    $ svn co http://svn.ipd.uka.de/repos/javaparty/JP/trac/plugins/redirect-0.11/
    $ cd redirect-0.11/
    redirect-0.11$ sudo python setup.py bdist_egg
    redirect-0.11$ sudo easy_install dist/TracRedirect-0.11.3.dev_r3280-py2.6.egg
    
  • (3) Svnauthz File Administration Plugin - 用來管理誰有權限讀取 SVN 目錄的擴充套件
    $ svn co http://trac-hacks.org/svn/svnauthzadminplugin/0.11/ svnauthzadminplugin-0.11
    $ cd svnauthzadminplugin-0.11
    svnauthzadminplugin-0.11$ sudo python setup.py bdist_egg
    svnauthzadminplugin-0.11$ sudo easy_install dist/SvnAuthzAdminPlugin-0.1.2._Moved.to.Trac.0.11_-py2.6.egg
    

2011-04-13

  • 新增封鎖網段 - 123.125.71.0/24
  • Apache 效能調校(Performance Tuning)
  • 4/11~4/13 多次重新開機 trac 網站,一直無法找出記憶體需求突然高漲的主因是因為升級到 Squeeze,改用 Apache MPM 版本(apache2-mpm-prefork),還是其他原因。
  • 花了兩天時間,總算找出造成 trac 網站大量記憶體需求的特徵:刻意發起造成 CLOSE_WAIT 的攻擊行為。
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
      15652 www-data  20   0  783m 763m 4624 R 97.0 75.4  17:31.07 apache2
      20059 www-data  20   0 52836  31m 4732 S  2.7  3.2   0:06.86 apache2
    
    jazz@trac-pool:~$ sudo netstat -nap | grep 15652
    tcp6       1      0 140.110.X.X:80      220.181.93.1:55903      CLOSE_WAIT  15652/apache2
    
  • 手動砍掉 15652 這個 process 之後,同樣這個 IP,後來又產生了一次 CLOSE_WAIT 現象,不禁懷疑這是一種網站攻擊方式。
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    23708 www-data  20   0  414m 396m 4544 R 99.7 39.2   2:44.46 apache2
    23025 www-data  20   0 74940  55m 4752 S  0.0  5.5   0:27.58 apache2
    
    tcp6       0      0 140.110.X.X:80      220.181.93.1:64932      TIME_WAIT   -               
    tcp6       0      0 140.110.X.X:80      220.181.93.1:47074      TIME_WAIT   -               
    tcp6       0      0 140.110.X.X:80      220.181.93.1:50047      TIME_WAIT   -               
    tcp6       0      0 140.110.X.X:80      220.181.93.1:43913      TIME_WAIT   -               
    
  • <解決方法> 降低 net.ipv4.tcp_keepalive_time 的數值,預設是 7200 秒(兩小時),真的太長了!!
    echo "decrease TCP socket TIME_WAIT time"
    sysctl -w net.ipv4.tcp_fin_timeout=10
    sysctl -w net.ipv4.tcp_tw_reuse=1
    sysctl -w net.ipv4.tcp_tw_recycle=1
    echo "decrease TCP socket CLOSE_WAIT time"
    sysctl -w net.ipv4.tcp_keepalive_time=30
    sysctl -w net.ipv4.tcp_keepalive_probes=2
    sysctl -w net.ipv4.tcp_keepalive_intvl=2
    
  • <參考> 大量 CLOSE_WAIT 的影響
    大量的 CLOSE_WAIT 連接,直接佔滿 TCP 連線佇列,
    導致 Apache 失去回應,且 CPU 使用量與記憶體使用量快速提高!!
    
  • <參考> CLOSE_WAIT 生成的原因
  • 另外我也做了兩個小調校:
  • <1> 限制每個 process 的記憶體使用 - 在 /etc/profile 中加入
    ulimit -v 524288
    
  • 其結果是最高可以使用的記憶體是 524288 = 512 * 1024 kbytes = 512 MB。
    virtual memory          (kbytes, -v) 524288
    
  • <2> 把 /etc/apache2/apache2.conf 改成只使用 prefork 模組,並且降低 KeepAliveTimeout 的時間(15秒降低到2秒),還有降低預設開啟的 apache process 數量。
    • /etc/apache2/apache2.conf

      old new  
      6464#
      6565# Timeout: The number of seconds before receives and sends time out.
      6666#
      67 Timeout 300
       67Timeout 30
      6868
      6969#
      7070# KeepAlive: Whether or not to allow persistent connections (more than
       
      8383# KeepAliveTimeout: Number of seconds to wait for the next request from the
      8484# same client on the same connection.
      8585#
      86 KeepAliveTimeout 15
       86KeepAliveTimeout 2
      8787
      8888##
      8989## Server-Pool Size Regulation (MPM specific)
       
      9696# MaxClients: maximum number of server processes allowed to start
      9797# MaxRequestsPerChild: maximum number of requests a server process serves
      9898<IfModule mpm_prefork_module>
      99     StartServers          5
      100     MinSpareServers       5
      101     MaxSpareServers      10
      102     MaxClients          150
      103     MaxRequestsPerChild   0
       99    StartServers          1
       100    MinSpareServers       1
       101    MaxSpareServers       1
       102    MaxClients            5
       103    MaxRequestsPerChild 100
      104104</IfModule>
      105105
      106106# worker MPM
       
      113113#              and starting Apache.
      114114# ThreadsPerChild: constant number of worker threads in each server process
      115115# MaxRequestsPerChild: maximum number of requests a server process serves
      116 <IfModule mpm_worker_module>
      117     StartServers          2
      118     MinSpareThreads      25
      119     MaxSpareThreads      75
      120     ThreadLimit          64
      121     ThreadsPerChild      25
      122     MaxClients          150
      123     MaxRequestsPerChild   0
      124 </IfModule>
       116#<IfModule mpm_worker_module>
       117#    StartServers          1
       118#    MinSpareThreads       1
       119#    MaxSpareThreads       1
       120#    ThreadLimit           1
       121#    ThreadsPerChild       1
       122#    MaxClients            5
       123#    MaxRequestsPerChild  50
       124#</IfModule>
      125125
      126126# event MPM
      127127# StartServers: initial number of server processes to start
       
      130130# MaxSpareThreads: maximum number of worker threads which are kept spare
      131131# ThreadsPerChild: constant number of worker threads in each server process
      132132# MaxRequestsPerChild: maximum number of requests a server process serves
      133 <IfModule mpm_event_module>
      134     StartServers          2
      135     MaxClients          150
      136     MinSpareThreads      25
      137     MaxSpareThreads      75
      138     ThreadLimit          64
      139     ThreadsPerChild      25
      140     MaxRequestsPerChild   0
      141 </IfModule>
       133#<IfModule mpm_event_module>
       134#    StartServers          1
       135#    MinSpareThreads       1
       136#    MaxSpareThreads       1
       137#    ThreadLimit           1
       138#    ThreadsPerChild       1
       139#    MaxClients            5
       140#    MaxRequestsPerChild  50
       141#</IfModule>
      142142
      143143# These need to be set in /etc/apache2/envvars
      144144User ${APACHE_RUN_USER}
  • <參考> Configuring Apache for Maximum Performance
  • <參考> Low memory MySQL / Apache configurations
  • <參考> Apache Performance Tuning
    prefork [default MPM for Apache 2.0 and 1.3]:
    
        * Apache 1.3-based.
        * Multiple processes, 1 thread per process, processes handle requests.
        * Used for security and stability.
        * Has higher memory consumption and lower performance over the newer Apache 2.0-based threaded MPMs.
    worker:
    
        * Apache 2.0-based.
        * Multiple processes, many threads per process, threads handle requests.
        * Used for lower memory consumption and higher performance.
        * Does not provide the same level of isolation request-to-request, as a process-based MPM does.
    
    MaxClients ≈ (RAM - size_all_other_processes)/(size_apache_process)
    

2011-05-19

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      exim4 exim4-base exim4-config exim4-daemon-light libapr1
    升級 5 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 2,116 kB 的套件檔。
    此操作完成之後,會多佔用 4,096 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-05-22

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapr1
    升級 1 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 86.0 kB 的套件檔。
    此操作完成之後,會多佔用 0 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-06-26

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apt apt-utils base-files deborphan dpkg e2fslibs e2fsprogs klibc-utils libapr1 libcomerr2
      libgssapi-krb5-2 libk5crypto3 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2 libss2
      linux-libc-dev perl perl-base perl-modules tzdata
    升級 22 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 17.0 MB 的套件檔。
    此操作完成之後,會空出 422 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-07-06

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-mod-php5 libcurl3-gnutls perl perl-base perl-modules php5-cli php5-common
    升級 7 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 14.8 MB 的套件檔。
    此操作完成之後,會多佔用 483 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-10-05

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common ca-certificates
      dhcp3-client isc-dhcp-client isc-dhcp-common libfreetype6 libpng12-0 libssl0.9.8 libxfont1
      linux-libc-dev openssl
    升級 15 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 8,222 kB 的套件檔。
    此操作完成之後,會空出 8,192 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    
  • 新增封鎖 IP :113.253.17.87

2011-11-09

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common base-files
      ca-certificates grub-common grub-pc libfreetype6 libgssapi-krb5-2 libk5crypto3 libkrb5-3
      libkrb5support0 libpam-modules libpam-runtime libpam0g libpcap0.8 libssl0.9.8 linux-libc-dev
      openssh-client openssh-server openssl ssh tzdata
    升級 25 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 13.4 MB 的套件檔。
    此操作完成之後,會空出 496 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2011-12-11

  • 安全升級
    $ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libfreetype6 libssl0.9.8 openssl
    升級 3 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 4,484 kB 的套件檔。
    此操作完成之後,會多佔用 0 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-02-07

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common base-files bzip2
      dpkg iotop libapache2-mod-php5 libbz2-1.0 libc-bin libc-dev-bin libc6 libc6-dev libc6-i686
      libcurl3-gnutls libgnutls26 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0
      libssl0.9.8 libxml2 linux-libc-dev locales module-init-tools mutt openssl perl perl-base
      perl-modules php5-cli php5-common tzdata x11-common
    升級 36 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 44.7 MB 的套件檔。
    此操作完成之後,會空出 532 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-03-05

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      file libapache2-mod-php5 libmagic1 libpng12-0 libxml2 php5-cli php5-common
    升級 7 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 7,584 kB 的套件檔。
    此操作完成之後,會多佔用 24.6 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-03-20

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libfreetype6
    升級 1 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 361 kB 的套件檔。
    此操作完成之後,會多佔用 0 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-06-03

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common base-files file
      initscripts libapache2-mod-php5 libapr1 libc-bin libc-dev-bin libc6 libc6-dev libc6-i686
      libcurl3-gnutls libgnutls26 libmagic1 libpng12-0 libssl0.9.8 libtasn1-3 libxml2
      linux-libc-dev locales openssh-client openssh-server openssl php5-cli php5-common procps
      python python-minimal ssh sudo sysv-rc sysvinit sysvinit-utils tzdata
    升級 38 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 34.3 MB 的套件檔。
    此操作完成之後,會多佔用 692 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-06-11

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      libapache2-mod-php5 php5-cli php5-common
    升級 3 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    是否繼續進行 [Y/n]?
    

2012-10-29

  • 安全升級
    ~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common base-files debian-archive-keyring dhcp3-client dpkg exim4
      exim4-base exim4-config exim4-daemon-light isc-dhcp-client isc-dhcp-common libapache2-mod-php5 libc-bin libc-dev-bin libc6
      libc6-dev libc6-i686 libexpat1 libgc1c2 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libxml2 linux-libc-dev locales
      lockfile-progs php5-cli php5-common
    升級 33 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 31.3 MB 的套件檔。
    此操作完成之後,會多佔用 73.7 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2012-12-31

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
      libxml2 perl perl-base perl-modules
    升級 9 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 10.9 MB 的套件檔。
    此操作完成之後,會多佔用 0 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2013-03-04

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      base-files gnupg gnupg-curl gpgv gzip libldap-2.4-2 libssl0.9.8
      linux-libc-dev openssh-client openssh-server openssl perl perl-base
      perl-modules ssh tzdata
    升級 16 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 17.8 MB 的套件檔。
    此操作完成之後,會空出 365 kB 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2013-03-31

  • 安全升級
    jazz@trac-pool:~$ sudo apt-get upgrade
    正在讀取套件清單... 完成
    正在重建相依關係          
    正在讀取狀態資料... 完成
    下列套件將會被升級:
      apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5 libxml2 perl perl-base perl-modules
      php5-cli php5-common sudo
    升級 13 個,新安裝 0 個,移除 0 個,有 0 個未被升級。
    需要下載 17.8 MB 的套件檔。
    此操作完成之後,會多佔用 0 B 的磁碟空間。
    是否繼續進行 [Y/n]?
    

2013-08-28

  • 安全升級

2013-11-14

  • 因應資安進行升級,自 squeeze 升級到 wheezy,結果造成系統不穩定。改重頭安裝 wheezy 並重新設定新版 trac 0.12.5 的環境。
  • Trac 升級:
    trac-admin <folder> upgrade
    
  • 安裝模組
    ## wiki incloud
    cd wikiincludeplugin/0.11/
    sudo python setup.py bdist_egg
    sudo easy_install dist/WikiInclude-0.2-py2.7.egg 
    ## wiki redirect
    cd redirect-0.11/
    sudo python setup.py bdist_egg
    sudo easy_install dist/TracRedirect-0.11.3.dev_r3280-py2.7.egg 
    ## svn authz
    svn co http://trac-hacks.org/svn/svnauthzadminplugin/0.12/ svnauthzadminplugin-0.12
    cd svnauthzadminplugin-0.12/
    sudo python setup.py bdist_egg
    sudo easy_install dist/SvnAuthzAdminPlugin-0.2-py2.7.egg
    
  • 自訂 trac 0.12 版本的 accesskey
    • /usr/share/pyshared/trac/admin/web_ui.py

      diff -Naur /usr/share/pyshared/trac/admin/web_ui.py.org /usr/share/pyshared/trac/admin/web_ui.py
      old new  
      6464        panels, providers = self._get_panels(req)
      6565        if panels:
      6666            yield 'mainnav', 'admin', tag.a(_('Admin'), href=req.href.admin(),
      67                                             title=_('Administration'))
       67                                            title=_('Administration'), accesskey='a')
      6868
      6969    # IRequestHandler methods
      7070
    • /usr/share/pyshared/trac/wiki/templates/wiki_edit_form.html

      diff -Naur /usr/share/pyshared/trac/wiki/templates/wiki_edit_form.html.org /usr/share/pyshared/trac/wiki/templates/wiki_edit_form.html
      old new  
      6565    </fieldset>
      6666    <div class="buttons" py:choose="action">
      6767      <py:when test="'collision'">
      68         <input type="submit" name="preview" value="${_('Preview')}" disabled="disabled" />&nbsp;
       68        <input type="submit" name="preview" value="${_('Preview')}" disabled="disabled" accesskey="p"/>&nbsp;
      6969        <input type="submit" name="merge" value="${_('Merge changes')}" accesskey="r" />&nbsp;
      7070        <input type="submit" name="save" value="${_('Submit changes')}" disabled="disabled" />&nbsp;
      7171      </py:when>
      7272      <py:otherwise>
      7373        <input type="submit" name="preview" value="${_('Preview Page')}" accesskey="p" />&nbsp;
      7474        <input type="submit" name="diff" value="${_('Review Changes')}" accesskey="r" />&nbsp;
      75         <input type="submit" id="save" name="save" value="${_('Submit changes')}" />&nbsp;
       75        <input type="submit" id="save" name="save" value="${_('Submit changes')}" accesskey="s"/>&nbsp;
      7676      </py:otherwise>
      7777      <input type="submit" name="cancel" value="${_('Cancel')}" />
      7878    </div>
    • /usr/share/pyshared/trac/htdocs/css/trac.css

      diff -Naur /usr/share/pyshared/trac/wiki/templates/wiki_edit.html.org /usr/share/pyshared/trac/wiki/templates/wiki_edit.html
      diff -Naur /usr/share/pyshared/trac/htdocs/css/trac.css.org /usr/share/pyshared/trac/htdocs/css/trac.css
      old new  
      11body { background: #fff; color: #000; margin: 10px; padding: 0; }
      22body, th, tr {
      3  font: normal 13px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif;
       3 font: normal 14px Verdana,Arial,'Bitstream Vera Sans',Helvetica,sans-serif;
      44}
      55h1, h2, h3, h4 {
      66 font-family: Arial,Verdana,'Bitstream Vera Sans',Helvetica,sans-serif;
    • /usr/share/pyshared/trac/prefs/web_ui.py

      diff -Naur /usr/share/pyshared/trac/prefs/web_ui.py.org /usr/share/pyshared/trac/prefs/web_ui.py
      old new  
      4949
      5050    def get_navigation_items(self, req):
      5151        yield ('metanav', 'prefs',
      52                tag.a(_('Preferences'), href=req.href.prefs()))
       52               tag.a(_('Preferences'), href=req.href.prefs(), accesskey='t'))
      5353
      5454    # IRequestHandler methods
      5555
    • /usr/share/pyshared/trac/web/chrome.py

      diff -Naur /usr/share/pyshared/trac/web/auth.py.org /usr/share/pyshared/trac/web/auth.py
      diff -Naur /usr/share/pyshared/trac/web/chrome.py.org /usr/share/pyshared/trac/web/chrome.py
      old new  
      143143        msg %= args
      144144    req.chrome['notices'].append(msg)
      145145
      146 def add_ctxtnav(req, elm_or_label, href=None, title=None):
       146def add_ctxtnav(req, elm_or_label, href=None, title=None, accesskey=None):
      147147    """Add an entry to the current page's ctxtnav bar."""
      148     if href:
       148    if accesskey:
       149        elm = tag.a(elm_or_label, href=href, title=title, accesskey=accesskey)
       150    elif href:
      149151        elm = tag.a(elm_or_label, href=href, title=title)
      150152    else:
      151153        elm = elm_or_label
       
      855857        if doctype:
      856858            if req.form_token:
      857859                stream |= self._add_form_token(req.form_token)
      858             if not int(req.session.get('accesskeys', 0)):
      859                 stream |= self._strip_accesskeys
       860            #if not int(req.session.get('accesskeys', 0)):
       861            #    stream |= self._strip_accesskeys
      860862
      861863        links = req.chrome.get('links')
      862864        scripts = req.chrome.get('scripts')
    • /usr/share/pyshared/trac/versioncontrol/web_ui/browser.py

      diff -Naur /usr/share/pyshared/trac/versioncontrol/web_ui/browser.py.org /usr/share/pyshared/trac/versioncontrol/web_ui/browser.py
      old new  
      293293        rm = RepositoryManager(self.env)
      294294        if 'BROWSER_VIEW' in req.perm and rm.get_real_repositories():
      295295            yield ('mainnav', 'browser',
      296                    tag.a(_('Browse Source'), href=req.href.browser()))
       296                   tag.a(_('Browse Source'), href=req.href.browser(), accesskey='5'))
      297297
      298298    # IPermissionRequestor methods
      299299

2014-02-28

  • 例行性升級
    ~$ sudo apt-get upgrade
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages will be upgraded:
      apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apt apt-utils base-files denyhosts gnupg gpgv graphviz libapache2-mod-php5
      libapt-inst1.5 libapt-pkg4.12 libc-bin libc6 libc6-i686 libcdt4 libcgraph5 libcurl3-gnutls libexpat1 libgraph4 libgtk-3-0 libgtk-3-bin
      libgtk-3-common libgvc5 libgvpr1 libnet-server-perl libpathplan4 libpixman-1-0 librsvg2-2 librsvg2-bin librsvg2-common libssl1.0.0 libxdot4
      linux-image-3.2.0-4-686-pae localepurge locales multiarch-support munin munin-common munin-doc munin-node munin-plugins-core
      munin-plugins-extra openssl php5-cli php5-common tzdata wget whois
    51 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 61.0 MB of archives.
    After this operation, 3,130 kB disk space will be freed.
    Do you want to continue [Y/n]?
    

2016-04-24

  • 例行安全升級
  • 今天偶然在 http://2014.hadoopcon.org 後台發現高達數萬則「迴響」(comments),根據幫友人處理的經驗,直接清除 wordpress 資料庫中的 wp_comments 最快。
  • 接著,參考了幾篇文章進行 MySQL 資料庫的最佳化(Optimization):
  • 學著用幾個工具:
    • mysqlcheck
      • -o : 作 Optimization
      • -A : 針對所有的資料庫、資料表
      • -u : 指定 MySQL 使用者
      • -p : 詢問密碼
        ~$ mysqlcheck -o -A -u user -p
        Enter password: 
        hadoopcon.wp_commentmeta
        note     : Table does not support optimize, doing recreate + analyze instead
        status   : OK
        hadoopcon.wp_comments
        note     : Table does not support optimize, doing recreate + analyze instead
        status   : OK
        
    • mysqlanalyze
      • -a : 作分析 analyse
      • '-c` : 作檢查 check
      • -A : 針對所有的資料庫、資料表
      • -u : 指定 MySQL 使用者
      • -p : 詢問密碼
        ~$ mysqlanalyze -A -a -u user -p
        Enter password: 
        hadoopcon.wp_commentmeta                       OK
        hadoopcon.wp_comments                          OK
        
  • mysqltuner.pl - http://mysqltuner.com/
    • 安裝
      wget http://mysqltuner.pl/ -O mysqltuner.pl
      wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
      wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
      perl mysqltuner.pl
      
    • 執行
      sudo ./mysqltuner.pl --dbstat --idxstat --sysstat --nogood --noinfo
      
Last modified 9 years ago Last modified on Apr 24, 2016, 11:58:26 PM

Attachments (22)

Download all attachments as: .zip