Debian 5.0 64bit 設定筆記

安裝

伺服器名稱 (http://www.debian.org/doc/manuals/debian-reference/ch-gateway.zh-tw.html):

名稱儲存在 /etc/hostname。這個檔案應該只包含系統主機名稱,而不是一個FQDN。

執行 hostname (不帶任何參數)來顯示目前的主機名稱。

主機名稱和 DNS (proxy, cache, ...), 參閱 主機名稱, 第 10.3.1 節 和 網域名稱服務 (DNS), 第 10.4 節.

/etc/host.conf

/etc/hostname

/etc/hosts

/etc/hosts.allow

/etc/hosts.deny

/etc/resolv.conf

/etc/bind/named.conf (編輯)

/etc/bind/db.lan (加入區網內的主機)

/etc/bind/db.192.168.0 (加入區網的反查對應)

IPTABLES:

14.iptables 設定

我寫了個script

vim /home/backup/iptables.sh

-------------------iptables.sh 內容----------------------------

#!/bin/sh

#我的防火牆設定

iptables -P INPUT DROP

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#允許 ping 回應

#iptables -A INPUT -i ! lo -s 127.0.0.1/8 -j DROP

#封包若不是從 lo 這張網卡進入,但來源是 127.0.0.1/8 的ip,則丟棄此封包

#iptables -A OUPUT -i ! lo -d 127.0.0.1/8 -j DROP

#封包若不是輸出至 lo 這張網卡,但目地是 127.0.0.1/8 的ip,則丟棄此封包

#以上2行是避免入侵者假造 127.0.0.1/8 網段的封包以嘗試突破防火牆

iptables -A INPUT -i lo -j ACCEPT

# 127.0.0.1 本地端回應全接受

iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#針對 eth0 這張網卡,設定我主動發出去的回應都予放行

#iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#針對 ppp0 (撥號連線)這張網卡,設定我主動發出去的回應都予放行

#iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT

# 192.168.0.1~255 這個網段全放行

iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT

#↑此為設定80prot到84port開放

iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT

#↑此為設定 ssh port 打洞

#iptables -A INPUT -i ppp0 -p tcp --dport 38 -j ACCEPT

#iptables -A INPUT -i ppp0 -p tcp --dport 3100:3300 -j ACCEPT

# ↑此為設定ftp:38 和被動式連線的port位範圍

# ↓隱形掃瞄攻擊防範

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP

iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j DROP

iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j DROP

# ↓因為有些 Hacker/Cracker 會利用 IPv6 的漏洞攻擊主機,所以封閉幾個重要的 PORT

/sbin/ip6tables -F

/sbin/ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT

/sbin/ip6tables -A INPUT -p tcp --dport 21:23 -j DROP

/sbin/ip6tables -A INPUT -p tcp --dport 139 -j DROP

/sbin/ip6tables -A INPUT -p tcp --dport 445 -j DROP

/sbin/ip6tables -A INPUT -p udp --dport 137:138 -j DROP

-------------------iptables.sh 內容----------------------------

ADSL連線設定請見後面

改可執行權限

chmod 755 /home/backup/iptables.sh

設定開機啟動防火牆,請下指令

ln -s /home/backup/iptables.sh /etc/init.d/iptables.sh

update-rc.d iptables.sh defaults 50

↓此行指令是設定 run level,有下上面那行指令即可...我有點忘了,不太確定,都下也沒關係

update-rc.d iptables.sh start 50 2 3 4 .

要移除在開機時啟動防火牆請下此指令

update-rc.d -f iptables.sh remove

我最後的設定 iptables.sh:

#!/bin/sh

#我的防火牆設定

iptables -F

iptables -X

iptables -Z

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

#制訂各項規則

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp -m icmp --icmp-type echo-reply -j REJECT --reject-with icmp-host-prohibited

iptables -A INPUT -p icmp -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 163.26.50.0/24 --dport 3052 -j ACCEPT

iptables -A INPUT -m state --state NEW -m udp -p udp -s 163.26.50.0/24 --dport 3052 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6547 -j ACCEPT

iptables -A INPUT -m state --state NEW -m udp -p udp --dport 6547 -j ACCEPT

iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

#ip6tables

#

/sbin/ip6tables -F

/sbin/ip6tables -X

/sbin/ip6tables -Z

/sbin/ip6tables -P INPUT DROP

/sbin/ip6tables -P OUTPUT ACCEPT

/sbin/ip6tables -P FORWARD ACCEPT

/sbin/ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/ip6tables -A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type echo-reply -j REJECT --reject-with icmp6-adm-prohibited

/sbin/ip6tables -A INPUT -p ipv6-icmp -j ACCEPT

/sbin/ip6tables -A INPUT -i lo -j ACCEPT

#/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp -s 2001:288:728e::/64 --dport 3052 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m udp -p udp -s 2001:288:728e::/64 --dport 3052 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6547 -j ACCEPT

/sbin/ip6tables -A INPUT -m state --state NEW -m udp -p udp --dport 6547 -j ACCEPT

/sbin/ip6tables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited

/sbin/ip6tables -A FORWARD -j REJECT --reject-with icmp6-adm-prohibited

重訂規則要再執行它:

./iptables.sh

寫入自動開機流程中,自動執行 iptables 規則設定:

# update-rc.d iptables.sh defaults 50

update-rc.d: warning: /etc/init.d/iptables.sh missing LSB information

update-rc.d: see <http://wiki.debian.org/LSBInitScripts>

 Adding system startup for /etc/init.d/iptables.sh ...

   /etc/rc0.d/K50iptables.sh -> ../init.d/iptables.sh

   /etc/rc1.d/K50iptables.sh -> ../init.d/iptables.sh

   /etc/rc6.d/K50iptables.sh -> ../init.d/iptables.sh

   /etc/rc2.d/S50iptables.sh -> ../init.d/iptables.sh

   /etc/rc3.d/S50iptables.sh -> ../init.d/iptables.sh

   /etc/rc4.d/S50iptables.sh -> ../init.d/iptables.sh

   /etc/rc5.d/S50iptables.sh -> ../init.d/iptables.sh

從開機自動執行中移除:

update-rc.d -f iptables.sh remove

重新開機

shutdown -r now

安裝 XAMPP:

參考: http://www.apachefriends.org/zh_tw/xampp-linux.html

(請注意下面的 1.8.3-1 的版本為64位元,依系統要求下載適當的位元版本及最新版 xampp)

wget http://www.apachefriends.org/download.php?xampp-linux-x64-1.8.3-1-installer.run

su

chmod 755 xampp-linux-x64-1.8.3-1-installer.run

./xampp-linux-x64-1.8.3-1-installer.run

這個指令會覆蓋掉舊有的XAMPP版本。XAMPP 安裝在 /opt/lampp 目錄下。

啟動 xampp:

/opt/lampp/lampp start

以下為參數:

start 啟動XAMPP。

stop 停止XAMPP。

restart 重新啟動XAMPP。

startapache 單獨啟動Apache。

startssl 以SSL模式啟動Apache。這個指令將會使SSL的模式一直持續下去, 例如:如果你以SSL的模式啟動過XAMPP,那麼每一次都將以SSL的模式啟動Apache。

startmysql 單獨啟動MySQL資料庫

startftp startftp 啟動ProFTPD伺服器。你可以使用FTP來上傳檔案到網頁伺服器中(帳號"nobody",密碼"lampp")。 這個參數將會使ProFTPD每次都自動啟動,因此未來每次你啟動XAMPP,FTP的功能也會跟著啟動。

stopapache 停止Apache。

stopssl 停止以SSL模式執行的Apache。這個指令會持續的將SSL功能停用, 因此如果你重新啟動XAMPP,SSL功能仍然是處於停止狀態的。

stopmysql 停止MySQL資料庫。

stopftp 停止ProFTPD伺服器。這個命令會使ProFTPD持續停用,因此如果你重新啟動XAMPP,FTP功能仍然是處於停止狀態的。

security 啟動檢查系統安全的小程式。

相關目錄:

/opt/lampp/bin/ XAMPP指令的家目錄。例如 /opt/lampp/bin/mysql 用來執行MySQL。

/opt/lampp/htdocs/ Apache 文件根目錄。

/opt/lampp/etc/httpd.conf Apache設定檔案。

/opt/lampp/etc/my.cnf MySQL設定檔案。

/opt/lampp/etc/php.ini PHP設定檔案。

/opt/lampp/etc/proftpd.conf ProFTPD設定檔案。(從 0.9.5版後才有)

/opt/lampp/phpmyadmin/config.inc.php phpMyAdmin設定檔案。

XAMPP 安全加強(必作):

1.關閉WEBDAV功能

移除 xampp\apache\conf\extra\httpd-dav.conf 檔案

移除 xampp\webdav 這個資料夾及檔案

2.要修正大部份的系統安全弱點,只要執行下面的指令:

/opt/lampp/lampp startmysql

/opt/lampp/lampp restart

/opt/lampp/lampp security

它會開始一些系統安全檢查,同時使XAMPP的安裝環境變得更安全些。

它會跟你作互動式的設定,如下:

mysql、phpmyadmin不能全部網路均可取用。

xampp 頁面為使用者名稱 xampp,密碼要自訂。

mysql使用者pma,密碼自訂。

mysql使用者root,密碼自訂。

ftp使用者daemon,密碼自訂。

參考 windows版本安全加強作法:

XAMPP剛裝好的狀態如下:

1. MySQL 的系統管理者 (root) 預設沒有密碼。

2.可以透過任何網路來存取 MySQL。

3.可以透過任何網路來存取 PhpMyAdmin

4.可以透過任何網路來存取所有範例。

5. Mercury 、WebDAV 和 FileZIlla的使用者都是已知的。

 

如果學校有使用XAMPP平台架設網站,建議做以下列修正

1.關閉WEBDAV功能

  移除 xampp\apache\conf\extra\httpd-dav.conf 檔案

  移除 xampp\webdav 這個資料夾及檔案 

  如果需使用WEBDAV功能,請使用下列指令修正WEBDAV存取密碼

  移除 \xampp\security\webdav.htpasswd 

  利用 \xampp\apache\bin\htdigest.exe重新建立使用者密碼

  指令參考: htdigest.exe -c "C:\xampp\security\webdav.htpasswd "視窗提示名稱" "使用者名稱"

 

2.設定MySQL的root密碼

  執行http://127.0.0.1/security/xamppsecurity.php來設定之

  phpMyAdmin 認證建議設定「http」

  「Safe plain password in text file? 」勿勾選

 

3.調整FTP安全性設定

如果有使用XAMPP提供的FTP Server功能,請從XAMPP控制台FTP的Admin去變更預設密碼。

4.移除xampp目錄內不必要的檔案

##建議可先將目錄的檔案移動至別處,有問題時還可以復原。

 

xampp\cgi-bin 目錄中的所有檔案(該目錄printenv.pl檔案提供伺服器各項資訊)

xampp\htdocs\ 下的所有檔案目錄

 

5.修正apache設定

讓apache不顯版本資訊

編輯 \xampp\apache\conf\extra\httpd-default.conf檔案

ServerTokens Full更改為 ServerTokens Prod

ServerSignature On更改為ServerSignature Off

開機自動執行:

image source: http://alan.edward.es/posts/installing-and-configuring-xampp-for-linux-lampp/

su

vim /etc/init.d/rc.local

After a line: #END INIT INFO, add a line:

/opt/lampp/lampp start

save & quit

shutdown -r now

看看會不會自己執行。

移除xampp:

rm -rf /opt/lampp

即可。