2018年7月22日 星期日

如何更換Eclipse 為暗色系的主題?

近幾年,工程師們都喜歡將開發編輯工具調整使用偏用暗色系當背景
多半是說這樣對眼睛比較好,而且在看程式碼時的辦識度,也比傳統白底的背景來的高

所以,當然不免俗也來更換一下暗色系背景,不過預設eclipse的幾個Theme並沒有暗色系的
因此,要改去其它地方下載安裝才行,不麻煩很容易,照著下面步驟執行即可

1. 請至 Eclipse Color Theme

 2.左方的Clone or download 點下按Download ZIP 下載這Theme套件

3. 解開ZIP後將eclipse-ui-themes-master 目錄移至 eclipse\dropins 下

4.重啟eclipse 
5.在eclipse 上方功能列 windows,點選選單 Preferences -> General -> Appearance -> Color Theme 即可設定 

6. 這樣就完成啦

當然選擇這種方式的安裝,你也可以透過 marketplace.eclipse.org 進行下載安裝,這個我就不介紹啦,有興趣的請自行連過去安裝 ^.^

2018年6月14日 星期四

Apache 阻擋 Slow HTTP Denial of Service Attack

最近又在進行客戶系統的弱點掃描,這次被掃到一個Medium Risk

Slow HTTP Denial of Service Attack

真是怪,每用一套不同的弱掃工具,就會掃到一些弱點

關於這個Slow DOS 攻擊弱點,經上網查了一下,可以直接從Apache 啟用mod_reqtimeout模組來排除此問題

mod_reqtimeout是Apache伺服器預設的模組之一,主要的功能在於限定要求(Request)封包傳遞的速率,避免要求連線因傳遞速率過慢而長時間占住網站伺服器的連線。
由於Slowris應用的技巧在於利用傳送要求標頭(Request Header)時間過久,藉此來占住網站伺服器的連線數,以致於網站伺服器無法服務正常的連線,以達到拒絕服務(DoS)的效果,因此mod_reqtimeout模組即是利用限定傳送要求標頭及要求內容時間的方式,來降低Slowris攻擊的危害。

可至 http.conf 啟用 mod_reqtimeout 把以下這行 # 去除

LoadModule reqtimeout_module modules/mod_reqtimeout.so

並再加上以下設定

<ifmodule mod_reqtimeout.c="">
  RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
</ifmodule>


再重啟後重測,就可以過關了

當然還有其它方法排除,有興趣者就自已再去google 吧

2018年4月23日 星期一

mysql 記錄 執行過久的SQL

如mysql要查詢執行過久的SQL,可在參數檔my.ini or my.cnf 中的[mysqld]下方加上以下參數

slow_query_log = 1
slow_query_log_file = /var/logs/mysql_log/mysql_slow.log
long_query_time = 5   單位是s
log_queries_not_using_indexes = 1 這可以列出無使用index的SQL

如果要同時列出無使用index 的SQL,這樣LOG檔會有非常多SQL,所以建議這行不加或設定0,真的有需要再開啟

如果log檔放置的路徑非在mysql同層,那就要再設定目錄的權限,LOG才能正常被記錄在檔案之中,請依以下指令設定權限:


# mkdir   /var/logs/mysql_log
# chown mysql.mysql -R /var/logs/mysql_log

上述設定是mysql 5.6版之後的設定方式,之前的版本設定有些許不同,所以要先確認你的mysql版本喔

此外,long_query_time 在mysql 5.6版本之後,可以設定0.x秒 之前版本可都是要1秒以上

2018年4月18日 星期三

排除 error command line calculator 'bc' not found centos

在centos 執行 sh 時 出現了 error command line calculator 'bc' not found centos 錯誤訊息

查了一下才知才了 BC shell

執行安裝指令如下:

# yum -y install bc

安裝完成再重新執行該sh 就可正常運行了

CentOS Ntp Server 校對伺服器的建立


