linux – 在水一方 https://blog.vic.mh4u.org 蒹葭蒼蒼,白露為霜。所謂伊人,在水一方。 Wed, 21 Mar 2018 08:02:31 +0000 zh-TW hourly 1 https://wordpress.org/?v=6.7.1 pve4和vlans https://blog.vic.mh4u.org/2016/1532 https://blog.vic.mh4u.org/2016/1532#respond Thu, 31 Mar 2016 03:55:08 +0000 http://blog.vic.mh4u.org/?p=1532 閱讀全文 ]]> Proxmox VE 4.x 的 vlan 功能完整,現就介紹實際應用

我們需要搭配一台網管式 switch ,也就是可切vlan的switch,我們選用 ZyXEL GS1900-8 8port switch 這一台。

應用說明:

ZyXEL GS1900-8 8port switch

ZyXEL GS1900-8 8port switch

參閱上圖,1~7 port,我們分別切成 vlan1~7, 第8port設為trunk port接 pve4 server,這樣的接法用意是在1~7port可接7條小烏龜線路,而pve4 裡的虛擬子機,則可透過 trunk port 分別調用這7條線路,現在的很多虛擬系統都支援vlan,所以這樣的接法應用是很廣的。

重點提醒:1~7port的這七條線路得是100M以下的速率,而trunk port得用cat6的網路線,才能上1G的速率,這樣才不會發生效能瓶頸卡在trunk port上面。

底下先介紹 ZyXEL GS1900-8 8port switch 這台設定的方法:
預設值: http://192.168.1.1 帳:admin 密:1234

[tip]設定重點提醒:
access port:不打tag,需設定untagged 和設定pvid
trunk port:打vlan tage,不動pvid
如:
port2 設定vlan2 pvid 和 vlan2 untagged
port3 設定vlan3 pvid 和 vlan3 untagged

trunk port設定:
除了個別port設定vlan tagged之外,trunk port也都要跟著在每個vlan裡打tag[/tip]

設定VLAN

首先先加7個vlan
zyxel2

設定PVID

仿照下圖,在7個port上面設定好7個 PVID,第8port設為trunk port 不動PVID
zyxel3

設定untagged

vlan1保留預設值不動
zyxel4
vlan2開始設定,將第2port設定為untagged
因為access port 不打 tag ,而excluded中文是不包括的意思(第2port我們要設成vlan2所以怎能不包括?) Forbidden中文是禁止的意思, 所以只剩一個正確的選項 untagged
vlan3~vlan7則比照這個vlan2來設定。
zyxel5
而第8port是trunk port,它要在每個vlan上面都打tag才能正確的調用這7條線路。

以上的設定都完成了,光按apply是不夠的,全部設定完了之後,一定要按右上角的save,才能真正的儲存了你的設定,才不會在你的switch重開機之後,所有的設定都流失。但…
原文:Click this to apply your changes to the Switch’s run-time memory. The Switch loses these changes if it is turned off or loses power, so use the Save link on the top navigation panel to save your changes to the non-volatile memory when you are done configuring.
根據原文大意可能是,按右上角的save,只會存入 run-time memory (不知是否等同於 Running configuration),估計還要點左下角的maintenance才行

zyxel6

進左下角的 maintenance=>configuration=>management
設定
Running configuration => Startup configuration ==> apply

註:2016/03/31 初步測試按右上角的save即可儲存設定,還要再測第2次才能確認。

Proxmox VE 4 vlan 設定

我這台機器上面有2張網卡,eth0 和 eth1 ,拿 eth1 當trunk port 使用,所以這張網卡的網路線要直連 switch 上面的第8port

vim /etc/network/interfaces

auto vmbr1
iface vmbr1 inet static
        address 192.168.1.4
        netmask 255.255.255.0
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0

按以上這樣設定好了之後,應該就能ping到switch 192.168.1.1 的IP,若ping 不通的話,請回頭檢查你的設定和網路設備,因為到這一步若不通的話,後面就算設對了也沒用,因此請務必確認能ping通了之後再往下做

若你的母機想要能直接撥接上網的話,請將小烏龜接在第1port (vlan1)然後撥接第1port的帳密,就能上網。

Container子機設定

pppoe撥接

vim /etc/pve/lxc/10x.conf
加入底下這行
lxc.cgroup.devices.allow = c 108:0 rwm # /dev/ppp
lxc.mount.entry = /dev/ppp dev/ppp none bind,optional,create=file
註:不要編輯/var/lib/lxc/100/config此檔,無用,重啟CT之後內容會被還原
子機要安裝底下這兩個套件才能撥接
aptitude install ppp pppoeconf
註:pve4不象pve3那樣受限於母機一定要先撥接過後,子機才能正常撥接

子機vlan設定請參照下圖
pve1
只要在vlang tag那一欄上面填上你要使用的vlan數字,就可調用1~7條不同的線路,需注意的是這數字只能填2以上的數字,所以若你是想要用vlan1的話,那麼這個欄位留白不填即可。

按以上設定就可以在Proxmox VE 4.X 裡經由一張網卡,一條網路線調用7條不同的Internet線路。

]]>
https://blog.vic.mh4u.org/2016/1532/feed 0
LUKS加密 https://blog.vic.mh4u.org/2014/1333 https://blog.vic.mh4u.org/2014/1333#comments Wed, 25 Jun 2014 17:02:18 +0000 http://blog.vic.mh4u.org/?p=1333 閱讀全文 ]]> linux底下預設就有一款LUKS加密功能、redhat簡介

只要安裝這個套件就可以用

sudo aptitude install cryptsetup

重點在於 Format, Open, Close 這三個操作

luksFormat
luksOpen
luksClose

1.建立空檔案

首先我們得使用dd這個指令來建立一個空檔案,參考資料

如果你想建立一個65280 Byte大小的空檔案,可以用以下的指令:

jose@BOX:/mnt# dd if=/dev/sda2 of=file.1 bs=1 count=65280
65280+0 records in
65280+0 records out
65280 bytes (65 kB) copied, 0.372325 s, 175 kB/s
jose@BOX:/mnt# ls -al file.1
-rw-r--r-- 1 root root 65280 Jan 1 01:38 file.1

if:就是 input file,在案例中指定使用/dev/sda2這個partition
of:就是 output file,在案例中指定file.1這個檔案,當然也可以指定成裝置
bs:規劃的一個 block size的大小,在案例中指定成1 byte,未指定時則預設 512 bytes(一個 sector 的大小)。
count:有多少個 bs ,在案例中指定要65280個

上面是舉例說明 dd 這指令要怎麼用,當然我們實際使用是 block size = 1 byte 是太小了,不好用,你可以使用它的預設值 512 bytes

