2011年11月24日 星期四

Job Hunting

前陣子開始在找工作

很感謝老師學長的幫忙.有很多很多機會

很快的就把事情定了下來

目前就是已經確定了接下來的公司

也希望現在選擇的路是正確的

2011年10月27日 星期四

Linux 70% Lab – OpenWebMail Sending via IPv6

openwebmail 目前尚未支援使用IPv6 SMTP

經過guru老師的提點後,研究出用下面的方法便可以達成此需求。


建置環境:

Server:Suse Linux 11.1

Client:任一作業系統


Server:
下載 NET-INET6Glue-0.5.tar.gz
  • tar –zxvf NET-INET6Glue-0.5.tar.gz –C /usr/lib/perl5/5.10.0/i586-linux-thread-multi
  • cd /usr/lib/perl5/5.10.0/i586-linux-thread-multi/Net-INET6Glue-0.5
  • perl Makefile.PL
  • make
  • make test
  • make install
  • vi /srv/www/cgi-bin/openwebmail/openwebmail-send.pl
在23行下新增下列內容:
use IO::Socket::INET;
use Net::INET6Glue::INET_is_INET6;
my $sock = IO::Socket::INET->new('[server IPv6 address]:25' => 'ipv4address:smtp(25)');
  • service postfix restart
  • service cyrus restart
  • service saslauthd restart
  • /srv/www/cgi-bin/openwebmail/openwebmail-tools.pl
Client:
  • 開啟OpenWebMail 寄信測試

2011年10月16日 星期日

Linux 70% Lab – DHCP with IPv6

先設定一般DHCP功能(不固定發放某IP給特定CLIENT)

Server1:
  • yast -i dhcpv6
  • vi /etc/sysconfig/network/dhcp6s
做以下修改:
2:DHCP6SIF="eth0"
  • vi /etc/dhcp6s.conf
新增以下內容:
interface eth0 {
        server-preference 255;
        renew-time 60;
        rebind-time 90;
        prefer-life-time 130;
        valid-life-time 200;
        allow rapid-commit;
        option dns_servers 2002:a78:d01:0:800:27ff:fe03:b3e9 31100173.com;
        link 31100173.com {
                range 2002:a78:d01::1000 to 2002:a78:d01::2000/64;
                prefix 2002:a78:d01::/64;
        };
};
  • service dhcp6s start
  • chkconfig dhcp6s on
Client1:(建議使用一台新VM)
  • yast –i dhcpv6
  • yast –> Networking Devices –> Networking Settings –> Edit 要使用的網卡
--> 標定Dynamic Address  選單選DHCP 和 DHCP Version 6 Only
--> Next –>OK
  • ifconfig 確認是否取得指定IP

設定發放固定IP給特定Client:

Client1
  • vi /var/lib/dhcpv6/client6.leasesxxxxxxxxxxx
開著等下設定會需要參考這裡的內容
Server1:
  • vi /etc/dhcp6s.conf
將內容改成:
interface eth0 {
        server-preference 255;
        renew-time 60;
        rebind-time 90;
        prefer-life-time 130;
        valid-life-time 200;
        allow rapid-commit;
        option dns_servers 2002:a78:d01:0:800:27ff:fe03:b3e9 31100173.com;
        link 31100173.com {
                range 2002:a78:d01::1000 to 2002:a78:d01::2000/64;
                prefix 2002:a78:d01::/64;
        };
        host client1 {
                 duid [client1文件中的duid];
                 iaidinfo {
                      iaid [client1文件名的iaid];
                      renew-time 1000;
                      rebind-time 2000;
                 };
                 address {
                      2002:a78:d01::1688/64;
                      prefer-life-time 2000;
                      valid-life-time 3000;
                 };
            };
};



  • service dhcp6s restart
Client1:
  • ifconfig 應該已經自動更新為指定的IP

2011年10月15日 星期六

Linux 70% Lab - Postfix + Cyrus + OpenWebMail with IPv6

Apache2:

Server1:
  • vi /etc/apache2/vhost.d/mail.31100173.com.conf
新增以下內容:
<VirtualHost 2002:a78:d01:0:800:27ff:fe03:b3e9:80>
    ServerAdmin root@31100173.com
    ServerName mail.31100173.com
    DocumentRoot /srv/apache2/mail
    ErrorLog /var/log/apache2/mail.31100173.com-error_log
    CustomLog /var/log/apache2/mail.31100173.com-access_log combined
    HostnameLookups Off
    ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"
    <Directory "/srv/www/cgi-bin">
        AllowOverride None
        Options +ExecCGI -Includes
        Order allow,deny
        Allow from all
    </Directory>
    <IfModule mod_userdir.c>
        UserDir public_html
        Include /etc/apache2/mod_userdir.conf
    </IfModule>
    <Directory "/srv/apache2/mail">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>















  • Service apache2 restart
