顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2019年10月27日 星期日

PHPStorm與遠端(Remote)Docker整合

以前開發PHP時,修改後需要手動上傳到遠端伺服器上,然後再測試執行結果
使用PHPStorm之後只可以減少手動執行的步驟,PHPStorm可以自動將變更的檔案佈署到遠端伺服器上(或者是多台的伺服器群組),在透過遠端的Docker執行單元測試

使用Docker來做單元測試是可以保持環境的一致姓,因為平時開發環境可能會安裝多個版本的PHP或者調整php.ini的關係造成與實際佈署環境不一致的情況,每次執行單元測試的容器都是一次性使用的,執行完單元測試後就會自動銷毀


PHPStorm with remote Docker 架構圖

2019年10月22日 星期二

啟用Docker的Restful API功能

這篇文章適用於Docker 19.03 CE版於ubuntu19.04與CentOS7

因為Docker的Restful API並未提供認證功能
所以啟用此功能務必確認網路是封閉或測試需求
不要在正式環境下開啟此功能


2019年10月20日 星期日

使用gdb偵錯crash的程式

最近遇到升級pmacct版本之後發生子程序crash的情況
可以使用gdb配合core dump檔案偵錯
因為沒什麼C語言除錯的經驗,怕忘了所以筆記一下

1.啟用Core Dump
ulimit -c unlimited

2.執行gdb 選擇要執行的程式
輸入參數開始執行 run -f pmacct.conf
出現錯誤之後可Ctrl - C 回到gdb再輸入quit離開




3.崩潰後產生的coredump檔案(結尾為pid編號)














4.載入coredump
gdb [執行檔] [CoreDump檔案]
輸入bt































從#0可以看到產生崩潰的是memcpy這個函數
使用的地方是#1的pgsql_plugin.c:475的位置

2019年9月29日 星期日

Docker筆記

最近工作上用到Docker買了些書還跟同事參加K8s的研討會,回來後就投入把目前開發環境從windows server轉移到ubuntu+docker的模式,也踩了不少坑


2018年12月23日 星期日

TP-link archer c50v4 刷openwrt

因為國外工廠出錯區碼,需要一台全頻道5G AP的來測試哪些頻道可以工作

使用的AP是TP-Link Archer C50v4,但是在openwrt上只能看到v4
原本以為沒機會了找到這篇文章
https://forum.openwrt.org/t/support-for-archer-c50-v4/20174

2018年12月10日 星期一

Proxmox Mail Gateway 自訂關鍵字

因為WEBUI不能輸入中文,所以只能從底層的Spamassassin處理
需要修改 /etc/mail/spamassassin/custom.cf
修改完畢後需要重啟服務套用 systemctl restart pmg-smtp-filter

參考資料
https://forum.proxmox.com/threads/custom-cf-file.1864/
https://wiki.apache.org/spamassassin/WritingRules
https://ssorc.tw/74

2018年12月9日 星期日

Proxmox Mail Gateway 的問題

PMG不足之處

論壇上的評測
https://forum.proxmox.com/threads/feature-requests.43237/

使用Proxmox Mail Gateway取代efa-project

從DistroWatch看到Proxmox的資訊,發現Mail Gateway年初就OpenSource了,想說efa-project能用web操作的功能有限,不容易給其他人維護,看了一下Proxmox的Mail Gateway幾乎是全Web操作的,所以就下載來試試看


2018年12月2日 星期日

在CentOS Linux 7上運行.Net Core WebAPI

原本工作上就是寫C#,但是ASP.NET很久沒碰了,最近有需求要做Web後台所以就評估用ASP.NET適用性,發現.Net Core可以運作在Linux主機後,就寫了一個測試的WebAPI做測試

2017年5月29日 星期一

EFA-Project 更新 3.0.2.3

導入EFA之後垃圾郵件有減少使用上也沒什麼問題,前陣子收到讀者反映說新版本釋出,依照之前的方式修改程式無法運作,所以才有這篇的產生

主要是因為mailwatch的變更頗大,程式碼重新組織也增加了新功能
因此這次修改沒有像以前一樣那麼大