若我們要建立一個64MB的空檔,而且要使用它預設的block size 512 bytes的話就要這麼計算
64MB=67108864bytes
67108864 bytes / 512 bytes = 131072
因此 count 就要填 131072 byte = 128K
指令就要這麼下
dd if=/dev/zero of=/tmp/box.luks count=131072
精簡的下法
dd if=/dev/zero of=/tmp/box.luks count=128K
若你想要縮小 block size 為 256 byte
dd if=/dev/zero of=/tmp/box.luks bs=256 count=256K

至於block size的大小要用多少呢? 可參考這一頁的資料,簡單說,你若所存的檔案都是小檔案的話,那麼你的block size是可以設小一點,若都是大檔案的話,那是可以設大一點。

2.空檔案連結虛擬磁碟

好了,我們已經學會怎樣建一個64MB的空檔案了,接下來就是要

使用 losetup 將此檔連接為為虛擬磁碟
sudo losetup /dev/loop0 /tmp/box.luks

底下指令可看 loop0 所連接的檔案名
sudo losetup /dev/loop0

底下指令可解除 loop0 所連接的檔案名
sudo losetup -d /dev/loop0

注意:若你同時有掛載 truecrypt 加密碟的話,那麼它可能會佔用了 /dev/loop0 先卸載它或改連接 loop1

3.格式化虛擬磁碟loop

接下來開始格式化 loop0 參考資料

sudo cryptsetup luksFormat /dev/loop0

PS:luksformat這個指令 和 這個指令 cryptsetup luksFormat 執行的效果不一樣。


WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:

注意:上面的yes一定要大寫,接著請你輸兩次密碼。

這樣我們就完成了加密碟的製作。

4.掛載加密碟

要掛載之前要先將 box.luks 連結到 loop0
sudo losetup /dev/loop0 /home/user/box.luks
然後用底下指令開啟

說明:最後那個luks可以是任意字串
cryptsetup luksOpen /dev/loop0 luks
輸入此指令後它會問你密碼,就是你前面設定的密碼。
正確輸入密碼之後,文件系統裡就會多出一個 /dev/mapper/luks
接下來就可以象使用 /dev/sdX 一樣使用 /dev/mapper/luks

由於我們是剛建立好一個新的加密碟,就象新買來的硬碟,第一次使用之前要先格式化成你需要的檔案系統,範例如下:
格式化成ext4檔案系統
mkfs.ext4 /dev/mapper/luks
上述指令只需要做一次即可。

掛載
mount /dev/mapper/myfs /mnt/luks/

使用完後, 卸載它:
umount /mnt/luks
cryptsetup luksClose /dev/mapper/luks
losetup -d /dev/loop0

有鑒於每次掛載、卸載都要重覆打這麼多指令,很花時間,因此我就寫了一個腳本,幫助我們快速的掛載與卸載加密碟,請參考這篇文章

補充說明

添加/移除/修改LUKS密碼
說明:luks加密碟可以使用不只一隻金鑰(密碼),預設最多可使用8組密碼。

主要參數說明:
luksAddKey 增加金鑰密碼(最多8組)
luksChangeKey 改密碼
luksRemoveKey 移除金鑰密碼
luksDump 顯示目前使用了幾組金鑰

範例:
cryptsetup luksAddKey /dev/loop0
Enter any passphrase: 這裡請輸入舊密碼
Enter new passphrase for key slot: 這裡請輸入新密碼
Verify passphrase: 再輸入一次新密碼
cryptsetup luksRemoveKey /dev/loop0
Enter LUKS passphrase to be deleted:
cryptsetup luksAddKey /dev/loop0 keyfile
Enter any passphrase:

參考資料:
若你是在windows底下想要使用 luks 加密碟的話,可以安裝 FreeOTFE,若你是使用ext4檔案系統的話,可以搭配 ext2fsd 使用

]]>
https://blog.vic.mh4u.org/2014/1333/feed 2
geany https://blog.vic.mh4u.org/2014/1314 https://blog.vic.mh4u.org/2014/1314#respond Sun, 22 Jun 2014 07:53:05 +0000 http://blog.vic.mh4u.org/?p=1314 閱讀全文 ]]> geany是一款輕量級的IDE程式碼編寫工具

1.安裝指令

sudo aptitude install geany geany-plugin-addons

裝完之後可在”主選單→軟體開發”裡看到它

2.細部設定

無法切換中文輸入法

原因:熱鍵衝突,將此熱鍵改掉即可。參考資料
按底下方式修改設定:

偏好設定→按鍵繫結(Keybindings)→右邊視窗找到”補完字詞” (不同版本的中文翻譯可能不一樣),請確認它的熱鍵設定是 “<Primary>space”→變更→輸入一個不同的熱鍵即可。

這樣設定就可以了,但還有個小問題,就是gcin、hime 無法正常使用 ctrl+,. 解法有點麻煩,得修改geany的原始碼才行。所以這個問題暫不考慮解決。

滑鼠右鍵開啟URI網址

步驟1
偏好設定→工具→瀏覽器→請設定你目前所使用的瀏覽器的指令,例如: /opt/firefox/firefox 為linux mint預設火狐指令
步驟2
工具→外掛程式管理員→Addons請打勾→偏好設定→請打勾Show an ‘Open URI’ item in the editor menu

高亮主題

在geany的官網上有3個主題可供下載,下載後將它們解壓縮, 放入 ~/.config/geany/filedefs/ 此資料夾內,重啟geany即可。 其它的代碼提示可在這裡下載

自動完成

這個功能的主要作用是輸入簡易字符串自動通過快捷鍵自動補全到定義的匹配字符串。參考資料

比如說輸入 「form」按tab鍵自動完成為

相當快捷,這個功能是通過修改snippets.conf 配置文件實現的,在這裏下載你需要的文件。 放到配置文件跟目錄下即可,也就是 ~/.config/geany

]]>
https://blog.vic.mh4u.org/2014/1314/feed 0
compiz安裝 https://blog.vic.mh4u.org/2014/1155 https://blog.vic.mh4u.org/2014/1155#respond Thu, 27 Feb 2014 03:42:33 +0000 http://blog.vic.mh4u.org/?p=1155 閱讀全文 ]]> compiz 是個已經停止運作的項目,因此它被debian從軟體來源裡拿掉了,所以在安裝上會比較麻煩一些。

底下分別介紹幾種安裝方法,擇一用之。

1.aptitude安裝

加來源
sudo vim /etc/apt/sources.list
加入底下內容
#compiz
deb http://snapshot.debian.org/archive/debian/20120616T042917Z/ wheezy main