HostOS:
  • 開啟browser連入mail.31100173.com測試apache2是否正常運作

 

Postfix:

Server1:
  • chkconfig postfix on
  • vi /etc/postfix/main.cf
做下列修改:
91:mydomain = 31100173.com
107:myorigin = $mydomain
268:mynetworks = [2002:a78:d01::]/64, [::1]/128
671:myhostname = mail.31100173.com
675:inet_interfaces = localhost, $myhostname
676:masquerade_domains = $mydomain
677:mydestination = $myhostname, localhost.$mydomain, $mydomain
679:mynetworks_style = subnet
681:relayhost = 10.120.101.101 <---驗收時再補上
687:smtpd_client_restrictions = hash:/etc/postfix/access
  • service postfix restart
HostOS:
  • telnet mail.31100173.com 25 測試smtp是否有通 (出現220才算成功)
Server2:
  • zypper ar http://download.opensuse.org/distribution/11.1/repo/oss opensuse11.1
  • zypper install kmail
  • kmail設定:Setting –> Configure Kmail..
Identities:Add
    General:Your name:amy
               Email address:amy@mail.31100173.com
OK.
Accounts:
    Receiving:Add—> POP3 :
         Account Name: amy
                                 Host: mail.31100173.com
                                 Login: amy
                                 Password: XXXXXXXX
                Sending:Add:
   Name:amy
                                Host:mail.31100173.com
  • 寄信到外部信箱做測試
  • vi /etc/postfix/sender-canonical
         新增兩筆資料:
amy info@mail.31100173.com
boby info@mail.31100173.com
  • postmap hash:/etc/postfix/sender_canonical

Cyrus:

Server1:
  • yast –i cyrus (預設應該裝好了)
  • service cyrus start
HostOS:
  • telnet mail.31100173.com 110
  • telnet mail.31100173.com 143
  • vi /etc/postfix/transport
於文件最末端新增一行:
31100173.com    cyrus:
  • postmap hash:/etc/postfix/transport
  • vi /etc/imapd.conf
於文件末端新增一行:
allowplaintext: yes
  • service postfix restart
  • service cyrus restart
  • service saslauthd restart
  • chkconfig saslauthd on
  • chkconfig cyrus on
Server2:
  • 用Kmail測試收發信

OpenWebMail:
Server1:
  • yast –i perl-MIME-tools (ver. 5.427-2.8)
  • yast –i perl-Text-Iconv (ver. 1.4.3.85)
  • tar –zxvf openwebmail-2.53.tar.gz –C /srv/apache2
  • tar –zxvf openwebmail-2.53.tar.gz –C /srv/www
