Archive for the ‘Linux’ Category

vsftpd限制個別user下載頻寬

ftp是個方便的工具,但是如果不限制使用者的下載頻寬,如果這一台FTP伺服器有提供多種服務的話
那頻寬就會不夠囉(除非你有超大頻寬)

所以查了依下設定檔vsftpd可以針對單一使用者設定下載頻寬

設定方法
建立目錄 mkdir /etc/vsftpd/userconf
在/etc/vsftpd/userconf目錄下建立需要限制user的檔案,touch oauser(一個帳號一個檔案)
在讓檔案加入local_max_rate=10000 這一個設定值(限制為10k)
在/etc/vsftpd/vsftpd.conf 加入一行 user_config_dir=/etc/vsftpd/userconf (表示個別user的設定檔目錄)
重新啟動vsftp服務即可

SUSE Linux上建立pptp VPN

VPN 建置大致上分兩種,一種是pptp,可以帳號登入的設計,一種是IPSec,也可以說是裝置對裝置的設計。前者較普遍、較簡單,後者需用金鑰驗證,自然覆雜了點。但帳號登入的方式比較合乎一般需求,所以我也大多用pptp這種辦法。我是用 SUSE 企業版來完成,網路上對pptp 建置的說法對目前一些新版Linux 好像有點不太一樣,至少我用SUSE 企業版設定方式真的不太一樣。

繼續閱讀 »

FTP的主動模式(active)和被動模式(passive)

主動模式( active )和被動模式( passive )。以下說明 FTP 的連線是怎樣建立的﹕
在 active 模式下 (一般預設的模式)﹕
1. FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線。當順利完成 Three-Way Handshake 之後,連線就成功建立,但這僅是命令通道的建立。
2.當兩端需要傳送資料的時候,client 透過命令通道用一個 port command 告訴 server ,client可以用另一個TCP port 做數據通道。
3.然後 server 用 port 20 和剛才 client 所告知的 TCP port 建立數據連線。請注意:連線方向這是從 server 到 client 的,TCP 封包會有一個 SYN flag。
4.然後 client 會返回一個帶 ACK flag的確認封包﹐並完成另一次的 Three-Way Handshake 手續。這時候,數據通道才能成功建立。
5.開始數據傳送。
在 passive 模式下
1.FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線,並完成命令通道的建立。
2.當兩端需要傳送資料的時候,client 透過命令通道送一個 PASV command 給 server,要求進入 passive 傳輸模式。
3.然後 server 像上述的正常模式之第 2 步驟那樣,挑一個TCP port ,並用命令通道告訴 client。
4.然後 client 用另一個TCP port 呼叫剛才 server 告知的 TCP port 來建立數據通道。此時封包帶 SYN flag。
5.server 確認後回應一個 ACK 封包。並完成所有交握手續?成功建立數據通道。
6.開始數據傳送。
在實際使用上, active mode 用來登入一些開設在主機上及沒有安裝防火牆的 FTP server,或是開設於 client side 的 FTP server!
Passive mode (簡稱 PASV)用來登入一些架設於防火牆保護下而又是開設於主機上的 FTP server!
如果您覺得太深奧而弄不清楚, 那就先用預設的 active mode 登入, 失敗改用 passive mode 登入就是了。
PS: 並不是每套 FTP 軟體都支援 passive mode 登入

主動模式(active)和被動模式(passive)。

以下說明 FTP 的連線是怎樣建立的﹕

在 active 模式下 (一般預設的模式)﹕

1. FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線。當順利完成 Three-Way Handshake 之後,連線就成功建立,但這僅是命令通道的建立。

繼續閱讀 »

限制openwebmail的使用者

有的時候有一些帳號的創立,並不是一定要有 mail 功能,但是偏偏在 Linux 上的 mail 又是使用系統帳號,所以我們必須做一些限制,在 openwebmail 有可以拒絕帳號登入的設定檔,以帳號 ims  和  openwebmail 的目錄 /srv/www/htdocs/openwebmail 為例,設定方法如下:

Step1.
新增個別帳號設定檔:
vi /srv/www/htdocs/openwebmail/cgi-bin/openwebmail/etc/users.conf/ims

Step2.
加入設定值
allowed_serverdomain no

PHP加速器(eaccelerator)

php-eaccelerator 官方網站: http://www.eaccelerator.net/

由於 PHP 屬於直譯語言,因此當放在 Web 伺器器上的 PHP 程式碼被瀏覽者所讀取時,系統為了要執行 PHP 程式碼就必須要使用直譯器(interpreter),將 PHP 程式碼翻譯成電腦系統看得懂(或可以執行)的語言。這個直譯的動作是非常耗費系統資源的,而直譯語言的特性偏偏就是每次執行前都要先進行直譯的動作,因此當您放在 Web 伺服器上的 PHP 程式碼被 1000 個 client 讀取時,系統就要進行 1000 次的直譯動作。而 PHP 加速器的功能就是會把被這些 PHP 程式碼快取(Cache)起來,也就是同一支程式碼只要被直譯一次而已,藉此大幅降低系統的負載。以下就是在OpenSuSE 11.0上安裝的步驟:

繼續閱讀 »

限制ssh連入頻率

一、建立自訂 Chain,限制 tcp 連線每分鐘一次,超過者觸發 Log 記錄
iptables -N ratelimit
iptables -A ratelimit -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A ratelimit -p tcp –syn -m limit –limit 1/m –limit-burst 1 -j ACCEPT
iptables -A ratelimit -p tcp -j LOG –log-level “NOTICE” –log-prefix “[RATELIMIT]”
iptables -A ratelimit -p tcp -j DROP


二、引用自訂 Chain,限制 ssh(tcp port 22)連入頻率

iptables -A INPUT -p tcp –dport 22 -s 192.168.0.0/16 -j ACCEPT(特定 IP 不受限制)
iptables -A INPUT -p tcp –dport 22 -j ratelimit


三、sshd_config 設定

LoginGraceTime 30 密碼輸入時限為 30 秒
MaxAuthTries 2 最多只能輸入 3 次密碼

解決SuSE裡的faillog檔問題

我用了SUSE Enterprise Server 10,
但是好像因為pam模組的問題,
導致沒有辦法使用faillog,
請參考以下的解決方法。


Step1

在/etc/pam.d/common-auth 這個檔案裡,加入下面這一個模組。
auth required pam_tally.so

Step2
在/etc/pam.d/common-account 這個檔案裡,加入下面這一個模組。
account required pam_tally.so

Step3
檢查/var/log/faillog 這個檔案的權限是否正確。
把使用者和群組設定為root,而且可讀可寫,也就是使用下面方法更改。
chmod 600 /var/log/faillog

在Linux下使用遠端桌面連線

一、下載軟體的網址

http://www.rdesktop.org/

二、安裝步驟
(1)將軟體移到 /usr/local/ 目錄下
(2)執行解壓縮 # tar zxvf rdesktop-1.5.0.tar.gz
(3)更名一下 # mv rdesktop-1.5.0.tar.gz rdesktop
(4)確認是否安裝 openssl-devel 、 xorg-x11-devel 、 fontconfig-devel、freetype2-devel等套件
(5)進入 rdesktop的目錄
(6)執行 configure這支程式
(7)執行 make
(8)執行 make install
(9)應該可以執行 # rdesktop 你的XP作業系統的位置