• 沒有找到結果。

因應個資法學務系統調整規畫建議

N/A
N/A
Protected

Academic year: 2022

Share "因應個資法學務系統調整規畫建議"

Copied!
15
0
0

加載中.... (立即查看全文)

全文

(1)

因應個資法學務系統調整規畫建議

臺中市教網中心 黃國順 2012/10/5

一、分割校內網路達到實體網路區隔 二、學務系統的調整

三、建置學務系統備份機制 四、建置 LOG 系統

一、分割校內網路達到實體網路區隔

為有效控管存取機敏(學務) 系統,在實體網路上一定要進行區隔,也就是說 當學校同仁存取學務系統時都必須經過防火牆過濾與記錄。建議校內如下圖區分 成 5 個網段,校內各網段若區分愈細當然控管就可以更加精細,但管理及設定就 愈複雜。

(2)

說明及規畫如下:

1. 各區(ZONE) 說明:

區名 說明 IP RANG 安全

等級 WAN/Internet 位於外部,為各類攻擊入侵的主要

來源。

0.0.0.0/0 0

DMZ 提供對外(Internet) 服務的伺 服器置於本網段,例如 WWW DNS。

DMZ 網段為外部使用者可直接存取 的區域,屬於隨時可能被入侵的區 域,因此不可把存放機敏資料的伺 服器置於此區。

163.17.x.0/27 30

Campus 校內一般使用者所在區。 163.17.x.128/25 50 Intranet 提供校內服務伺服器置於此區,例

如學務系統。

163.17.x.32/27 或 192.168.a.0/24

80

DB/Backup 備份伺服器置於此區,原則上不允 許其他區電腦直接存取本區伺服 器。

163.17.x.64/27 或 192.168.b.0/24

100

※若防火牆只能設定 4 個區域(例如 FG-400 不啟用 root 功能時),則請將 DB/Backup 與 Intranet 合併。

2. 各區安全等級為 DB/Backup> Intranet > Campus >DMZ>Internet 。安全等 級高的區域預設可以存取等級較低的區域。安全等級較低的區域預設無法存 取等級高的區域,因此要存取安全等級較高的區域時,則需建立額外開放之 防火牆規則。

3. 防火牆上的規則建議以白名單方式表列,並建立下表記錄且與防火牆同步:

來源介面 目的介面 來源 IP 目的 IP 服務 來源

PORT

目的 PORT 備註

WAN DMZ any 163.17.x.1 TCP/UDP any 53 DNS

WAN DMZ any 163.17.x.2 TCP any 80 WWW

Campus Intranet 163.17.x.128/25 163.17.x.33 TCP any 80,443 SFS

DMZ WAN 163.17.x.0/27 any any any any

Campus WAN 163.17.x.128/25 any any any any

Campus DMZ 163.17.x.128/25 163.17.x.0/27 any any any

Intranet WAN 163.17.x.32/27 Any any any any 選用

Intranet DMZ 163.17.x.32/27 163.17.x.0/27 any any any Intranet Campus 163.17.x.32/27 163.17.x.128/25 any any any Backup DMZ 192.168.b.0/24 163.17.x.0/27 any any any Backup Intranet 192.168.b.0/24 163.17.x.32/27 any any any

(3)

※上面的表格的 IP 資料請按照校內規畫自行修改 4.

4.

4.

4. 建議學務系統僅限校內存取建議學務系統僅限校內存取建議學務系統僅限校內存取建議學務系統僅限校內存取,,,以避免因系統漏洞或設定問題產生遭入侵,以避免因系統漏洞或設定問題產生遭入侵以避免因系統漏洞或設定問題產生遭入侵以避免因系統漏洞或設定問題產生遭入侵而致而致而致而致 資料外洩的問題

資料外洩的問題 資料外洩的問題 資料外洩的問題。。。 。

二、學務系統的調整

因目前使用的學務系統(SFS3) 是在個資法提出前已開發出來,因此要使目前 的學務系統完全符合個資法的要求是有困難的。我們只能追求一定程度的保護學 務系統,以避免有心人士透過學務系統取得學生的個人資料。建議要進行下列事 項:

1. 定時進行網路校時

crontab -e

#加入下面這一行

10 0 * * * /usr/sbin/ntpdate time.stdtime.gov.tw; /usr/sbin/hwclock -w

2. 定時更新作業系統(OS)

crontab -e

加入下面這一行

15 0 * * * /usr/bin/yum -y update; /usr/bin/yum clean packages