(事先於 http://www.openwebmail.org/openwebmail/download/release/2.53/ 下載)
  • cp –a /srv/apache2/data/openwebmail /srv/apache2/mail
  • cd /srv/www/cgi-bin/openwebmail
  • vi etc/openwebmail.conf
做下列修改:
13:31100173.com
16:/srv/www/cgi-bin/openwebmail
18:/srv/apache2/mail/openwebmail
31:預設簽名檔  隨便改
  • vi etc/defaults/openwebmail.conf
做以下修改:
30:mail.31100173.com
  • cp etc/default/dbm.conf etc/
  • vi etc/dbm.conf
做以下修改:
30:.db 改成 .pag
  • cp etc/default/auth_unix.conf etc/
  • vi etc/auth_unix.conf
做下列修改:
73: /etc/shadow
74: none
  • chmod 4555 /srv/www/cgi-bin/openwebmail/openwebmail*.pl
  • chown root.mail /srv/www/cgi-bin/openwebmail/openwebmail*.pl
  • chmod 4555 /usr/bin/suidperl
  • vi /etc/openwebmail_path.conf
新增以下內容:
/srv/www/cgi-bin/openwebmail
  • rcapparmor stop
  • chkconfig boot.apparmor off
  • vi /srv/apache2/mail/index.html
修改為:
<html>
<head>
<meta http-equiv="refresh" content="0;
url=http://mail.31100173.com/cgi-bin/openwebmail/openwebmail.pl/">
</head>
</html>
  • /srv/www/cgi-bin/openwebmail/openwebmail-tool.pl –init
(最後的send report可以不用送.若送了有錯誤訊息是正常的)
HostOS:
  • 開啟browser連入mail.31100173.com 登入openwebmail 測試收信

Linux 70% Lab – Samba Server with IPv6

Server2:
  • mv /etc/samba/smb.conf /etc/samba/smb.conf.origin
  • mkdir /srv/samba
  • vi /etc/samba/smb.conf
新增下列內容:
 [global]
        workgroup = LXLAB
        netbios name = server01
        server string = samba server on server01
        interfaces = lo eth0
        log file = /var/samba/log.%m
        max log size = 100
        security = user
        passdb backend = tdbsam
        hosts allow = fd53:1a82:4e39:0::/64 ::1
        printing = cups
        printcap name = cups
        cups options = raw

[labdir]
        comment = user level, for amy and boby (rw)
        path = /srv/samba/labdir
        read only = No
        printable = No
        public = No
        browseable = Yes
        inherit acls = Yes
        valid user = amy boby

  • chkconfig smb on
  • chkconfig nmb on
  • useradd –m amy
  • useradd –m boby
  • smbpasswd –a amy
  • smbpasswd –a boby
  • pdbedit –L –v | grep amy
  • pdbedit –L –v | grep boby
  • service smb start
  • service nmb start
  • testparm

HostOS:
  • smbclient –L server2
  • smbclient –U amy //server2/labdir

磁碟配額部份:

Server2:
  • 先關機多加一顆虛擬硬碟
  • fdisk /dev/sdb
          n --> p --> 1 --> default --> default --> p --> w
  • mkfs.ext3 /dev/sdb1
  • vi /etc/fstab
做下列修改:
/dev/sdb1 /           /srv/samba         ext3       defaults,usrquota        0 0
  • mount -a
  • mount   確定剛才的設定是否套用
  • cd /srv/samba
  • quotacheck –uvcm /dev/sdb1
  • ll   應有aquota.user
  • chkconfig boot.quota on
  • quotaon -uv /dev/sdb1
  • edquota –u amy
  • edquota –u boby
amy和boby都做以下設定
Filesystem                   blocks       soft       hard         inodes     soft     hard                     /dev/sdb1                          0       8000      10000         14           0        0
  • quota –u amy
  • quota –u boby  查看是否設定正確
  • mkdir labdir
  • chmod 1777 labdir
HostOS:
  • smbclient -U amy //server2/labdir
  • put files 測試

2011年10月14日 星期五

Linux 70% Lab – Apache2 with IPv6

Server1:
  • yast –i apache2 apache2-doc apache2-example pages
                       apache2-mod_perl apache2-mod_php5 apache2-prefork apache2-utils
  • service apache2 start
  • chkconfig apache2 on
HostOS:
  • 使用browser連線到www.31100173.com測試apache2是否正常運作
Server1:
  • vi /etc/apache2/default-server.conf
於文件末端新增兩行:
ServerName server1
ServerAdmin root@server1
  • vi /etc/apache2/listen.conf
46行改為: VirtualNameHost [server IPv6 address]:80

  • mkdir –p /srv/apache2/www
  • mkdir  /srv/apache2/mail
  • mkdir /srv/apache2/public
  • mkdir /srv/apache2/private

  • cp /srv/www/htdocs/index.html /srv/apache2/www/index.html
  • cp /srv/www/htdocs/index.html /srv/apache2/mail/index.html
  • cp /srv/www/htdocs/index.html /srv/apache2/public/index.html
  • cp /srv/www/htdocs/index.html /srv/apache2/private/index.html
  • 將每個目錄下的index.html稍作修改以便識別

  • cd /etc/apache2/vhost.d
  • cp vhost.template www.31100173.com.conf
  • vi www.31100173.com
做以下修改:
<VirtualHost 2002:a78:d01:0:800:27ff:fe03:b3e9:80>
    ServerAdmin root@31100173.com
    ServerName www.31100173.com

    DocumentRoot /srv/apache2/www

    ErrorLog /var/log/apache2/www.31100173.com-error_log
    CustomLog /var/log/apache2/www.31100173.com-access_log combined

    HostnameLookups Off

    ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"
    Alias /public "/srv/apache2/public"
    Alias /private "/srv/apache2/private"

    <Directory "/srv/www/cgi-bin">

        AllowOverride None
        Options +ExecCGI -Includes
        Order allow,deny
        Allow from all

    </Directory>


    <IfModule mod_userdir.c>

        UserDir public_html
        Include /etc/apache2/mod_userdir.conf

    </IfModule>


    <Directory "/srv/apache2/www">

        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all</Directory>

    <Directory "/srv/apache2/public">

        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all

    </Directory>

    <Directory "/srv/apache2/private">

        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all

    </Directory>

</VirtualHost>     
  • cp www.31100173.com.conf mail.31100173.com.conf (之後做openmail才會用到)
  • vi /srv/apache2/private/.htaccess
新增下列內容:
           AuthName "Password Required ..."
           AuthType Basic
           AuthUserFile /etc/htusers
           require valid-user

  • htpasswd2 –cm /etc/htusers amy
  • htpasswd2 –m /etc/htusers boby
HostOS:
  • 使用browser分別連入 www.31100173.com 測試是否能正常運作.限制使用者
                                    www.31100173.com/public
                                    www.31100173.com/private
                                    mail.31100173.com

2011年10月13日 星期四

Linux 70% Lab – FTP (pure-ftpd) with IPv6

Server1:
  • yast –i pure-ftpd
  • vi /etc/pure-ftpd/pure-ftpd.conf
修改下列內容:
40行:20
52行:2
74行:no
80行:yes
107行:5
146行:yes
230行:32
347行:1280:5
449行:10066:10088
  • service pure-ftpd restart
  • chkconfig pure-ftpd on

HostOS:
測試上述設定是否有效執行

Linux 70% Lab - CUPS with IPv6

Server2:
  • vi /etc/cups/cupsd.conf
於18行下方新增一筆: Listen [server2 IPv6 address]:631
    25行下方新增兩筆: BrowseAddress @LOCAL
                                       BrowseAddress [IPv6 prefix]/64
    31行註解掉,下方新增一筆
      DefaultAuthType BasicDigest
    37及44行下方新增一筆: allow @LOCAL
  • lppasswd –a admin –g sys
  • vi /etc/cups/printers.conf
  • service cups restart

HostOS:
  • 使用browser開啟http://server2.31100173.com:631
  • 新增印表機lp0

Server2:
  • watch ls –l /var/spool/cups 觀看佇列
  • lpq –P lp0

HostOS:
  • 繼續使用browser讓lp0列印測試頁,再回頭看server2佇列是否有增加檔案
  • 使用browser開啟http://127.0.0.1:631
  • 新增網路印表機lp0
  • 列印測試頁

Linux 70% Lab – DNS(BIND) with IPv6

Server1:
  • yast –i bind bind-doc bind-chrootenv
  • vi /etc/named.conf
修改71行: notify yes;
於文件末端新增:
zone "31100173.com" in {
        allow-transfer { any; };
        file "master/31100173.com";
        type master;
};
  • vi /var/lib/named/master/31100173.com
新增以下內容:
$TTL 2d
@               IN SOA          server70-1.lxlab.com.   root.server70-1.lxlab.com. (
                                2011101300      ; serial
                                3h              ; refresh
                                1h              ; retry
                                1w              ; expiry
                                1d )            ; minimum
31100173.com.   IN MX           1 mail.31100173.com.
31100173.com.   IN NS           server1.31100173.com.
31100173.com.   IN NS           server2.31100173.com.
server1         IN AAAA         fd53:1a82:4e39:0:800:27ff:fea7:bfd0
server2         IN AAAA         fd53:1a82:4e39:0:800:27ff:fe3b:5470
www             IN CNAME        server1
mail            IN CNAME        server1
ftp             IN CNAME        server1
### 上面兩步的內容也可以用yast做,會輕鬆許多 ###
  • service named restart
  • chkconfig named on

Server2:
  • yast –i bind bind-doc bind-chrootenv
  • scp root@server1:/etc/named.conf /etc/named.conf
  • vi /etc/named.conf
做以下修改:
zone "31100173.com" in {
        allow-transfer { any; };
        masters { fd53:1a82:4e39:0:800:27ff:fea7:bfd0; };        file "slave/31100173.com";
        type slave;
  • service named restart
  • chkconfig named on

Server1:
  • service named restart

Server2:
  • vi /var/lib/named/slave/31100173.com 查看內容是否正確無誤

2011年10月1日 星期六

作業三 :自動化異地備份所有使用者家目錄

目標:
於server1(自己的主機), 建立一指令稿(使用bash) backup.sh 存放於/root/bin/內,
工作內容是對/home目錄進行差異式備份(differential backup), 且必須滿足以下需求:
a) 指令稿內必須使用tar 指令進行備份.
b) 於每週五時, 指令稿必須進行完整備份(full backup).
c) 於每週一至週四, 指令稿必須進行差異式備份(differential backup), 只備份full backup後有異動的部份資料.
d) 指令稿必須能找出備份當日的星期名稱(如Mon,Tue,Wed,...), 以便能判斷出必須採用的備份方法.
e) 使用一參考檔案(/var/backup/last-backup), 以便進行 full backup 後的郵戮時間點, 作為 differential backup 啟始點的依據.
f) 對產生的備份檔須符合以下格式:
* Full backup: /var/backup/backup-full-YYY-MM-DD.tar.bz2
* Differential backup: /var/backup/backup-diff-YYYY-MM-DD.tar.bz2. 其中YYYY-MM-DD 是備份當日的格式 (如. 2011-09-29).
g) 若進行備份失敗, 該指令稿必須能發出 email 給 root@server1. 主旨為"Backup failed !", email內容可不需要指定.
h) 於指令稿內使用rsync進行同歩server1的/var/backup目錄, push 到 server2的 /home/bkman/backup目錄,
    以實現異地備份任務.(bkman 為該帳戶的home folder. 且server2為測試主機)