更新來源
注意不能直接用 apt-get update 這樣的指令,會報錯,得用底下的指令
[cmd]apt-get -o Acquire::Check-Valid-Until=false update[/cmd]

安裝指令
[cmd]aptitude install compiz compiz-core compiz-gtk compizconfig-settings-manager compiz-plugins compiz-fusion-plugins-main compiz-fusion-plugins-extra compiz-fusion-plugins-unsupported python-compizconfig -t wheezy[/cmd]

ccsm bug解法

這樣裝出來的compiz基本上就可以用了,但是 compizconfig-settings-manager 裝出來的版本是 compizconfig-settings-manager_0.8.4-2_amd64.deb 此版有bug,設定畫面會沒有圖示和文字,因此底下是解決此bug的方法

下載原始碼備用載點(已打過補打)
解壓縮之後我們要打補丁(修正程式碼)

要下載原始碼編譯之前得先安裝好必要套件才能編譯
[cmd]指令:
aptitude install build-essential libxcomposite-dev libpng12-dev libjpeg-dev libsm-dev libxrandr-dev libxdamage-dev libxinerama-dev libstartup-notification0-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev libmetacity-dev librsvg2-dev libdbus-1-dev libdbus-glib-1-dev libgnome-desktop-dev libgnome-window-settings-dev git autoconf automake automake1.9 libtool intltool libxslt1-dev xsltproc libwnck-dev python-dev python-pyrex
[/cmd]

補丁內容大概就是這樣(若你不想打補丁可用後面介紹的另一個方法)

diff -Naur ccsm-0.8.4~/ccm/Utils.py ccsm-0.8.4/ccm/Utils.py
--- ccsm-0.8.4~/ccm/Utils.py	2009-10-14 03:05:30.000000000 +0200
+++ ccsm-0.8.4/ccm/Utils.py	2013-10-05 10:16:10.050030522 +0200
@@ -184,7 +184,7 @@
         if has_focus:
             self.unset_flags (gtk.HAS_FOCUS)
 
-        ret = super (PrettyButton, self).do_expose_event (self, event)
+        ret = gtk.Button.do_expose_event (self, event)
 
         if has_focus:
             self.set_flags (gtk.HAS_FOCUS)

你也可以將以上內容copy之外另存文字檔名為 ccsm-084-fix-missing-icon-and-text.patch 將其存在 ccsm-0.8.4 此資料夾內
底下是打補丁的指令,注意備用載點的原始碼我已打過補丁了,就不用執行底下第2行指令了

指令:
cd ccsm-0.8.4
patch -p1 < ccsm-084-fix-missing-icon-and-text.patch
#移除原本安裝的ccsm
sudo aptitude purge compizconfig-settings-manager
#安裝更新過的ccsm
./setup.py install

這樣ccsm就可以正常顯示了

不打補打的方式

sudo vim /usr/lib/python2.7/dist-packages/ccm/Utils.py
上面的檔案若找不到的話,可試試底下這檔案
sudo vim /usr/lib/pymodules/python2.7/ccm/Utils.py
找到底下這行: 大約在186行左右

ret = super (PrettyButton, self).do_expose_event (self, event)
改成:
ret = gtk.Button.do_expose_event (self, event)

2.deb檔安裝

下載deb檔,解壓縮之後,進入該資料夾,使用底下指令安裝

先安裝相依套件
aptitude install mesa-utils gconf-defaults-service

dpkg -i *.deb
aptitude -f install

以下部份套件將會被設定:  
  compiz-fusion-plugins-main{b}
沒有套件將會被安裝、升級或移除。
0 個套件升級, 0 個新安裝, 0 個將移除且 40 個不會升級.
需要下載 0 B 的歸檔檔案. 解裝後將用去 0 B.
以下套件含有相依性:
 compiz-fusion-plugins-main : 相依關係: libjpeg62 (>= 6b1) 這是虛擬套件
以下動作會解決這些相依問題:

     移除 下列套件:            
1)     compiz-fusion-plugins-main


是否接受該解決方案?[Y/n/q/?] y

compiz-fusion-plugins-main解法

說明:由於compiz-fusion-plugins-main_0.8.4-2+b1_amd64.deb 此檔案安裝有套件版本相依的問題
compiz-fusion-plugins-main 相依於 libjpeg62 (>= 6b1)
新版的 libjpeg62-turbo 與 libjpeg62 衝突裝不起來,改用解壓縮後直接copy檔案

dpkg -x compiz-fusion-plugins-main_0.8.4-2+b1_amd64.deb .