3. 限制學務系統主機不能以 root 身分 ssh 登入 修改/etc/ssh/sshd_config 檔

vi /etc/ssh/sshd_config

#修改 PermitRootLogin PermitRootLogin no

重新啟動 sshd

service sshd restart

4. 定時更新學務系統

建立/root/upsfs.php 內容如下

#!/usr/bin/php

<?php //1.1 版

echo "#開始更新 sfs3...\n";

//sfs3 安裝目錄(請依需要修改)

$SFS_INSTALL_PATH="/var/www/html/sfs3";

//sfs3 解壓暫存目錄(請依需要修改)

$SFS_TEMP_DIR="/tmp/sfs3_stable";

(4)

//sfs3 下載網址(勿修改)

$SFS_TAR_URL="http://sfscvs.tcc.edu.tw/";

//記錄自動排程執行時間

$fp=fopen($SFS_INSTALL_PATH."/data/system/cron","w");

fputs($fp,date("Y-m-d H:i:s"));

fclose($fp);

//取得由網頁設定的變數值

$v_arr=array();

$v_arr['SCHEDULE']="";

$v_arr['TEMPORARY']="";

if (file_exists($SFS_INSTALL_PATH."/data/system/update")) {

$fp=fopen($SFS_INSTALL_PATH."/data/system/update","r");

while(!feof($fp)) {

$temp_arr=array();

$temp_arr=explode("=",fgets($fp,1024));

if (count($temp_arr)==2)

$v_arr[$temp_arr[0]]=sprintf("%02d",intval($temp_arr[1]));

}

fclose($fp);

}

//如果沒有設定定期更新時間, 則定期更新時間設定為早上六點 if ($v_arr['SCHEDULE']=="") $v_arr['SCHEDULE']="06";

//取得現在時間的小時別

$hour=date("H");

//若符合更新時間則進行更新

if ($v_arr['SCHEDULE']==$hour || $v_arr['TEMPORARY']==$hour || $argv[1]=="now") {

//判斷 PHP 版本別

if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) )

$SFS_TAR_FILE="sfs_stable.tar.gz";

else

$SFS_TAR_FILE="sfs_stable5.tar.gz";

(5)

//判斷暫存目錄是否已存在 if (is_dir($SFS_TEMP_DIR)) {

exec("rm -rf ".$SFS_TEMP_DIR);

}

//判斷舊有程式碼是否已存在

if (file_exists("/tmp/".$SFS_TAR_FILE)) { exec("rm -f /tmp/".$SFS_TAR_FILE);

}

//判斷 sfs3 是否安裝

if (!is_dir($SFS_INSTALL_PATH)) {

echo "Oh! Error! .... Directory *** sfs3 *** not exists!\n";

echo "Please install sfs3 first!\n";

exit;

}

//下載、解壓與複製主程式 echo "#下載主程式...\n";

exec("wget -q ".$SFS_TAR_URL.$SFS_TAR_FILE." --directory-prefix=/tmp");

echo "#主程式解壓縮...\n";

exec("tar zxf /tmp/".$SFS_TAR_FILE." -C /tmp");

echo "#複製主程式...\n";

exec("cp -a ".$SFS_TEMP_DIR."/* ".$SFS_INSTALL_PATH);

//顯示更新版本號

include $SFS_INSTALL_PATH."/sfs-release.php";

echo "#更新至 ".$SFS_BUILD_DATE."\n";

//回寫設定檔

$fp=fopen($SFS_INSTALL_PATH."/data/system/update","w");

fputs($fp,"SCHEDULE=".$v_arr['SCHEDULE']);

fclose($fp);

}

?>

加入執行權限

chmod +x /root/upsfs.php 設定定時更新

(6)

crontab -e

#加入下面這一行

30 0 * * * /root/upsfs.php

按照 crontab 中的更新時間在學務系統中設定「常態更新」

5. 確實按照每個人的職務在「模組權限管理」 中設定 確實設定教師的職稱及處室

以「職稱」來授權,不以「教師姓名」來授權。

6. 利用防火牆來限制連線來源為本校網段

若學務系統已置於 INTRANET 網段可在實體防火牆中建立規則,只允許 Campus 網段存取。

(7)

利用本機 iptalbes 防火牆限制連線來源

修改 /etc/sysconfig/iptables 內開放 80 port 規則

-A RH-Firewall-1-INPUT -

