Debian 5.0 64bit 設定筆記
安裝
裝圖形介面及基本套件就可以。先不裝 LAMP 套件。
進入桌面,打開終端機,裝 ssh: (http://dominic16y.world.edoors.com/CwETYfuucGqw)
apt-get install -y ssh
改ssh 的 port 位
vim /etc/ssh/sshd_config
PermitRootLogin=yes
修改 ip:
vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 163.xx.xx.x
netmask 255.255.255.0
gateway 163.xx.xx.254
auto eth0
# ipv6
iface eth0 inet6 static
address 2001:288:xxxx::x
netmask 64
gateway 2001:288:xxxx::fffe
/etc/init.d/networking restart (重啟網卡)
su (切換為 root)
ifconfig (看網卡設定)
ping xxx.xxx.xxx.1 (PING IPV4 DNS)
ping6 2001:xxx:xxxx::1 (PING IPV6 DNS)
ping6 ipv6.google.com (成功)
ping www.google.com (成功)
開始用遠端 ssh 連入管理。
vi /etc/resolv.conf
domain XXX.XX.edu.tw
search private
nameserver 163.XX.XX.1
nameserver 8.8.8.8
伺服器名稱 (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
即可。