2017年2月19日 星期日

安裝Mantis作為事件追蹤系統

最近開會一直有橫向聯繫不夠的問題發生,因此老闆指示要加強各單位橫向聯繫的功能。
所以打算導入Mantis讓「支票攤在陽光下,自己開的支票自己坦」

1. 安裝 CentOS 7.3.1611 使用最小安裝,設定固定IP

2. 修改 /etc/selinux/config 將模式改為 permissive

3. 使用yum安裝所需的套件 net-tools unzip wget  mariadb-server httpd php php-pdo php-mysql

4. 設定服務開機啟動 systemctl enable httpd

5. 啟動服務 systemctl start mariadb

6. 關閉防火牆 systemctl disable firewalld  (好孩子不要學)

7. 下載 mantisbt-2.1.0.zip 解壓縮放置到 /var/www/html/

8. 下載 adminer.php 放置到 /var/www/html/

9. 使用adminer登入mariadb建立一個新的資料庫與使用者

10. 使用瀏覽器連接到mantis目錄會導向installer

11. 依照installer的引導完成mantis初始化

12. 最後需要將config.inc.php內容放置到 /var/www/html/mantis/config/config_inc.php

13. 預設帳號為administrator 密碼為 root

以上就是基本安裝


2017年1月2日 星期一

垃圾郵件防治 EFA-Project 自訂關鍵字

EFA使用的是spamassassin作為計算分數的引擎,而spamassassin有自訂規則的功能