i) 使用例行式排程於週一至週五晚上22:30執行backup.sh.
j) 假設你backup資料的安全存量為四周, 此script能自動刪除超過一個月的backup 資料.
 
Server1:
  • vi /root/bin/backup.sh
#!/bin/sh
#WrittenBy YuningLau
#Full Backup Funtion
full()
{
touch /var/backup/last-backup
rm -rf /var/backup/backup_full_"$date28".tar.bz2
tar -cjvf /var/backup/backup_full_`date +%F`.tar.bz2 /home
}
#Differential Backup Funtion
diff()
{
rm -rf /var/backup/backup_diff_"$date28".tar.bz2
find /home -type f -newer /var/backup/last-backup -print0 | tar --null -cjvf /var/backup/backup_diff_`date +%F`.tar.bz2 -T -
}
#Name parameters to see which day today is :
today=`date +%u`
date28=`date --date='28days ago' +%F`

#Remove backup files over 4 weeks
rm -rf /var/backup/backup_*_"$date28".tar.bz2

#Exam which type to backup
case "$today" in
        [5])
                full
                ;;
        [1234])
                diff
                ;;
esac

#Exam the backup is complete or not
#If fail, send notification to root
#If sucess, push to backup server(server2)
if [ $# -ne 0 ]
then
        mail -s "Backup Failed!!!" root@es11-s1
else
        rsync -ave ssh -6 --delete /var/backup root@es11-s2:/home/bkman
fi

exit 0
 
 
  • mkdir /var/backup

  • ssh-keygen –t rsa

  • scp id_rsa.pub root@[server2 IPv6 Addr.]:/root/server1.pub

  • vi /etc/crontab
於文件末端新增一筆:
30 22 * * 1-5  root  bash /root/bin/backup.sh

Server2:
  • useradd –m bkman
  • passwd bkman
  • cat server1.pub >> /root/.ssh/authorized_keys

2011年9月30日 星期五

作業二:規劃專屬 Log Server, 及 remote access 的管理

需求 :
1. Topology 如圖.
2. 請aman 自OpenSuSE 執行 ssh 到 server1(sshd) 的登入失敗訊息記錄
    自動出現在 server2(log server) 的/var/log/HOSTS/server1/local0-YYYY-MM-DD.log 檔.
3. server2(log server) 的 /var/log/HOSTS/ 內的 server1 子目錄必須能自動產生.
4. 記錄檔的格式如 : local0-2011-09-29.log. (其中local0 為自動取名的預先定義的facility 名稱)
5. server2(log server) 須 listen 的 protocol 為 TCP, port 須為 666.
6. 更改PAM的相關組態檔, 限制aman能登入的時段為周1-5的0800~1800
291740_268751056490493_100000668024189_896233_1594672484_n

server1:
  • vi /etc/ssh/sshd_config
取消35.36行的註解,並將35行SyslogFacility的值改為local0
  • vi /etc/syslog-ng/syslog-ng.conf
於文件末端添加以下內容:
filter f_sshd  { level(debug..emerg)  and facility(local0); };
destination sshd {
tcp6("server2 IPv6位址" port(666));};
log { source(src); filter(f_sshd); destination(sshd); };
  • useradd –m aman
  • passwd aman
  • vi /etc/pam.d/login
          複製第5行,並改寫為:
          account  required  pam_time.so
  • vi /etc/pam.d/sshd
          一樣新增一行:
          account required pam_time.so
  • man pam_time
          尋找此模組的組態檔位置,在 /etc/security/time.conf
  • vi /etc/security/time.conf
          在文件最末端新增一行:
           login;*;aman;!Al1800-0800 & SaSu0800-1800
           sshd;*;aman;!Al1800-0800 & SaSu0800-1800



server2:
  • vi /etc/syslog-ng/syslog-ng.conf
          於文件末端新增以下內容:
          source remote{tcp6(ip("::") port(666)); };
          filter f_s1sshd   { level(debug..emerg)  and facility(local0) and match(error); };
          destination s1sshd { file("/var/log/HOSTS/$HOST/$FACILITY-$YEAR-$MONTH-$DAY.log"
          create_dirs(yes)); };
          log { source(remote); filter(f_s1sshd); destination(s1sshd); };

2011年9月29日 星期四

作業一:SUSE Linux Enterprise 11.4 IPv6設定方法

目標:
1. 依ULA-64的格式(fdxx開始的首碼)產生一IPV6 Network Address, 
    Prefix為 /64的local unicast address (不是 link local, 也不是 glocal unicast).
2. 任選二個 Interface ID 設給 Server1 及 Server2 使用, 
    且定義於 /etc/syscoconfig/network/ifcfg-eth0 內.

3. 自Server1 執行 ping6 -I eth0 Server2 必須有回應, 以確保IPV6網路有通.

Server1.2各作以下設定:
  • vi /etc/sysconfig/network/ifcfg-eth0
於文件末端新增三筆資料:
LABEL_0=’0’
IPADDR_0=’本機的IPv6位址’
PREFIXLEN_0='64'

  •  vi /etc/hosts
          於文件末端新增一筆資料:
          [目的server的IPv6位址]        [主機FQDN] [主機名稱]


  • rcnetwork restart

  • ping6 –I eth0 [目的server的主機名稱]

2011年9月7日 星期三

TCP/IP筆試-不同網段的telnet封包

我是直接連到批踢踢來抓包
我想這已經有符合老師要的"不同網段" 以及"telnet”了
先看一下我抓到的封包吧!
image
image
image
截圖只有放重點.中間的封包都省略了!

首先是DNS:

11號封包內容如下:
image
由Client(192.168.0.100)發送到DNS Server(168.95.192.1)的詢問封包
使用Client的49905 port(隨機選取)發送UDP封包到Server的 53 port
內容是詢問ptt.cc這個名稱的IP位址

 

12號封包內容如下:
 image
DNS Server回應了好幾組關於ptt.cc的主機紀錄到Client
同樣的.由DNS Server的53 port發送UDP封包回到Client的49905 port

再來是三向交握:

118號封包的內容如下
image
這個封包是三向交握的第一個封包-- 由Client傳給Telnet Server(從DNS給的IP中隨機選取了140.112.172.4)
目的是主動提出建立連線的要求
client使用的port是隨機選擇的51822port
發送TCP封包到server的23port (telnet預設的port number)
內容只有flag六種控制欄位中的syn欄位
並且sequence=0  length=0
表示資料由編號0開始(也就是這個封包本身).而且data部份的長度是0


119號封包的內容如下:
image
這個封包是由server回應client的封包.也是三向交握的第二步
在這個封包中flag同時會有syn跟ack的欄位
syn欄位是server要告訴client:server這邊的封包從0開始(seq=0)
而ack欄位則是表示: 有收到client傳來.編號0的封包.可以送編號1的封包了(ack=1)
同樣的.這個封包也沒有包含data在內.所以長度一樣為0

120號封包內容如下:
image
由client發送給server
這個封包中旗標的部份只有ack=1 表示告訴server有收到上一個封包 可以傳送Server那邊seq=1的封包了
seq=1則是表示Client這邊的封包目前編號到1
長度同樣為0
而Server收到這個封包之後三向交握就算是完成了
接下來就會由Server開始傳送資料(Telnet封包)過來了!



結束連線的四向交握(半關閉):

image
因為在TELNET軟體中提出了斷線的要求
所以由伺服端送出結束連線的封包
一樣是沒有data只有旗標欄位(fin).長度為0的封包
同時這個封包也包含了ack欄位.表示有收到上一個由client送出的封包


image
client端收到server端結束的要求後
首先會送出ack封包.表示有收到這個訊息
這時候server端到client端的連線就正式斷了
但client端到server端的連線還存在著
也就是說server端還可以接收從client端來的訊號


image
client端隨即會再送出和server端一樣的fin, ack封包
提出要結束連線的要求


image
server端收到後會送出彼此連線間的最後一個封包
表示有收到剛剛由client端提出的要求
同時server和client間的連接到此也已經完全結束了

2011年9月5日 星期一

上傳PDF檔至Life知識網

首先必需將Word檔存成pdf檔

開啟要上傳的檔案使用"另存新檔"即可轉存成pdf檔

再來要將pdf檔上傳至網路

進入這個網站  http://issuu.com/explore
image
點擊右上角的create account

image
直接點選選"連結到臉書" (就是臉書的那個圖案)
跳出的視窗按一下同意.帳號就建好了~

image
一樣畫面右上角. 點選"upload” 就會出現上面這個畫面
按browse選擇剛剛轉成pdf的檔案
title打一下標題
description打一下關於這個文件的敘述(好像不能太短)
webname在把檔案傳上去時應該就會設定好.不需要特別更動
keyword 方便別人搜尋到你這文件的關鍵字.至少要輸入兩個關鍵字
info link 可跳過
type 文件的分類 依個人喜好選擇
child-safe 如果沒有色情暴力的內容就選yes.反之就選no
publish date 上傳的日期  也不需要特別更動
下面的選項都可以不用填
資料都設定好之後就按下最下面的"upload file”
等待進度條跑完即完成上傳

把上傳好的檔案轉貼到LIFE知識網


上傳好之後會自動跳到你自己帳號的主畫面

image
在右上角點選改變一下檢視的方法
image
類似這樣. 就可以把想要po出來的檔案勾選


image
再 點選上方灰色工具列的  "  <>embed  ”


image
就會跳出一串html的語法了! 把它copy下來...
到life知識網去登入自己的帳號..
進到ms lab資源庫底下..

image
點選"撰寫文件"
注意! 不是上傳文件喔!

image
勾選下面的"html mode" 然後把剛剛那串code貼上..
標題.作者打一打..
按確定就可以發文囉!!

2011年8月4日 星期四

母碟建置:

1. 硬碟大小:
  • 2008R2:20G
  • 2003:12G
  • XP:10G
2. Windows Update:更新到最新
3. 安裝防毒FCS:
  • 插入FCS安裝光碟
  • 進入命令提示字元:進入D:\client目錄->輸入client.exe /nomom指令
  • 完成安裝後,利用Microsoft Update更新
4. 關閉關機事件追蹤器及密碼複雜度限制:
  • 開始->執行gpedit.msc開啟"本機群組原則編輯器"->電腦設定->系統管理範本->系統->選取"顯示關機事件追蹤器"->選取"已停用"
  • 至"電腦設定->Windows設定->安全性設定->帳戶原則->密碼原則"中設定
5. 關閉IE ESC:
  • 2008R2:在伺服器管理員中選取”設定IE ESC”關閉即可
  • 2003:在"新增/移除元件"中將"Internet Explorer Enhanced Security Configuration"取消勾選
6. 安裝BGInfo:
  • 將與作業系統版本相對應的BGInfo資料夾複製到系統根目錄底下
  • 執行"setup"
7. 建立與主機的共用資料夾,其中內容可以有:
  • 各OS的安裝光碟iso檔
  • newSID
  • BGInfo
  • 資策會硬碟中的”others”資料夾
  • 其他
8. 將newSID(或SYSPREP捷徑)預先放置到桌面備用
  • SYSPREP位於"C:\WINDOWS\SYSTEM32\SYSPREP”資料夾中






2011年7月24日 星期日

如何允許特定port不受防火牆限制

這邊以NetBIOS為例
在連接同一區域網路中電腦所架設的網站時,若是輸入電腦名稱。
便需要NetBIOS來做名稱解析。
可是這在防火牆中預設是封鎖的,因此我們要修改防火牆的設定,
好讓防火牆不會阻檔NetBIOS接收廣播封包來做解析。

首先從控制台進入"Windows防火牆",並點選"進階設定",會看到像下面這樣的視窗
001

點選輸入規則,找到"檔案與印表機共用"群組中的:
  • 檔案及印表機共用 (NB-Name-In)
  • 檔案及印表機共用 (NB-Datagram-In)
  • 檔案及印表機共用 (NB-Session-In)
確定想在什麼網路環境(私人.網域或公用)下允許通過後,選擇讓它啟用
002

若是想要允許ping的封包,也可以在此開啟"檔案及印表機共用 (回應要求 - ICMPv4-In)"
或在"輸入規則"按右鍵選取"新增規則"自行建立想要的設定。

2011年7月23日 星期六

NAT Server架設

Windows 2008的課程最後,老師講解的是NAT Server的架設
選取原本設定在同一個網段(192.168.8.0/24)中的VM來做模擬
  • 2008MS作為NAT Server
  • 2003DC作為內部網路中的IIS Server
  • XP作為一般用戶端電腦

  • 事前的準備工作包括:
2008MS:
1.新增第二張網卡作為內部網卡
create NIC in VB
2.在伺服器管理員中新增角色-安裝NAT管理工具
002
003
004

2.設定內部網卡IP及Subnet Mask
015
兩張網卡所預設的網路名稱為區域連線及區域連線2
為了識別方便將外部網卡連線改名為"WAN"
內部網卡連線改名為"LAN",其中LAN使用的是192.168.100.0/24的網段。

2003DC:
1.使用新增或移除元件新增IIS管理工具及FTP功能
006
點選Application Server,讓它打灰色勾勾(僅安裝部份功能)
點選詳細資料進入下一層選單

007
點選IIS,並進入詳細資料選單

008
將最下方的FTP也勾選,確定之後安裝

010
安裝好之後進入IIS的管理工具,可以看到已經架好了預設的WEB網頁及FTP站台

011
012
到WEB網頁及FTP站台的根目錄中新增幾筆資料以便等會識別用


XP:
只要確認可以正常連上網路就好。

另外,上面這些設定都做好之後,最好是每台互相ping一下看看是否可以正常連接
但是2008MS的內部網卡這時並無法被2003DC及XP ping到。
最好也一併檢查一下2008MS及XP的DNS是否指向到2003DC,拿掉。

(注意這時還是用.8網段的IP連線到2003DC)
也試一試2003DC架好的WEB及FTP能否在2008DC及XP中正常連線
014
027
若是遇到Virtual Box的Bug而沒辦法連線到FTP,可以將FTP所使用的TCP port改用別的port
這邊用的是2121。


  • 將2003DC移入內部網路:
接下來就要正式把2003DC移進2008MS所架構的內部網域了
一點也不難
只要把網卡由原本的Host-Only改成內部網路。
再把TCP/IP(IPv4)的參數重新設定一下就好!
(這兩個部分可以直接開機的時候做修改,但若是怕出問題或改了之後怪怪的就改好重開機吧)
016
017
018

都弄好之後,可以再次試著ping 2008MS,會發現只能ping到.100的網段
當然也沒有辦法連接到外部網路。

2008MS的NAT設定:
開啟NAT管理工具,對2008MS(本機)按右鍵選"設定和啟用路由及遠端存取"
019

進入了安裝精靈
020

選擇要做為外部網路使用的連線
021

因為有些功能我們之前就有安裝過了,這邊選稍後自行設定。
022
此時2003DC應該就可以連線到網際網路上了!

連出OK了,那連入呢?
2003DC使用的是Private IP,所以要從外部連線到它所架設的站台,
得先設定讓2008MS收到連線要求時自動轉送到2003DC去。

開啟NAT管理工具,點選2008MS —> IPv4 –> NAT,對其中的WAN按右鍵編輯內容
023

我們在2003DC架了WEB及FTP,所以在這個地方要把這兩項的轉址功能打開並加以設定
(因為FTP預設的port只能是21,但我們將它改為2121,所以必需手動新增新的規則)
028

HTTP的部分輸入2003DC所使用的IP就好
025

FTP的部分就另外設定一下連入連出的port
連入是指用戶要經由2008MS轉址到2003DC的FTP站台時,所需要指定的port,
這兩個都可以隨自己喜好設1025~65535之間的數值,
只要連出port和你在2003DC的IIS中設定的一樣就好。

026

都設定好之後就用XP來試試看連不連得上囉!
注意這邊不能使用電腦名稱來連接2003DC,
因為在.8這個網段中已經找不到這台電腦,
而且它所位在的.100網段是私人的內部網路,
我們必須透過2008MS轉址才能連線到2003DC
所以要輸入的是2008MS的IP位址(電腦名稱也可以,DNS會幫我們連過去的~)

029


大功告成囉!!

2011年7月22日 星期五

網路連接形式

上課所提到的連接形式不管是實體機器或虛擬機器其實只有三種:
  • NAT(Network Address Translation)
  • ICS(簡易的NAT功能)
  • 虛擬機器的NAT功能
  • Bridge橋接
以教室的拓樸為例,可以表示成下圖:
Topology
  • NAT:網址轉譯,伺服器至少需要兩張網卡,一張連接外部網路,另一張(或更多)連接內部網路。外部網卡使用Public IP,內部網卡使用Private IP(包含ABC級網段各一組)。但在上圖中可以看出在整個拓樸我們不只一次使用NAT,也就是說NAT(及ICS)可以一層包一層使用。圖中2008MS即用NAT功能建構一個私人區域網路供192.168.100/24網段使用。
  • ICS:簡單的NAT功能,一般用戶端電腦也可以使用。但一張外部網卡同時只能對應一張內部網卡,並且僅能使用C級網段的Private IP。圖中所有Host網卡均利用ICS功能對Host-Only網卡做網址轉譯。
  • 虛擬機器的NAT功能:VM軟體如Virtual Box或VMWare Workstation皆內建NAT以供VM更方便的使用網路,但其原理同NAT一樣,所以圖上並未列出。
  • Bridge:直接透過Host網卡做連線,需要分配與Host同網段的IP位址。圖中VC103-1即連接一部電腦透過Bridge的方式作網路連結。