-- -s 163.17.x.x/x s 163.17.x.x/x s 163.17.x.x/x s 163.17.x.x/x -m state --state NEW -m tcp

-p tcp --dport 80 -j ACCEPT

7. 登入學務系統限制:

防護連續登入錯誤的使用

使用「登入圖片檢查」

※ 若看不到圖片時,不要啟用本項功能,以免造成困擾。

※ 無法看到圖片時

刪除「/sfs3/data/system/chk_login_img」

rm /sfs3/data/system/chk_login_img

利用 yum 安裝 php-gd 套件,並重新啟動 apache yum install php-gd

service httpd restart

(8)

8. 若有安裝 phpMyAdmin 之類的管理程式,建議使用時最好不要使用預設的路 徑名稱,並且使用完了以後就移除,以避免不必要的額外漏洞。

三、建置學務系統自動備份機制 我的規畫如下:

1. 第一備份:學務系統的自動備份 建立備份的儲放目錄

mkdir -p /home/backup

建立備份程序檔

vi /home/backup/backup.sh

#!/bin/sh

tdate=`date '+%Y%m%d%H%M'`;

echo "mysqldump -uroot --password=xxx sfs3 > /home/backup/sfs3_db_"$tdate".sql" | sh;

echo "tar czvf /home/backup/sfs3_msql_"$tdate".tgz /var/lib/mysql/" | sh;

echo "tar czvf /home/backup/sfs3_prog_"$tdate".tgz /var/www/html/sfs3/" | sh;

echo "tar czvf /home/backup/sfs3_data_"$tdate".tgz /var/www/html/sfs3/data/" | sh;

設成定時執行

[root@sfs backup]# crontab -e 0 2 * * * /home/backup/backup.sh

2. 第二備份:這裡使用 rsync 技術 Rsync server 端

安裝 rsync xinetd

yum install rsync xinetd 設定 rsync 開機啟用

vi /etc/xinetd.d/rsync

(9)

將 disable = yes 改成 disable = no

設定 /etc/rsyncd.conf vi /etc/rsyncd.conf

[sfs]

path = /home/sfsbackup auth users = sfs3 uid = root

gid = root

secrets file = /etc/rsyncd.secrets read only = no

#auth users 不需要是系統有的使用者帳號

建立備份目錄

mkdir -p /home/sfsbackup

建立/etc/rsyncd.secrets 密碼檔 vi /etc/rsyncd.secrets

#內容為 帳號:密碼 sfs3:xxxxx

設定 600 權限屬性

chmod 600 /etc/rsyncd.secrets

重新啟動 xinetd

service xinetd restart

若有防火牆請開啟 tcp 873 port

Rsync client (SFS3) 安裝 rsync

yum install rsync

建立/root/rsyncd.secrets 密碼檔 vi /root/rsyncd.secrets

(10)

#檔案內容 密碼即可 XXXXXX

設定 600 權限

chmod 600 /root/rsyncd.secrets 測試

/usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /home/backup/

sfs3@163.17.x.x::sfs

最後將上面指令加在/home/backup/backup.sh 最後一行即可

3. 使用教網中心的學務系統備份

本項功能需以具備網管權限之本市教育局公務帳號才能設定。登入後至 8-1-8 項中設定。

遠端備份設定

備份說明

(11)

資料庫設定

查詢備份結果

四、建置 syslog 系統

為了有效記錄使用者使用學務系統的過程,我們要從使用者端開始一直到學務系 統為止,儘可能的留下具有參考價值的各式 log,以備未來查詢使用。

syslog 是一個普遍使用於網路設備記錄 log 的服務,這裡採用本市教網中心張 本和老師自行撰寫的 syslog 程式(若採用現成的 syslog 或 syslog-ng 套件軟 體亦可)。安裝可參考網站上的說明 http://note.tc.edu.tw

1. 安裝 mysql-server

yum install mysql-server service mysqld start

mysqladmin -u root password '密碼'

(12)

2. 在 mysql-server 中建立下列項目

create database logdb;