在 CentOS 7 陸續有許多新的工具出現,不單只是kernel的改變,包含一些我們慣用的工具都也汰換成新的,像校對時間的Server  也改成 chronyd ,但因為chronyd 預設開啟的Port 為323,並非原本的123 Port ,所以此篇要信紹一下原本及比較常用的NTPD service

因為預設校對時間的工具chronyd 會和ntp 搶
一整個怪,查過沒有搶Port,反正就是一山容不下二虎
所以要先關原服務,不然等會設定自動啟動時會失效


# systemctl stop chronyd.service
# systemctl disable chronyd.service


這裡要注意一下,我在測試時發現 加了service 竟然移不掉 最後是把service 字眼移除才能正常
所以執行上述動作後,可以先執行以下查詢自動啟用的service,看看是否chronyd有無移除成功
 systemctl list-unit-files | grep enabled


利用yum先進行安裝
# yum install ntp -y

設定要校時的NTP server
# vi /etc/ntp.conf

把原本的註解掉
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org

並加上以下這幾台,如果是無法連外的區網,就要找區網內的校對伺服器
server tw.pool.ntp.org
server  watch.stdtime.gov.tw
server  time.stdtime.gov.tw

如果要設定 BIOS 的時間也同步調整,請修改 /etc/sysconfig/ntpd,

 # vi /etc/sysconfig/ntpd

並設定SYNC_HWCLOCK=yes 參數即可


啟動我們的NTP Server,並設定自動啟動及開啟防火牆
# systemctl enable ntpd
# systemctl start ntpd
# firewall-cmd --add-port=123/udp --permanent && systemctl restart firewalld

改時區可下指令
# timedatectl set-timezone Asia/Taipei

雖然也可以手動進行校時,指令如下:
# ntpdate pool.ntp.org

校時要先關掉本機的ntp服務,不然執行該指令會有錯誤訊息出現

最後可以使用 ntpstat 或 ntpq -p 指令檢查time server設定是否正確

[root@localhost]# ntpstat
synchronised to NTP server (118.163.81.61) at stratum 3
   time correct to within 68 ms

   polling server every 1024 s



注意: 在一啟動時就想查查看ntpstat 是否ntp有效果,但得到的都是unsynchronised,要等久一點才會同步成功,所以可以過一陣子再來看結果

2018年4月16日 星期一

排除 Can't locate Text/Template.pm in.CentOS

在CentOS 要執行perl ,出現了 Can't locate Text/Template.pm in. 一堆錯誤訊息

查了一下 少裝了  perl-CGI-Session 套件 所以立馬安裝

# yum install perl-CGI-Session -y

裝完後再重新執行,就能正常運行了

2018年4月13日 星期五

Centos 7 vsftpd 如何設定虛擬目錄

在設定vsftpd時,要指定虛擬目錄
原本使用了ln -s(Symbolic Link) 的方式來連結

雖然看起來可以,但透過FTP 連入時竟然是不可以用,會出現 550 Failed to change directory 的錯誤訊息

去Google查了一下, 因為chroot 不能使用 soft link 所以要改用mount bind的方式

可先建立你想要的目錄名稱
# mkdir /ftproot/upload

然後再下mount 指令
# mount --bind /source/upload /ftproot/upload

這樣就可以在FTP 連入 upload 目錄 看到/source/upload 目錄的檔案了
不過,重開機後就失效了,所以如果要讓設定一直生效就要在/etc/fstab 下加入mount指令

# vi /etc/fstab
在最後加上
/source/upload  /ftproot/upload/ none bind,ro 0 0


這樣重啟後,就可以直接mount上去啦

參考連結:

  • http://blog.ilc.edu.tw/blog/index.php?op=printView&articleId=470470&blogId=25793
  • https://unix.stackexchange.com/questions/413823/editing-etc-fstab-to-permanently-bind-mount-directory