查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
linlnnnn

 發表於 2012-2-5 09:58 AM

修正一些錯別字及加上附件HTML版本
有錯或建議, 請不吝指教, 謝謝!


paul690808

 發表於 2012-2-4 03:58 PM

很實用的說明,送上鮮花。


linlnnnn

 發表於 2012-2-4 03:10 AM

索引

CentOs6 架站流程

伺服器安裝
防火牆及安全防護設定
基本網站 LAMP(Linux+Apache+MySQL+PHP)架設
VsFTP 架設
維護及增加使用者帳號
後續加強部份
LINUX基本指令及相關資料
SAMBA(網路芳鄰檔案分享
簡易防火牆範例(參考鳥哥私房菜網站)
安裝Webmin
參考網站

CentOs6 架站流程



伺服器安裝

放入 CENTOS 光碟片, 並於 BIOS 設為光碟開機, 進入安裝程序 Install or upgrade an existing system



將語系選擇 Chinese(Traditional)(中文(正體)
ps. 我使用舊的滑鼠並用PS/2轉USB安裝時在點選語系時會當掉, 用鍵盤也不行動作, 換一支較新的USB滑鼠就可以...


輸入主機名稱: aaa.bbb.org.tw


安裝的模式請選擇『建立自訂分割格式』
硬碟分割硬碟為 953869(953GB), 分配如下, 其它沒用到的日後可再分配



/  : 30GB
/boot: 2GB
/usr : 30GB
/var : 300GB
/tmp : 30GB
swap : 16GB
/home: 500GB,並且使用 LVM 模式建置(可以動態調整大小, 若硬碟有多空間的話)

由於 /home 想要使用 LVM 的方式來建立檔案系統,因此點選『建立』後,選擇『LVM 實體卷冊』項目,按下建立,在出現的分割視窗中容量填寫 400GB, 接下來回到原本的分割畫面後,按下『建立』並選擇『LVM 卷冊群組』項目, 在出現的視窗中,卷冊群組名稱填寫『server』,並且在右下方的邏輯卷冊部分按下『新增』, 又會額外出現一個視窗,此時就填入 /home 的相關參數啦!注意,邏輯卷冊我們這裡設定為 myhome



選擇安裝類型,因為我們主機的角色為伺服器,因此選擇『Basic Server』項目




防火牆及安全防護設定

第一登入, 使用root及剛設的密碼進入


登入帳號設定, 先建立一個可以使用 SSH 服務登入系統的帳號, 防止駭客利用 root 帳號進入系統
#useradd sysadm
#passwd sysadm
#vim /etc/ssh/sshd_config 編輯SSH設定檔



AllowUsers sysadm
;在檔案最後面加上這一行,這樣就只有 sysadm 可以使用 ssh 連線了
;若要設定多人,就用空格隔開:AllowUsers sysadm sysadm2



重開 SSH 服務
#/etc/rc.d/init.d/sshd restart


先設定網路連接
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR="08:00:27:71:85:BD" ;就是網路卡位址,若只有一張網卡,可省略此項目
NM_CONTROLLED="yes" ;不要受到其他軟體的網路管理!
ONBOOT="yes" ;是否預設啟動此介面的意思
IPADDR=210.60.1.1 ;就是 IP 啊
GATEWAY=210.60.1.254 ;就是預設路由



重點是上面這幾個設定項目,底下的則可以省略的囉!
;DEVICE="eth0" <==網路卡代號,必須要 ifcfg-eth0 相對應, 內建一張卡時, 可省略
;BOOTPROTO=none <==取得IP的方式,其實關鍵字只有dhcp,手動可輸入none
;NETMASK=255.255.255.0 <==就是子網路遮罩
;NETWORK=192.168.0.0 <==就是該網段的第一個 IP,可省略
;BROADCAST=192.168.0.255 <==就是廣播位址囉,可省略
;MTU=1500 <==就是最大傳輸單元的設定值,若不更改則可省略



設定DNS
#vim /etc/resolv.vonf
nameserver 168.95.1.1
nameserver 139.175.10.20


主機名稱的修改
#vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=aaa.bbb.org.tw



#vim /etc/hosts
210.60.1.1 aaa.bbb.org.tw
;特別注意,這個檔案的原本內容不要刪除!只要新增額外的資料即可!



重啟網卡
#/etc/init.d/network restart
#ping aaa.bbb.org.tw ;看看有沒有錯誤
#dig www.google.com ;看看 DNS 是否順利運作
#reboot ;重新開機(建議重開一次, 不然會出現靈異現象)


關閉不要必要埠口服務
#vim /bin/closedaemon.sh 編輯批次檔
for daemon in nfs nfslock rpcgssd rpcidmapd rpcsvcgssd xinetd rpcbind
do
chkconfig $daemon off
/etc/init.d/$daemon stop
done
#sh /bin/closedaemon.sh


設定及開啟防火牆
#vim /etc/hosts.allow
sshd:ALL:allow ;限定那個IP可以使用SSH服務(更嚴僅), 因為剛已限定 root 不可由SSH登入了
vsftpd:ALL:allow ;因為要提供FTP服務



#vim /etc/hosts.deny ;黑名單(服務:IP範圍)
ALL:ALL



再參考下面附的簡易防火牆範例
#mkdir -p /usr/local/virus/iptables
#cd /usr/local/virus/iptables
#vim iptables.rule
#sh iptables.rule ;執行防火牆設定


先將 SELinux 調為 permissive 寬容模式
#vim /etc/selinux/config
SELINUX=permissive ;調整 enforcing|disabled|permissive
SELINUXTYPE=targeted ;目前僅有 targeted 與 mls


重開機
#reboot
#getenforce ;顯示 SELinux 的模式(enforcing | disabled | permissive),確認是否為 permissive
ps. 這個 SELinux 真是xxx...先改 permissive較好, 不然很多服務都被卡, 玩熟後再來慢慢校調它!




基本網站 LAMP(Linux+Apache+MySQL+PHP)架設

安裝 Apache(httpd)
#yum install httpd
#vim /etc/httpd/conf/httpd.conf 編輯設定檔(沒有必要項目,故省略)
#/etc/init.d/httpd start 啟動 httpd 服務
#/etc/init.d/httpd configtest 測試設定檔語法
#chkconfig httpd on 將它加入開機自動啟動服務內


若要使每個主機帳號都有自己的網頁, 可增加些設定
#vim /etc/httpd/conf/httpd.conf
將裏面設定修改如下
<IfModule mod_userdir.c>
#UserDir disable
UserDir www
<IfModule>

#mkdir /etc/skel/www
;日後 adduser 新增的帳號, 在家目錄都會自動增加www目錄(/home/新增帳號/www)
#echo "My Homepage" > /etc/skel/www/index.html
;往後新增帳號, 自動會在 /home/新增帳號/www 目錄內產生 index.html 首頁
#vim login.defs ;更改為 UMASK 066, 使日後產生家目錄權限為 711


安裝 PHP及 MYSQL
#yum install mysql mysql-server php php-mysql
#/etc/init.d/httpd restart 重動 httpd 服務
#vim /etc/php.ini ;編輯設定檔(沒有必要項目,故省略)
#/etc/init.d/mysqld start ;啟動 httpd 服務, 並建立預設資料庫
#chkconfig mysqld on ;將它加入開機自動啟動服務內
#mysqladmin -u root password 'mysql新密碼' ;設定mysql的密碼
#mysql -u root -p ;輸入密碼驗證是否用新密碼可進入, 打exit 離開

測試 mysql
#mysqladmin -u root password 'mysql新密碼' ;設定mysql的密碼
#mysql -u root -p ;輸入密碼驗證是否用新密碼可進入, 打exit 離開

測試 php
#vim /var/www/html/phpinfo.php ;寫一個測試php的網頁放入主站台內
<?php phpinfo (); ?>




VsFTP 架設

安裝vsftpd服務
#yum install vsftpd
#/etc/init.d/vsftpd start ;啟動 vsfptd 服務
#chkconfig vsftpd on ;加入開機後自動啟動


查看 vsftpd 是否有啟動
#netstat -tulnp| grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 11689/vsftpd


編輯vsftp設定檔
#vim /etc/vsftpd/vsftpd.conf

# 1. 與匿名者相關的資訊,在這個案例中將匿名登入取消:
anonymous_enable=NO
# 2. 與實體用戶相關的資訊:可寫入,且 umask 為 002 喔!
local_enable=YES
write_enable=YES
local_umask=002
userlist_enable=YES
userlist_deny=YES
#這個檔案必須存在!還好,預設有此檔案!
userlist_file=/etc/vsftpd/user_list
# 3. 與伺服器環境有關的設定
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
#這個檔案必須存在!需手動建立!
banner_file=/etc/vsftpd/welcome.txt

#/etc/init.d/vsftpd restart ;重啟vsfptdb服務



建立歡迎訊息
#vim /etc/vsftpd/welcome.txt
歡迎光臨本小站,本站提供 FTP 的相關服務!


實體帳號的 SELinux 議題
#getsebool -a | grep ftp
#setsebool -P ftp_home_dir=1


編輯未受到 chroot 限制的帳號名單
#vim /etc/vsftpd/chroot_list
sysadmin ;表示sysadmin可以在進入FTP時, 可自由切換路徑




維護及增加使用者帳號

如何上傳網頁到 /var/www/html
使用 link 的方式將 /var/www/html 資料夾連結到 /home/sysadm/www,這樣我們就可以用
sysadm 帳號上傳網頁了, 意謂者使用 sysadm, 上傳網頁資料到預設的家目錄下 /home/sysadm/www
, 就等於更新了 /var/www/html 的資料!



#chmod 755 /home/sysadm
#mkdir /home/sysadm/www
#chown sysadm.sysadm /home/sysadm/www
#cp -rpf /var/www/html/* /home/sysadm/www/
#mv /var/www/html /var/www/html.bak
#ln -s /home/sysadm/www /var/www/html



批次建使用者(這代表我們110期的學生帳號, 1到35號, 我用很笨的方法, 待加強...)
#!/bin/bash
for username in 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010
11011 11012 11013 11014 11015 11016 11017 11018 11019 11020
11021 11022 11023 11024 11025 11026 11027 11028 11029 11030
11031 11032 11033 11034 11035
do
useradd $username
echo "password" | passwd --stdin $username
done


修改同學所使用的檔案使用容量限制(每人1GB)
注意:quota 只能針對 partition 來設定,而不能針對某個資料夾來做控管,
通常我們將使用者建在 /home (未更改預設使用者家目錄的狀況下),所以針對
/home 來做 quota 控管是必須的,當然前提是作業系統在安裝的時候,有為 home
獨立分割一個磁區


啟動 quota
#vim /etc/fstab
將 /home ext4 defaults添加, 使其成為,ext4 defaults,usrquota,grpquota
#umount /home; mount -a
#mount | grep home
#quotacheck -avug 製作 quota 資料檔並啟動支援, 沒問題的話,在 /home 內會自動產生 aquota.user 檔案
#quotaon -avug 啟動 quota
#edquota -u 11001 #編輯 11001 同學的 quota, 當作樣板
#cd /home
#edquota -p 11001 *
#edquota -p 帳號1,帳號2 #初始化 quota
#repquota -au 列出使伺服器 #列出使伺服器 quota 的使用報表



後續加強部份(系統架設徐老師快要教到了)

1. 批次新增使用者帳號(最好連同 quota一次搞定與網站連結去除~)
2. 提供使用者自行透過網頁修改密碼
3. 自動排程備份系統重要檔案



LINUX基本指令及相關資料



更新與套件查詢
#yum search ;關鍵字 尋找套件
#yum list ;列出所有套件
#yum -y update ;線上更新所有套件
#rpm -ql samba | grep '/etc' ;查詢 samba 安裝相關套件


帳號權限管理
#vim /etc/shadow ;編輯帳號密碼表
#getfabl /home ;取得某目錄ACL權限表
#setfacl -m u:帳號:rxw /home ;修改ACL權限


SELinux
#getenforce ;顯示 SELinux 的模式(enforcing | disabled | permissive)
#vim /etc/selinux/config ;編輯 SELinux 模式
#ls -Z ;查看 SElinux權限表
#restorecon -Rv '/var/www/html/index.html ;重置檔案的 SELinux
#vim /var/lib/setroubleshoot/email_alert_recipients; 設置 SELinux錯誤時寄信件
#seinfo -b | grep mysq l ;查看某服務 SELinux 相關服務
#setsebool -P httpd_enable_homedir=1 ;設定 SELinux 的某設定值
#getsebool httpd_enable_homedir ;觀看 SELinux 的狀態


連接埠口 服務名稱與內容
20 FTP ;檔案傳輸協定所使用的主動資料傳輸埠口
21 FTP ;檔案傳輸協定的命令通道
22 SSH ;較為安全的遠端連線伺服器
23 Telne t;早期的遠端連線伺服器軟體
25 SMTP ;簡單郵件傳遞協定,用在作為 mail server 的埠口
53 DNS ;用在作為名稱解析的領域名稱伺服器
80 WWW ;這個重要吧!就是全球資訊網伺服器
110 POP ;郵件收信協定,辦公室用的收信軟體都是透過他
443 https ;有安全加密機制的WWW伺服器


ICMP代號及對應類別表
0 Echo Reply (代表一個回應信息)
3 Destination Unreachable (表示目的地不可到達)
4 Source Quench (當 router 的負載過高時,此類別碼可用來讓發送端停止發送訊息)
5 Redirect (用來重新導向路由路徑的資訊)
8 Echo Request (請求回應訊息)
11 Time Exceeded for a Datagram (當資料封包在某些路由傳送的現象中造成逾時狀態,此類別碼可告知來源該封包已被忽略的訊息)
12 Parameter Problem on a Datagram (當一個 ICMP 封包重複之前的錯誤時,會回覆來源主機關於參數錯誤的訊息)
13 Timestamp Request (要求對方送出時間訊息,用以計算路由時間的差異,以滿足同步性協定的要求)
14 Timestamp Reply (此訊息純粹是回應 Timestamp Request 用的)
15 Information Request (在 RARP 協定應用之前,此訊息是用來在開機時取得網路信息)
16 Information Reply (用以回應 Infromation Request 訊息)
17 Address Mask Request (這訊息是用來查詢子網路 mask 設定信息)
18 Address Mask Reply (回應子網路 mask 查詢訊息的)


好用套件
cgin ;中文輸入
pidgin ;即時通軟體 MSN,YAHOO... 可用 yum install pidgin 安裝



SAMBA(網路芳鄰檔案分享)



安裝SAMBA套件
#yum -y install samba
#cd /etc/samba
#cp smb.conf smb.conf.raw ;先備份
# vim smb.conf
[global]
workgroup = JAVAGROUP
server string = Samba Server Version %v
unix charset = utf8
display charset = utf8
dos charset = cp950
log file = /var/log/samba/log.%m
max log size = 50
security = share
[temp]
comment = Temporary file space
path = /tmp
writable = yes
browseable = yes
guest ok = yes

#testparm 測試 smb.conf ;是否正確
#/etc/init.d/smb start ;啟動smb服務
#/etc/init.d/nmb start ;啟動nmb服務
#chkconfig smb on ;將它加入開機自動啟動服務內
#chkconfig nmb on ;將它加入開機自動啟動服務內
#netstat -tlunp | grep mbd ;查看是否已提供服務
#smbclient -L //127.0.0.1 ;檢測 SAMBA 提供服務項目


印表機分享服務
#yum groupinstall "Print Server"
#vim /etc/cups/cupsd.conf ;增加如下, 其餘的保持預設值



Listen 0.0.0.0:631 ;ps.其它的 Listen 要刪掉或註解

<Location />
Order allow,deny
Allow Form 127.0.0.0/8
Allow From 192.168.0.0/24
</Location>
<Location /admin>
Encryption Required ;這項若開則會變為 https 連線
Order allow,deny
Allow Form 127.0.0.0/8
Allow From 192.168.0.0/24
</Location>

#/etc/init.d/cups start ;啟動 cups 服務
#chkconfig cups on ;將它加入開機自動啟動服務內
#netstat -tunlp | grep 'cups' ;查看是否已提供服務

SAMBA網路芳鄰服務, 可依使用者身份提供相對的服務, 但由於需調整WINDOWS系統登入的方式,
故在公開的環境(學校)較不適合, 但在一般公司企業, 倒是不錯的選擇! 所以可以暫時將它關閉
備而不用!

#/etc/init.d/smb stop ;關閉smb服務
#/etc/init.d/nmb stop ;關閉nmb服務
#chkconfig smb off ;將開機自動啟動服務關閉
#chkconfig nmb off ;將開機自動啟動服務關閉
#/etc/init.d/cups stop ;將印表機分享cups關閉
#chkconfig cups off ;將開機自動啟動服務關閉



簡易防火牆範例(參考鳥哥私房菜網站)



#!/bin/bash
#
# ========================================================
# 程式說明:
# 歡迎使用 iptables.rule 這個 script 來建立您的防火牆!
# 這支 script 還需要您的額外設定方可適合您的主機環境!
# 基本規則定義為『拒絕所有,開放特定』的模式!
#
# 強烈建議:
# 不了解 Linux 防火牆機制 iptables 的朋友使用這支 script
# 可能會不太瞭解每個指令列的意義,果真如此的話,
# 歡迎參考底下幾個網頁:
# http://www.study-area.org/linux/servers/linux_nat.htm
# http://linux.vbird.org/linux_server/0210network-secure.php
# http://linux.vbird.org/linux_server/0250simple_firewall.php
#
# 使用說明:
# 確定這個程式僅有 Linux 的斷行字元:
# dos2unix iptables.rule
# 請先將這個 scripts 的權限更改為可執行:
# chmod 755 iptables.rule
# 在將這個程式放置在 /usr/local/virus/iptables 目錄下:
# mkdir -p /usr/local/virus/iptables
# mv /完整的路徑/iptables.rule /usr/local/virus/iptables
# 執行測試:
# /usr/local/virus/iptables/iptables.rule
# iptables -L -n (這個動作在檢查防火牆規則)
# 將底下這一行加入 /etc/rc.d/rc.local 當中
# /usr/local/virus/iptables/iptables.rule
# 取消防火牆:
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
#
# ========================================================
# 版權宣告:
# 這支程式為 GPL 授權,任何人皆可使用,
# 然,若使用本 scripts 發生問題時,本人不負任何責任
# VBird <vbird@mail.vbird.idv.tw>
# ========================================================
#
# 歷史紀錄:
# 2002/08/20 VBird 首次釋出
# 2003/04/26 VBird 加入砍站軟體的相關執行檔案!
# 2003/08/25 VBird 修改 INPUT 的 Policy 成為 DROP
# 2006/09/13 VBird 重新修訂,加入一些核心參數 /proc/sys/net/ipv4/*
# 2006/09/15 VBird 加入關於 NAT 主機後端伺服器的轉址功能。
# 2006/09/30 VBird 加入每個設定項目的英文說明!!
# 2006/11/08 VBird 參考朋友們發現的 PPPoE 導致 MTU 的問題,增加一條規則!在 NAT 的部分。
# 2011/02/07 VBird 讓服務的來源端埠口變成 1024:65534 的設定
#
###########################################################################################

# 請先輸入您的相關參數,不要輸入錯誤了!
# English: Please input your networks parameters ( including your LAN NIC )
EXTIF="eth0" # 這個是可以連上 Public IP 的網路介面,也可能是 ppp0
# This is your NIC, connect to internet. Such as ppp0...
INIF="" # 內部 LAN 的連接介面;若無 LAN ,填寫成 INIF=""
# This is your LAN NIC. If you don't have a LAN, input INIF="" please.
INNET="" # 若有兩個以上的網域,可以用 NNET="192.168.1.0/24 192.168.100.0/24"
# 若無內部網域介面,請填寫成 INNET=""
# This is your LAN's Network. If you have to private network,
# input as INNET="192.168.1.0/24 192.168.100.0/24".
export EXTIF INIF INNET

# 個人化設定啊!請自行填寫您自己想要預先啟動的一些基礎資料。
# These settings is about yourself's paramters.
allowname='' # 允許登入本機的 hostname ,必須是 Internet 找的到的 hostname。
allowip=""
if [ "$allowname" != "" ]; then
for siteiptmp in `echo $allowname`
do
siteip=`/usr/bin/host $siteiptmp 168.95.1.1 | grep address|tail -n 1 | awk '{print $4}'`
testip=`echo $siteip | grep [^0-9.]`
if [ "$testip" == "" ]; then
allowip="$allowip $siteip"
fi
done
fi
export allowip

# 第一部份,針對本機的防火牆設定!#########################################################
# First, your server's firewall settings.
# 1. 先設定好核心的網路功能:
# 1. the kernel's firewall settings.
# 開啟 TCP Flooding 的 DoS 攻擊抵擋機制,但這個設定不適合 loading 已經很高的主機!!!
# TCP Flooding's setting. this setting is no good for high loading servers
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# 取消 ping 廣播的回應;
# unset reply of ping.
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# 開啟逆向路徑過濾,以符合 IP 封包與網路介面的設定;
#
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $i
done
# 開啟記錄有問題的封包
# record some problems packets.
for i in /proc/sys/net/ipv4/conf/*/log_martians; do
echo "1" > $i
done
# 取消來源路由,這個設定值是可以取消的;
for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo "0" > $i
done
# 取消重新宣告路徑的功能。
for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo "0" > $i
done
# 取消傳送重新宣告路徑的功能。
for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo "0" > $i
done

# 2. 清除規則、設定預設政策及開放 lo 與相關的設定值
# 2. clear rule, set the policy rule and allow lo connect.
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
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 RELATED,ESTABLISHED -j ACCEPT

# 3. 啟動額外的防火牆 script 模組
# 3. other shell scripts, written by VBird.
# 預設抵擋的主機
if [ -f /usr/local/virus/iptables/iptables.deny ]; then
sh /usr/local/virus/iptables/iptables.deny
fi
# 預設開放的主機
if [ -f /usr/local/virus/iptables/iptables.allow ]; then
sh /usr/local/virus/iptables/iptables.allow
fi
# 透過 WWW 砍站軟體分析的抵擋機制
if [ -f /usr/local/virus/httpd-err/iptables.http ]; then
sh /usr/local/virus/httpd-err/iptables.http
fi

# 4. 允許某些類型的 ICMP 封包進入
# 4. allow some types of ICMP
AICMP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICMP
do
iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
done

# 5. 允許某些服務的進入
iptables -A INPUT -p TCP -i $EXTIF --dport 21 --sport 1024:65534 -j ACCEPT # FTP
iptables -A INPUT -p TCP -i $EXTIF --dport 22 --sport 1024:65534 -j ACCEPT # SSH
# iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT # SMTP
iptables -A INPUT -p UDP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS
iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS
iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65534 -j ACCEPT # WWW
# iptables -A INPUT -p TCP -i $EXTIF --dport 110 --sport 1024:65534 -j ACCEPT # POP3
iptables -A INPUT -p TCP -i $EXTIF --dport 443 --sport 1024:65534 -j ACCEPT # HTTPS
#iptables -A INPUT -p TCP -i $EXTIF --dport 631 --sport 1024:65534 -j ACCEPT # CUPS
#iptables -A INPUT -p UDP -i $EXTIF --dport 631 --sport 1024:65534 -j ACCEPT # CUPS
iptables -A INPUT -p TCP -i $EXTIF --dport 10000 --sport 1024:65534 -j ACCEPT # WEBMIN
#iptables -A INPUT -p TCP -i $EXTIF -s 192.168.0.0/24 -m multiport --dport 139,445 -j ACCEPT # SAMBA
#iptables -A INPUT -p UDP -i $EXTIF -s 192.168.0.0/24 -m multiport --dport 137,138 -j ACCEPT # SAMBA




# 第二部份,針對後端主機的防火牆設定!#########################################################
# Second, the NAT settings.
# 1. 先載入一些有用的模組
# 1. loading some good modules of iptables.
modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack ip_conntrack_ftp ip_conntrack_irc"
for mod in $modules
do
testmod=`lsmod | grep "^${mod} " | awk '{print $1}'`
if [ "$testmod" == "" ]; then
modprobe $mod
fi
done

# 2. 清除 NAT table 的規則吧!
# 2. clean NAT table's rule
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

# 3. 開放成為路由器,且為 IP 分享器!
# 3. NAT server's settings
if [ "$INIF" != "" ]; then
iptables -A INPUT -i $INIF -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward
if [ "$INNET" != "" ]; then
for innet in $INNET
do
iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
done
fi
fi
# 如果你的 MSN 一直無法連線,或者是某些網站 OK 某些網站不 OK,可能是 MTU 的問題,
# 那你可以將底下這一行給他取消註解來啟動 MTU 限制範圍
# iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

# 4. NAT 主機後端的 LAN 內對外之伺服器設定
# iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 -j DNAT --to-destination 192.168.1.210:80 # WWW

# 5. 特殊的功能,包括 Windows 遠端桌面所產生的規則,假設桌面主機為 1.2.3.4,你區網內的主機為 192.168.1.100
iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --dport 6000 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --sport 3389 -j DNAT --to-destination 192.168.1.100

# 最終將這些功能儲存下來吧!
/etc/init.d/iptables save



安裝Webmin



安裝Webmin(我使用 yum 有時會失敗, 重灌很多資伺服器..., 故提供 RPM, 任選其中即可)


YUM方法
# vim /etc/yum.repos.d/webmin.repo 編輯此檔, 內容如下
[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
# yum install webmin


RPM方法
#cd /tmp
#wget http://internode.dl.sourceforge. ... -1.430-1.noarch.rpm
#rpm -ivh webmin-1.430-1.noarch.rpm


預設安裝完成就會 Listen 在主機的 Port 10000 上面,可以透過 http://localhost:10000 使用 root 的帳號密碼登入



參考網站



鳥哥的 Linux 私房菜 /http://linux.vbird.org/

學生用伺服器建置流程(CentOS 5 版)http://apt.nc.hcc.edu.tw/web/stu ... _server_centos.html


-------------------
若有線上朋友對我的文章有好的建議, 請一起來討論, 幫我改善些語法或流程, 謝謝!

[linlnnnn 在  2012-2-5 09:56 AM 作了最後編輯]





所在時區為 GMT+8, 現在時間是 2024-11-22 01:30 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.025866 second(s), 6 queries , Qzip disabled