CREATE TABLE IF NOT EXISTS `manager` (

`mID` mediumint(9) NOT NULL AUTO_INCREMENT, `host` varchar(32) COLLATE utf8_bin NOT NULL, `mname` varchar(12) COLLATE utf8_bin NOT NULL, `email` varchar(48) COLLATE utf8_bin NOT NULL, `createdDT` datetime NOT NULL,

PRIMARY KEY (`mID`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=4 ; CREATE TABLE IF NOT EXISTS `perllogs` (

`seq` int(10) unsigned NOT NULL AUTO_INCREMENT, `host` varchar(32) COLLATE utf8_bin DEFAULT NULL, `facility` varchar(10) COLLATE utf8_bin DEFAULT NULL, `priority` varchar(10) COLLATE utf8_bin DEFAULT NULL, `level` varchar(10) COLLATE utf8_bin DEFAULT NULL, `tag` varchar(4) COLLATE utf8_bin DEFAULT NULL, `date` date DEFAULT NULL,

`time` time DEFAULT NULL,

`program` varchar(24) COLLATE utf8_bin DEFAULT NULL, `msg` text COLLATE utf8_bin,

`createdDT` datetime NOT NULL, PRIMARY KEY (`seq`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

3. 在 mysql-server 中建立 offline 帳號並把資料庫 logdb 權限指定給這個帳 號。

4. 建立及編修 logsrvmain.pl

請自行至

http://note.tc.edu.tw/302.html

下載程式及修改相關項目。

5. logsrvmain.pl 啟動及停止 ./logsrvmain.pl

※若無法啟動,請檢查是否已安裝所需的 perl 相關套件

若確認運作沒問題,則可將程式執行於背景 ./logsrvmain.pl &

要結束程式則需要先下達 ps -aux,再將該 process kill 掉

(13)

另外可加入於 rc.local 檔案中以便開機時啟動 logserver

6. 設定具參考價值的記錄傳送至我們的 syslog server

網路交換器 log 這裡以 Dlink 為例

設定好後馬上就可以在 syslog server 上看到網路交換器傳進來的 log,可惜的是這台網路交換器並不會把使用者端網卡 MAC 及 IP 相關 訊息送出來。

查看 syslog 收到的訊息

防火牆 log

這裡以 FG-400 為例,若學校防火牆為其他廠牌,請自行修改應用。

設定 syslog IP

(14)

在防火牆規則中設定「紀錄合法流量」

另外 FG400 系統時間也請確認是否為正確時間

查看 syslog 收到的訊息

DHCP Server

若學校採用 dhcpd 來發送 IP 給使用者端,我們便需加以記錄使用者 MAC 及 IP 對應的的資訊。

vi /etc/dhcpd.conf

#加入下面的設定

log-facility local5;

(15)

vi /etc/syslog.conf

#將 local.* log 轉送到前面建立的 syslog server IP local5.* @163.17.x.x

學務系統 Apache log

Apache 可藉由本機 syslog 送至我們的 syslog server,設定方法如下 修改/etc/httpd/conf/httpd.conf

vi /etc/httpd/conf/httpd.conf

#ErrorLog logs/error_log ErrorLog syslog:local1

CustomLog "|/usr/bin/logger -t apache -i -p local2.notice" combined

修改 /etc/syslog.conf 指定遠端 syslog server IP vi /etc/syslog.conf

#將 local.* log 轉送到前面建立的 syslog server IP local1.* @163.17.x.x

local2.* @163.17.x.x

修改好後要重新啟動 syslog 及 apache service syslog stop

service syslog start service httpd restart

查看 syslog 接收情形

7. 本市教網中心張本和老師自行撰寫的 syslog 程式可依需求加入 syslog 過濾 條件及警訊 e-mail,有興趣的老師可參考網站上的說明

(http://note.tc.edu.tw)自行擴充功能。

參考文獻

相關文件

路徑:學校承辦人專區 &gt; 教育優先區專區 &gt;

操作流程: 系統選單-&gt;財產管理系統-&gt;點選報廢申請單-&gt;填寫報廢申請單資料(主 單、明細)-&gt;點選確認

教育局網頁 www.edb.gov.hk &gt; 課程發展 &gt; 課程範疇 &gt; 全方位學習. 與津貼有關的重要資訊 會通過聯遞系統 Communication and Delivery

(網站主頁 &gt; 課程發展 &gt; 學習領域 &gt; 藝術教育 &gt; 教學資源 &gt;視覺藝術

第十條 香港特別行政區應當通 過學校、社會團體、媒體、網絡 等開展國家安全教育,提高香港 特別行政區居民的國家安全意識

(四)訓練場地各班次教室之環境條件、設備數量等級、建築

主頁 &gt;課程發展 &gt;學習領域

主頁 &gt; 課程發展 &gt; 學習領域 &gt; 中國語文教育 &gt; 中國語文教育- 教學 資源 &gt; 中國語文(中學)-教學資源