EFA裡面規則放置於 /etc/mail/spamassassin 目錄,可以看到一個 KAM.cf 的檔案,會自動更新 (從http://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf)


規則格式說明
https://wiki.apache.org/spamassassin/WritingRules


寫好規則之後需要重新啟動 MailScanner 服務才會套用


測試時發現在EFA的Spam Report項目看不到規則的說明(Description)

這是因為這個說明文字是存在資料庫中,因此要在EFA的Tools選單中執行「Update SpamAssassin Rule Descriptions」的動作才行


2015年7月19日 星期日

從OpenWebmail遷移帳號至Zimbra

前言

前一陣子受託將OpenWebmail帳號轉移至Zimbra上,在網路上找了一些文件,原以為能直接匯入帳號,等SE安裝完後發現匯入的只能是明文的帳號密碼,而內建的帳號轉移功能不錯能將信箱郵件也匯入不過一樣需要明文的密碼,對於默默轉移的系統IT/MIS而言無法使用,而唯一能匯入密文密碼的方式只有透過LDIF匯入的方式了,而這個Zimbra的LDAP是安裝自帶的非OS本身的LDAP套件


步驟

1. 首先要取得舊有OpenWebmail系統的帳號(passwd)與密碼(shadow),然後利用下面這個PHP Script轉換成LDIF文件(注意:這個Script會將原本停用的帳號也轉換並「啟用」)



2. 取得Zimbra的LDAP連接資訊,剛開始誤以為是使用OS自帶的openLDAP,看LDAP設定檔的rootDN與password卻一直連不上去,後來才發現是自帶的服務,rootDN與password都不同,password是安裝隨機產生的需要使用「zmlocalconfig -s -m nokey zimbra_ldap_password」才能取得,rootDN「uid=zimbra,cn=admins,cn=zimbra」

3. 使用ldapadd命令匯入LDIF,如果匯入的LDIF有問題則會中斷匯入,造成某些帳號匯入某些尚未匯入,這時候就要修改LDIF錯誤以及去除已經匯入的帳號才能繼續進行匯入

2012年5月9日 星期三

Setup Private Git Server like github (RhodeCode)

System info: Debian 6.0、Python 2.7.3、Lighttpd 1.4.28、Rhodecode 1.3.4



系統架構圖

目標:使用者可透過網際網路使用HTTP或HTTPS存取Git版本庫或RhodeCode的專案介面

遇到的問題:

  1. RhodeCode欲使用80 port提供服務必須使用root權限執行,本身不具備啟動後切換身分的功能

  2. RhodeCode內建的Web Server不支援SSL

  3. Git Client使用HTTPS時如果無法驗證憑證(自簽憑證)會終止

2012年2月17日 星期五

vsftpd使用SSL在filesilla無法登入的問題

今天收到一個問題就是vsftp server無法登入
GnuTLS error -8: A record packet with illegal version was received.

查了很久,換版本、重編譯都試過了,發現原來是client版本不同有不同的狀況

最後發現這篇

http://trac.filezilla-project.org/ticket/7873



只要在vsftpd.conf加上即可
ssl_ciphers=HIGH

2011年11月28日 星期一

python build egg

無意間找到一個python lib感覺應該能用然後就試著裝看看

python setup.py bdist_egg

結果出現

error: invalid command 'bdist_egg'

原來bdist_egg是包含在setuptools中,只要在setup.py中加入就能順利孵出蛋了

from setuptools import setup

2011年11月3日 星期四

用python模擬DHCP Client找出區網DHCP Server

在比較大的區域網路中常常會使用DHCP來配發IP,但是有時候遇到私假的DHCP或者接反的IP分享器...
在沒有dhcp snooping設備支援的情況下,往往會造成一些麻煩
所以寫了這個script用UDP廣撥的方式來找出DHCP Server


經實驗發現WINXP系統在設定為DHCP狀態下,會值接套用上次的IP來做續約,不會重新做DHCP Discover的掃描
所以可能會抓錯一次DHCP之後一直都是錯的狀況

2011年9月28日 星期三

亂搞的X86 embedded

先聲明,這非正統的embedded作法,完全沒有重編譯任何東西的土砲法
起因於想縮小CentOS的大小跟複雜度,為了方便又需要VBOX上就可以測試所做的嘗試
目前進度是可開機進入無init,而是直接執行busybox的ash

1.建立一個新的虛擬硬碟
2.使用fdisk切割為一個分割區再格式化為ext2
3.將新的分割區掛載到/mnt,並建立boot dev proc sys sbin tmp
4.將現在的核心複製到/mnt的boot中
5.使用mkinitrd建立新的initrd.img
6.使用grub-install將loader安裝製新的硬碟並設定grub.conf
7.複製/sbin/busybox到/mnt的/sbin中

2011年9月14日 星期三

Centos6 + Squid 3 使用簡易認證 (htpasswd)

mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
yum --disablerepo=\* --enablerepo=c6-media install httpd-tools squid


http_port 3128
error_directory /usr/share/squid/errors/zh-tw
cache_dir ufs /var/spool/squid 100 16 256
cache_mem 16 MB
visible_hostname ezproxy
logfile_rotate 2

access_log /var/log/squid/access.log

#SSL
acl CONNECT method CONNECT
acl ssl_port port 443

#Auth
auth_param basic realm Welcome to proxy service
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid-passwd
acl allow_user proxy_auth REQUIRED

http_access deny CONNECT !ssl_port
http_access allow allow_user all
http_access deny all


2011/09/14 10:28:37| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
2011/09/14 10:28:37| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
2011/09/14 10:28:37| WARNING: You should probably remove '::/0' from the ACL named 'all'



In Squid 3.0 and above, the 'all' ACL is built-in, you cannot (& need not) define it.

http://www.l-penguin.idv.tw/article/proxy-auth.htm

2011年7月13日 星期三

校時很重要

這最近多次接到同一個問題,某客戶的openwebmail登入後出現抱歉!因為您太久沒有動作,所以請回到登入畫面 並且重新登入.的訊息,查了一陣子才發現是openwebmail的session資料夾的問題,在這個案例中因為多台webmail要做平衡附載,所以使用NFS共享session資料夾,結果NAS那台的時間跑掉了與前端的webmail相差超過30分鐘,使用NTP校正時間後解決

webmail的openwebmail.log會出現
Wed Jul 13 13:06:25 2011 - [89123] (192.168.0.0) fish - session error - session fish*mail.com.tw-session-0.190812842599136 timeout access attempt