cp -v usr/lib/compiz/*.so /usr/lib/compiz/
cp -vr usr/share/compiz/* /usr/share/compiz/
cp -v usr/include/compiz/*.h /usr/include/compiz/
cp -rv usr/share/doc/compiz-fusion-plugins-main/ /usr/share/doc/compiz-fusion-plugins-main/
cp -rv usr/share/locale/* /usr/share/locale/

裝完之後,一樣要處理 ccsm bug 的問題,解法參上面的內容。

開機啟動

在安裝完compiz主程式之後,在終端機裡執行底下指令

/usr/bin/compiz --replace

若沒問題的話,你可以把上面的指令設定在一進入桌面就自動執行。
若出問題,比如沒有視窗邊框或程式當掉...可改執行底下指令回復

/usr/bin/mate-wm --replace

並把上面的指令設定在 compiz 設定頁面裡的, Crash handler 裡。

問題排除

有時候會遇到視窗邊框不見的問題,也就是說,視窗最上方的"關閉、縮小、最大化"的按鈕不見了,這樣你連移動視窗都有很大的困難。
解法:改用其它的視窗裝飾程式
先用指令測試並找出問題,打開終端機,輸入底下指令
/usr/bin/compiz-decorator
我的系統執行後,會報錯:"記憶體區段錯誤" 不知什麼原因,很顯然不能用它來當視窗裝飾,改執行另一個指令
/usr/bin/compiz-mate-gtk
可以執行,但會跑出很多訊息,好象也有不少錯誤,最後視窗邊框還是沒有跑出來。改執行另一個指令 emerald (前提是你要有裝這個套件)
/usr/bin/emerald --replace
結果:視窗邊框跑出來了,能正常執行了,沒有問題。
注意:上面的指令 replace 前面是兩個減號,wordpress會把我這兩個減號改成外觀很象減號的字,但作為指令去執行是不行的。

請點開compiz設定管理程式 (CompizConfig Settings Manager)
在 Effects 裡有一個"視窗裝飾" 打開來,在指令那一欄裡面輸入 /usr/bin/emerald --replace 即可。
欲使用其它的邊框裝飾,可在"主選單→系統→偏好設定→Emerald Theme Manager" 裡面挑,當然你得多裝一些theme才能多挑一些。

若你沒有安裝emerald可點我下載安裝。

emerald.7z 解壓縮之後內有兩個 .deb 檔是主程式,一樣使用 dpkg -i *.deb 安裝,至於另一個資料夾"emerald佈景主題" 可隨意裝或不裝。

]]>
https://blog.vic.mh4u.org/2014/1155/feed 0
LMDE使用藍牙設備 https://blog.vic.mh4u.org/2013/1053 https://blog.vic.mh4u.org/2013/1053#respond Fri, 30 Aug 2013 03:55:38 +0000 http://blog.vic.mh4u.org/?p=1053 閱讀全文 ]]> 前言:

大部份的藍牙接收器都是使用相同的晶片,所以市面上買得到的藍牙接收器都可以在linux底下使用,這就有點像便宜的螃蟹卡晶片已經大量的佔據了所有低價網路卡的市場了,所以你去買一塊最便宜的網路卡時常會買到螃蟹卡,所幸螃蟹卡的品質還不算太差,也才能被市場接受。usb藍牙接收器大概也象這樣的情形。底下開始介紹怎樣在linux底下驅動藍牙接收器。

1 檢查系統

插上你的usb藍牙接收器之後請下此指令來看看系統是否有發現你的usb藍牙接收器

lsusb

在我的系統顯示了如下的訊息

Bus 006 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

因此我使用這個關鍵字”Cambridge Silicon Radio, Ltd Bluetooth Dongle”去網路上查到了這頁的資料,裡面有寫著module btusb有支援此driver,那我就猜想linux kernel 原生就有支援此藍牙接收器了。只要這麼做即可

sudo vim /etc/module
加上底下這兩行即可
#bluetooth
btusb
(純猜測:也許以上這動作可以省略不做)

若要看kernel是否有此檔或是否還有支援其它藍牙的drvier可下此指令
ls -al /lib/modules/3.2.0-4-amd64/kernel/drivers/bluetooth
註:中間那個路徑 3.2.0-4-amd64 請更換成你現在所使用的kernel版本號

2 安裝必備套件

由於系統已內定安裝 bluez 此套件,若你沒有的話,請自行安裝 bluez

aptitude install bluetooth

裝完上面這個套件之後,重開機理論上系統應該就可以正確的驅動你的藍牙接收器了,可以使用此指令來確認你的系統是否已經正確的驅動了你的藍牙接收器了。
指令: hcitool dev
顯示出來的結果
Devices:
hci0 00:15:83:07:C8:55

但實際上,重開機後,我的系統並不能找到我的藍牙接收器,開機後我還必須下一次這樣子的指令,才能使我的系統找到藍牙接收器
指令: /etc/init.d/bluetooth restart

猜測可能原因是 bluetooth 這個服務在module driver 還沒載入之前,bluetooth服務就先啟動了,故會找不到藍牙接收器。請接著看下一步怎麼解決這問題。

3 修正開機問題

由於在LMDE裡,bluetooth 服務沒有辦法正常啟動,每次開機後都要下一次這樣的指令 /etc/init.d/bluetooth restart 藍牙接收器才能正確被啟動,這樣很麻煩。底下是解法

指令:
insserv -r bluetooth
insserv bluetooth

這樣就可以了,猜測可能原因是 bluetooth 這個服務在module driver 還沒載入之前,bluetooth服務就先啟動了,故會找不到藍牙接收器,試著執行以上的指令調整啟動順序就行了。再不行的話,試試底下指令 (底下指令我沒試過,純猜測,因為我用上面的指令就解決問題了)

insserv -r bluetooth
update-rc.d bluetooth start 99 2 3 4 5 .

指令簡要說明:第一行指令,移除bluetooth開機啟動。第二行指令,重新設定bluetooth開機啟動,並將啟動值設為99意即最後一個啟動,要注意第二行指令最後面有一個小數點,那個小數點不能少。

其它參考資料:
幾個比較重要的BlueZ工具:
hcitool:
hcitool dev(顯示目前所有藍芽裝置及位置)
hcitool scan(掃描區域內所有藍芽裝置)<--常用 hcitool name [bdaddr](顯示Bluez硬體位置和名稱) hcitool inq(查詢所有藍芽)<--包含 dsptool: sdptool browse [bdaddr](查詢藍芽裝置內所有的服務) l2ping [bdaddr](Ping L2CAP層的連線狀態) 參考資料:堯@部落格help ubuntu

]]>
https://blog.vic.mh4u.org/2013/1053/feed 0
gvim設定 https://blog.vic.mh4u.org/2013/1043 https://blog.vic.mh4u.org/2013/1043#comments Fri, 28 Jun 2013 07:24:22 +0000 http://blog.vic.mh4u.org/?p=1043 閱讀全文 ]]>
源起:我慣用的madedit與gcin配合不好,於是想用gvim來取代它
目標:使用gvim完全取代掉madedit
環境:Linux Mint Debian 64bit

1.安裝


sudo aptitude install vim-gtk

說明:由於gvim已成為一個虛擬套件,所以你要直接安裝gvim是不行的

2.開分頁

由於gvim安裝完預設開第二個檔案時,是不能開分頁的模式開啟,它會直接再開另一個視窗,若想要用分頁模式得做以下設定

sudo vim /usr/share/applications/gvim.desktop
找到這行
Exec=gvim -f %F
改成
Exec=gvim -f –remote-tab-silent %F
這樣設定之後,就可以開分頁了

接著你再對著某一個檔案,例: *.txt 點滑鼠右鍵→屬性→以此開啟→Gvim→關閉
這樣就能指定 .txt 檔使用 Gvim來開啟了

3.改成記筆本模式

預設gvim打開檔案時是指令模式,每次要編輯文檔時都得要先按個 i or a 才能進入編輯模式,很囉唆….而且複製、貼上的熱鍵跟原本的使用習慣差很多,若當成一般記事本那樣用多好呀! 可以!

一開gvim就直接進入編輯模式

sudo vim /usr/share/applications/gvim.desktop
找到這行
Exec=gvim -f –remote-tab-silent %F
改成
Exec=evim -f –remote-tab-silent %F
改成 evim 之後複制&貼上的熱鍵也會改成 ctrl+c & ctrl+v
但是這樣它就不支援指令模式了,不支援指令模式的話,那麼強大的vim功能很多都不能用到了,嗯,先這樣吧,之後再來慢慢研究怎麼改善。

4.外觀調整

顏色與字型設定

特別注意我的設定檔是用 .gvimrc 因為要跟單純的 vim 分開使用、所以設定檔也分開,避免使用習慣錯亂
vim ~/.gvimrc
貼上底下內容

hi Normal guibg=#c7edcc guifg=Black "背景:綠色護眼色
hi LineNr guibg=#99cc99 guifg=#99ccff ctermbg=7777 ctermfg=blue "設定行號的顏色

set cursorline  "設定游標所在位置的顏色
hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=#66cc99 guifg=black

set nocompatible " VIM 不使用和 VI 相容的模式
syntax on "語法上色顯示

"set nu "顯示行號 
"set guifont=Droid_Sans_mono\ 12

" 設定字體樣式及大小。
set guifont=Monaco\ 14 "

set nobackup "設定不自動新增一個以~為結尾的備份檔
set mouse=a

若你遭遇gvim中文字型字距太寬的問題,那是你選了不對的字型,換一個字型就好了,你可以直接下載我設定檔裡使用到的這個字型就沒問題。

嗯,這樣改裝之後gvim大部份的使用習慣都還滿能符合原來使用madedit的使用習慣,但還有一些不滿意的地方,先列下來,之後慢慢的找改進方法。

待改進的部份:
1.網址超連結,希望能用滑鼠點兩下就能直接開啟連結,這點madedit目前做不到,但我相信gvim應該能做到。(參考資料1參考資料2參考資料3參考資料4、)

2.支援指令模式,我猜大概不能使用evim的方式了,得自己另外寫熱鍵對應才行。
3.語法上色的問題,目前的顏色設定我是使用綠色護眼色,用來看純文字檔是很舒服不錯,但這種底色要是開程式碼那些程式碼都被上色了,閱讀起來就很困難,得想辦法調整。
4﹒分頁關閉問題,它的分頁旁邊沒有一個”X”可以關閉的按鈕,使用熱鍵關閉分頁目前設為 ctrl+F4 不習慣….我習慣是 ctrl+w (火狐也是這樣設定的)。

[note]
參考資料:程式員專用最佳字型-MonacogVim 的 color scheme (ir_black.vim)Vim背景色修改gvim的字距问题分享我的vim設定檔、[/note]

]]>
https://blog.vic.mh4u.org/2013/1043/feed 1
kompozer自動換行問題 https://blog.vic.mh4u.org/2013/1028 https://blog.vic.mh4u.org/2013/1028#comments Fri, 21 Jun 2013 07:37:34 +0000 http://blog.vic.mh4u.org/?p=1028 閱讀全文 ]]>
kompozer自動換行的問題困擾我已久,最近終於找出一個較完美的解法了。

底下解法適用版本 0.8b3

1.參照下圖設定

上圖那樣的設定能解決很大一部份自動換行的問題,但還沒完全解決

2.修改設定檔
我的系統是64bit debian 使用 aptitude 安裝 kompozer 安裝後它的主程式位於此資料夾 /usr/share/kompozer/

sudo gedit /usr/share/kompozer/defaults/pref/editor.js
找到此行
pref(“editor.htmlWrapColumn”, 72);
改為
pref(“editor.htmlWrapColumn”, 9999);

注意:一定要改為4個9,不能5個9或3個9。

這樣就算成功了,若你找不到 editor.js 在你電腦裡的哪個位置的話,你可以在 kompozer 安裝此外掛 about:config 裝完之後,重啟kompozer 在你的工具那一欄底下就會多一個功能 about:config 執行它,在跳出的視窗”過濾器”那欄填上 “editor.htmlWrapColumn” 這樣就可以將那個72的數字修改為9999

這樣就能完美解決自動換行的問題了。 參考資料

win7環境

win7 底下的話,若要修正這個問題,請注意底下條件
①請下載英文版的kompozer不要下載繁體中文版。然後你可以外掛中文語言包。
②修改此檔 “綠色免安裝版\KompoZer\defaults\pref\editor.js” 改成 9999 那個數字
③若不行的話,請試著刪除底下所提到的資料夾之後,再試一次
C:\Users\使用者帳號\AppData\Local\kompozer.net
C:\Users\使用者帳號\AppData\Roaming\KompoZer
C:\Users\使用者帳號\AppData\Roaming\kompozer.net
補充說明:雖然它是綠色免安裝版,但是它的設定卻不會存在它自己所在的資料夾,而是存在上述的資料夾當中,所以搗蛋的大概就是這個檔案了 C:\Users\使用者帳號\AppData\Roaming\KompoZer\Profiles\ydm7zlaw.default\editor.js


災難復原

那麼對於已經被kompozer自動換行搞的一團糟的文件要怎麼辦?也有解法。
有兩個步驟:

①使用tidy接起中文斷行 參考資料

sudo aptitude install tidy

tidy 參數設定

gedit ~/.tidy-config
貼上底下內容

// config file for HTML tidy
show-warnings: no
wrap: 1000
indent: auto
indent-spaces: 4
// indent-attributes: yes
markup: yes
output-xml: no
input-xml: no
output-xhtml: no
output-html: yes
numeric-entities: yes
quiet: yes
quote-marks: yes
quote-nbsp: yes
quote-ampersand: no
break-before-br: no
uppercase-tags: no
uppercase-attributes: no
char-encoding: utf8
input-encoding: utf8
break-before-br: yes
// lower-literals: yes
// drop-proprietary-attributes: yes
// repeated-attributes: keep-last
// error-file: errs.txt

tidy執行
tidy -config ~/.tidy-config 檔名.htm > 輸出後的檔名.htm

②使用正規表示法

打開支援正規表示法搜尋、取代的文書處理器,如:madedit
在 madedit 裡可以這樣做(使用正規表示式需要打勾)
搜尋欄位填入: ([\u4e00-\u9fa5]{1,6}) ([\u4e00-\u9fa5]{1,6})
取代欄位填入: $1$2

語法說明:
[\u4e00-\u9fa5] 代表中文字
{1,6} 代表前一個字元最少1個,最多6個。加上前面的語法解釋起來就是:尋找中文字最少一個,最多六個。

[\u4e00-\u9fa5]{1,6}半形空格[\u4e00-\u9fa5]{1,6}
這就是我們要找的東西,找一堆中文字裡莫名其妙的出現半形空格

([\u4e00-\u9fa5]{1,6})半形空格([\u4e00-\u9fa5]{1,6})
半形空格前後的中文字,我們各給它加上小括號
這樣第一個小括號找出來的東西就可用 $1 變數來代表,
這樣第二個小括號找出來的東西就可用 $2 變數來代表,
所以我們在取代的那一欄裡只要填上
$1$2
這樣即可,中間不能有空格(你就是要刪掉空格的,你不要在這時又傻傻的把空格填回去)


中文亂碼

可能你在你打完中文字、存檔後,去看一下 .html 原始碼內容,卻發現它都是呈現象底下這樣的中文亂碼

底下是參考資料請看看:

這算是 bug 吧,我在下圖的設定它好像不起作用

這問題通常只發生在開一個全新的檔案的時候,因為kompozer預設的編碼是 ISO-8859-1 ,我找了很久,也找不到要從哪去改它的預設編碼。若你編輯一個舊檔案通常不會有這個問題。

解法有三,擇一用之即可。

方法一:
在存檔時,記得選擇”儲存並變更字元編碼“,然後選擇UTF-8即可。

方法二:
點選”檢視→字符編碼→UTF-8″

方法三:
點選”格式→頁面標題與屬性→字元編碼方式→UTF-8”

這樣就可解決 .html 原始碼內的中文亂碼問題

]]>
https://blog.vic.mh4u.org/2013/1028/feed 4
mldonkey安裝筆記 https://blog.vic.mh4u.org/2012/757 https://blog.vic.mh4u.org/2012/757#respond Sat, 14 Jul 2012 06:08:33 +0000 http://blog.vic.mh4u.org/?p=757 閱讀全文 ]]>

mldonkey安裝筆記

mldonkey是一種同emule的p2p程式,安裝在linux系統,底下記錄著mldonkey安裝在Debian 4.0 r4a版本的筆記

1.先安裝debian版的 mldonkey-server

使用 mldonkey-server 的安裝,啟動和設定會方便許多

apt-get install mldonkey-server

安裝過程會問你使用者的帳號密碼,做為將來管理mldonkey用
過程中會問你開機要不要自動啟動,請選是
裝完之後會有中文亂碼的問題需解決
請先停止 mldonkey 的運作

/etc/init.d/mldonkey-server stop

安裝好之後,會是舊版的 2.8.x 下載速度很慢,所以我們需要升級到新版的下載速度才會變快

注意:錯誤的升級法,會把你的系統給搞爛,底下這段文字僅是記錄我上次安裝失敗的參考,不需做任何操作
修改 Package List (nano /etc/apt/sources.list),加入 unstable 的位址:
deb ftp://debian.linux.org.tw/debian/ unstable main contrib non-free
然後用 apt-get install mldonkey-server 來安裝
安裝過程有提示我,套件有相容性的問題,而且這是個危險的操作,如果你不知你在幹啥的話,就不要繼續下去
我思考了很久,而且那時在網路上也還沒找到其它的解決方法,所以只好繼續下去
反正我的系統己經備份了,到時再還原即可(結果系統備份檔壞掉,還原失敗,害得我得重灌系統,裡面的資料差點全流失)

2.解決中文檔名亂碼的問題

a.到此下載↓ mldonkey-2.9.6.tar.bz2 源碼
http://sourceforge.net/project/showfiles.php?group_id=156414&package_id=174487

b.解壓縮後,修改源碼裡的一點內容

vim mldonkey-2.9.6/src/utils/lib/charsetstubs.c

找到下列一段(按Ctrl+w搜尋)
======================
if (!str)
raise_error ();
str=”UTF-8″; <=新增這行
return (copy_string ((char*) str));
}
=======================
然後存檔離開

c.安裝編譯前所需要的函式庫
apt-get install make
apt-get install zlib1g-dev
apt-get install ocaml
apt-get install libgd2-noxpm-dev
↑沒有裝這個編釋出來的mlnet就會沒有Gd support,就不能看web介面看到頻寬狀況的繪圖

編譯時經常會需要一些額外的函式庫,有時挺難找的
網路上的高手就留下了這麼一句話↓
apt-file 和 apt-cache 是你的好朋友

d.開始編譯mldonkey
cd mldonkey-2.9.6
./configure
make

第二行指令,我是用 ./configure –enable-gd 或許可以不用加後面的參數也沒關係
在網路上看到有人是加這樣的參數↓,但我沒加,就能有頻寬狀況的繪圖了
./configure –enable-batch –enable-pthread-lib

e.備份原來的版本 mlnet
mv /usr/bin/mlnet /usr/bin/mlnet.bak
copy 剛編釋好的2.96版本 mlnet 到 /usr/bin 內
cp mlnet /usr/bin/

然後執行一次 mlnet 看有沒有什麼問題,若沒問題的話,按ctrl+c 結束
一定要先結束該程式才能接著編輯它的設定檔
否則設定檔會被改回來!

3.設定

a.先加個虛擬帳號mldonkey
vim /etc/passwd
加入底下這行
mldonkey:x:1003:100:::/bin/false
把mldonkey 群組設在 100 (users) 會比較方便

b.改群組
chgrp users /var/lib/mldonkey/ -R
vim /etc/default/mldonkey-server
把 group 改成users
MLDONKEY_GROUP=users

c.設定 mldonkey
vim /var/lib/mldonkey/downloads.ini
請找到相對位置修改
=============downloads.ini 內容開始===================================
allowed_ips = [
“127.0.0.1”;“192.168.0.0/24”]

max_hard_upload_rate = 10
#最大上傳速率
max_hard_download_rate = 0
#最大下載速率,設0為無限

temp_directory = “/var/share/p2p/tmp
#設暫存檔位置

#底下是設下載的目錄
shared_directories = [
{
dirname = “/var/share/p2p
strategy = incoming_files
priority = 0
};
{
dirname = “/mnt/disk1/share/P2P
strategy = incoming_directories
priority = 0
};]

run_as_user = “mldonkey

(* The UID of the user (0=disabled) you want mldonkey to run as, after the ports…..
run_as_useruid = 1003

run_as_group = “users

run_as_groupgid = 100
=============downloads.ini 內容結束===================================

設定完之後重開機試試看連不連的上
http://你的IP:4080

進去時會問你帳密,就是你在第一步安裝時所設的帳密

停止、啟動 mldonkey 的指令
/etc/init.d/mldonkey-server stop|start

有問題可查看此 log 檔
/var/lib/mldonkey/mlnet.log

mldonkey設定不好搞,在看了很多參考文章之後才弄起來的

參考文章:
MLDonkey – 萬用 P2P 下載工具 (eMule, BT)
mldonkey編譯及運行
[推荐]速度最快的U+7535U+9A74——mldonkey
修正mldonkey2.8 中文文件名bug
Mldonkey安裝成功的事前步驟
[更新mldonkey]支援BT的窮人NAS-PCI NAS-01G

Linkstation pro 要使用 ARM 版本的 mldonkey 安裝
mldonkey ARM 版本下載(英文)
mldonkey ARM 版本安裝介紹(英文)

sancho官網
http://sancho-gui.sourceforge.net/

]]>
https://blog.vic.mh4u.org/2012/757/feed 0
tmux教學 https://blog.vic.mh4u.org/2012/707 https://blog.vic.mh4u.org/2012/707#respond Mon, 09 Jul 2012 02:52:26 +0000 http://blog.vic.mh4u.org/?p=707 閱讀全文 ]]>
tmux在網路上可以找到很多的中文資料,可看我最後面的參考資料。底下只簡述我常用的一些重點。

修改設定檔:
啟用捲軸功能
vim .tmux.conf
加入底下這行

#設定訊息卷軸
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
#set -g mode-mouse on
#啟用滑鼠功能,選擇視窗、分頁、調整分割視窗
set -g mode-mouse on
set -g mouse-select-window on
set -g mouse-select-pane on
set -g mouse-resize-pane on
#啟用滑鼠功能後,會使滑鼠選擇文字功能失效,但只要按鍵shift鍵去選擇即可,shift+滑鼠中鍵可貼上
#註:這些選項在 tmux 2.1版之後被取消了,只改成一個"mouse"選項了

這樣設定後,在tmux裡如果不切换窗口,是可以直接滾的。
說明一下,上面第2行的 mode-mouse 也可以達成捲軸的效果,但不同的是,要使用滑鼠反白就有困難。

Debian / Ubuntu 安裝 Tmux 後, 於設定檔範例裡面, 就有設定成跟 Screen 快速鍵一致的設定, 還有把 Vim 的快速鍵操作方式(切割視窗)加入 的設定範例, 位置如:
/usr/share/doc/tmux/examples/screen-keys.conf
/usr/share/doc/tmux/examples/vim-keys.conf

操作方式、常用快捷键:
大寫的C==>Control鍵

C+b c 開新視窗
C+b n 或 space 切換到下一個視窗
C+b P 切換到上一個視窗
====視窗分割功能======
C+b ” 水平分割視窗
C+b % 垂直分割視窗
C+b up or down 切換分割視窗
C+b C上 or C下 分割視窗大小調整
C+b C左 or C右 分割視窗大小調整
C+b space 重新佈置分割的視窗
C+b ! 取消所有分割視窗
指令 exit 跳出當前分割視窗

C+b + Ctrl + 方向鍵上/下/左/右
# 可以調整當前分割視窗的長寬,好用!

作用鍵 + d
# 將目前的 Tmux Session 丟到背景去

tmux ls
# 列出主機上所有的 Tmux Session

tmux a -t 0
# 將背景的第 0 號 Tmux Session 叫回,a 代表 attach

Ctrl+b 激活控制台;此时以下按键生效
系统操作 ? 列出所有快捷键;按q返回
d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
D 选择要脱离的会话;在同时开启了多个会话时使用
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用
: 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
[ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
窗口操作 c 创建新窗口
& 关闭当前窗口
数字键 切换至指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 在前后两个窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口;这样便于识别
. 修改当前窗口编号;相当于窗口重新排序
f 在所有窗口中查找指定文本
面板操作 将当前面板平分为上下两块
% 将当前面板平分为左右两块
x 关闭当前面板
! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
q 显示面板编号
o 在当前窗口中选择下一面板
方向键 移动光标以选择面板
{ 向前置换当前面板
} 向后置换当前面板
Alt+o 逆时针旋转当前窗口的面板
Ctrl+o 顺时针旋转当前窗口的面板

視窗取回

screen -r
tmux attach

視窗取回 by session name

screen -r session-name
tmux attach -t session-id

視窗開啟自訂 session-name

screen -S session-name
tmux new -s session-name # ex: tmux new -s irc

列出所有 session

screen -ls
tmux ls # tmux list-sessions

[note]
參考資料:
Hawk Host Blog1Hawk Host Blog2从screen切换到tmuxtmux远程管理利器使用tmux、tmux超好用terminal multiplexer,把screen冷凍吧!查理布朗的倒楣世界脚本化tmuxKids Return張旭Tsung’s BlogJeswang’s blogstackOverflow軟體工程師的工作筆記
[/note]

]]>
https://blog.vic.mh4u.org/2012/707/feed 0
iptables用法 https://blog.vic.mh4u.org/2012/676 https://blog.vic.mh4u.org/2012/676#respond Sat, 09 Jun 2012 09:34:35 +0000 http://blog.vic.mh4u.org/?p=676 閱讀全文 ]]> centOS 與 debian 的操作細節有所不同,因此分開來講

centOS 部份

iptables規則的存放位置

在 centOS 裡, iptables 的規則一定要存放在這裡 /etc/sysconfig/iptables
檔案內容的格式大概是這樣:

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

### Flush all rules
-F
### Trusted IP Access

-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
-A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --dports 443,80 -j ACCEPT
COMMIT

設開機啟動
請下指令 setup
進去看 Firewall configuration 的選項看有沒有打勾 (請勾在 Enabled) 有的話開機會自動起來的。

我們要驗証防火牆會不會開機自動啟動,請下指令
service iptables stop
service iptables start

這樣就算是把 iptables 重啟了,接著請下指令看 iptables 有沒有規則存在
iptables -L -n

debian 部份

設開機啟動的部份有些不一樣
vim /etc/network/interfaces
在檔案的最後加上這一行
post-up /sbin/iptables-restore < /etc/iptables.conf 規則檔你可任意放在你想要的地方,只要路徑指定正確即可

  • iptables 範例1
  • 底下示範一個簡單的範例,只做基本防護。 INPUT 預設政策為 DROP,開放幾個常用 port。

    *filter
    :INPUT DROP [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    
    ### Flush all rules
    -F
    ### Trusted IP Access
    
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    #內網IP全部開放
    #若你不需指定網卡,可直接拿掉 -i eth+ ,多寫的用意是方便我在指定網卡時,可直接套用語法修改 +  為網卡數字
    -A INPUT -i eth+ -s 192.168.0.0/16 -j ACCEPT
    
    #ftp port:20~21 
    #ftp passive(被動式)port:7000~7500  這個 port 範圍需配合你的  ftp 設定才行
    #ssh port:22 web:80
    -A INPUT -i eth0 -p tcp -m multiport --dports 20:22,80,7000:7500 -j ACCEPT
    COMMIT
    


  • iptables 範例2
  • Port knocking 端口碰撞技術

    *filter
    :INPUT DROP [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    
    ### Flush all rules
    -F
    ### Trusted IP Access
    
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    #內網IP全部開放,若你不想放開內網IP,可刪除底下這行
    -A INPUT -i eth+ -s 192.168.0.0/16 -j ACCEPT
    
    #web:80 若你沒有架 web server 可刪除底下這行
    -A INPUT -i eth0 -p tcp -m multiport --dports 80 -j ACCEPT
    
    -N door
    #新增一個叫做 door 的 chain。
    -A door -m recent --name knock1 --remove
    #把進來door chain裡的封包,除去標籤名為 knock1 的封包。
    -A door -m recent --set --name knock2
    #把進來door chain裡的封包,貼上標籤名為 knock2 的封包。
    -A INPUT -p tcp --dport 168 -m recent --set --name knock1
    #把連線目標埠為168的封包,貼上 knock1 的標籤。
    -A INPUT -p tcp --dport 978 -m recent --rcheck --name knock1 -j door
    #把連線目標埠為978、同時也要有貼著 knock1標籤的封包,送到 door 處理
    #===> 也就是移去knock1標籤、然後被貼上 knock2 標籤。
    -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 10 --name knock2 -j ACCEPT
    #被貼上 knock2 標籤的封包,同時也想連我的 22 port 時,讓它通過。
    COMMIT
    

    原理說明:22port 原本都是關著的,你必須用 telnet 依序去敲 168,978 port 之後, 22port 才會打開 10 秒鐘。
    適用時機:client沒有固定IP,沒有金鑰可用時。
    以上的這個敲門動作,我們可以寫個程式來讓它自動幫我們敲門,才不會那麼麻煩
    開一個文字檔,存檔時副檔名記得要改成 .bat 貼上底下內容,並修改你的IP
    start/b telnet 你的IP 168
    start/b telnet 你的IP 978

    將此檔放於你的桌面,要登入時點它一下就算幫你敲門好了。

  • iptables 範例3
  • INPUT、OUTPUT 預設政策為 DROP,開放少數可連外網站的IP,違法外連會做log記錄下來。

    *filter
    :INPUT DROP [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT DROP [0:0]
    
    #目地:訂一個較為嚴格的防火牆規則,擋進也擋出
    
    ### Flush all rules
    -F
    ### Trusted IP Access
    
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    #-A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    #若你有真實IP,這裡要記得改成你的gateway IP
    #若你不需指定網卡,可直接拿掉 -i eth+ ,寫在這裡的用意是方便我指定網卡時直接套用語法修改 +  為網卡數字
    -A INPUT -i eth+ -s 192.168.1.254/32 -j ACCEPT
    #tcp port 22945:sshd 3100~3300 passive ftp
    -A INPUT -i eth0 -p tcp -m multiport --dports 20:22,80 -j ACCEPT
    #53port for對外查詢DNS時放行
    -A INPUT -i eth0 -p tcp -m multiport --sports 53 -j ACCEPT
    -A INPUT -i eth0 -p udp -m multiport --sports 53 -j ACCEPT
    ##底下 udp 規則 for asterisk sip 5060,rtp10000~20000
    -A INPUT -i eth0 -p udp -m multiport --dports 53,5060,10000:20000 -j ACCEPT
    #不開放 udp port 4569:IAX2 123:ntpd 
    
    #底下是 OUTPUT 放行規則
    -A OUTPUT -o lo -j ACCEPT
    #對外 ping
    -A OUTPUT -p icmp -j ACCEPT
    #若你有真實IP,這裡要記得改成你的gateway IP
    #若你不需指定網卡,可直接拿掉 -o eth+ ,寫在這裡的用意是方便我指定網卡時直接套用語法修改 +  為網卡數字
    -A OUTPUT -o eth+ -s 192.168.1.254/32 -j ACCEPT
    #針對eth0網卡 port 位 TCP 80 放行,
    -A OUTPUT -o eth0 -p tcp -m multiport --sports 20:22,80 -j ACCEPT
    #底下 udp 規則 for asterisk sip 5060,rtp10000~20000
    -A OUTPUT -o eth0 -p udp -m multiport --sports 5060,10000:20000 -j ACCEPT
    #53port for對外查詢DNS時放行
    -A OUTPUT -o eth0 -p tcp -m multiport --dports 53 -j ACCEPT
    -A OUTPUT -o eth0 -p udp -m multiport --dports 53 -j ACCEPT
    
    #底下是額外放行的網站
    #Akismet 伺服器 66.135.58.61~62  72.233.69.88~89 72.233.69.2
    -A OUTPUT -o eth+ -p tcp -d 66.135.58.60/30 --dport 80 -j ACCEPT
    -A OUTPUT -o eth+ -p tcp -d 72.233.69.0/24 --dport 80 -j ACCEPT
    -A INPUT -i eth+ -p tcp -m multiport -s 66.135.58.60/30 --dports 1024:65535 -j ACCEPT
    -A INPUT -i eth+ -p tcp -m multiport -s 72.233.69.0/24 --dports 1024:65535 -j ACCEPT
    
    #www.google-analytics.com 80 & 443 port 
    #173.194.72.100~102 173.194.72.113 173.194.72.138~139
    -A OUTPUT -o eth+ -p tcp -m multiport -d 173.194.72.0/24 --dports 80,443 -j ACCEPT
    -A INPUT -i eth+ -p tcp -m multiport -s 173.194.72.0/24 --dports 1024:65535 -j ACCEPT
    
    #底下這行是安全性設定必須在整個規則的最後面
    #底下這行一定要加在最後面,才能在以上可放行的規則都放行了,才會記錄到沒有放行的動作
    #若加在太前面的話,則會記錄到太多正常放行的動作。
    -A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j LOG
    -A OUTPUT -j REJECT
    COMMIT
    

    將iptables log 檔獨立出來

    參考資料study-area linux基本設定

    由於 iptables log 檔預設是混在 /var/log/message 裡,要看很麻煩,所以我們要將它分離出來

    系統預設 iptables 的 log 等級是 4 ( warn ) 所以我們編輯以下檔案

    vim /etc/rsyslog.conf
    加入這行
    kern.=warn /var/log/iptables.log
    再下指令
    touch /var/log/iptables.log
    /etc/init.d/rsyslog restart

    即可

    若你要更改上面的 log 等級,在 iptables 的規則裡也要改
    例:
    -A INPUT -i eth+ -m state –state RELATED,ESTABLISHED -j LOG –log-level debug
    不過,基本上所記錄的訊息是沒什麼差別的

    補充說明:
    log level 來指定一個 facility 的訊息重要程度﹐按重要程度來分﹑由低至高一共有如下這些
    level﹕info﹑notice﹑err﹑crit﹑alert﹑emerg 或 panic
    另外﹐還有一些特殊的 level﹕debug 主要用來除錯時使用的﹐因為它產生的資訊實在太多了﹐除非真的有此必要﹐否則不要設定

    ]]>
    https://blog.vic.mh4u.org/2012/676/feed 0