\documentclass[letterpaper]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{�p��]�m�������p������(VPN)��}
\author{�@��: Arpad Magosanyi $<$mag@bunuel.tii.matav.hu$>$\\ 
Ķ��: ���j�� $<$dawei@sinica.edu.tw$>$}
\date{v0.2, 7 August 1997
½Ķ�������: 20 Feb 1999}
\abstract{�p��إߵ����p������(Virtual Private Network)�C}


\begin{document}
\maketitle

\section{��}



'no controlling tty problem' -$>$ -o 'BatchMode yes' �O�� Zot O'Connor 
$<$zot@crl.com$>$ �ҧ󥿡C

�֤� 2.0.30 ��ĵ�i�T���A�O�� mag �ҧ󥿡C




\section{����s�i}

�o�����O Linux VPN howto�A�������F�p��b Linux (�H�Τ@�몺 UNIX) �W�إ�
�@�ӵ����O�@��������������T�C




\subsection{���v�n��}



�o�����O Linux HOWTO �p�����@�����C�������v�n���p�U�G���D�S�O�����ALinux 
HOWTO ��󪺪��v�k�ݥL�̦U�۪��@�̩Ҧ��CLinux HOWTO ��󪺥����γ����A�i�H
�ϥΥ��󪫲z�ιq�l�Φ����C��ӽƻs�P���G�A�u�n�o�Ӫ��v�n���Q�O�d�b�C������
���C�ӷ~�欰���A���G�O�Q���\�ӥB���w�諸�F���O�A���󪺴��G�欰�@�̳��Ʊ��
�Q�i���C�Ҧ�½Ķ�N�l�ͪ��u�@�N�ΦX�֥��� Linux HOWTO ��󪺻E���u�@�A������
����o�Ӫ��v�n�����O�@�C�]�N�O���A�A���i�H�q HOWTO �l�ͥX�@�����A�M���o
���l�ͤ�󪺴��G�j�[�W��L�������C���D�b�@�ǯS�w�����p�U�A�~�|���ճo�ǭ���
����F���p�� Linux HOWTO ����դH�A�L���a�}�p�U�C²�Ө����A�ڭ̧Ʊ����ɥi
��z�L�U�غ޹D�A�ӱ��ʳo�Ӹ�T�����G�u�@�C�M�ӡA�ڭ̤]�Ʊ�O�d HOWTO ���
���v�A�H�Φp�G������� HOWTOs ���A���G�p���]�Ʊ����Q�q����C�p�G������ð�
�A���p�� Linux HOWTO ��դH Tim Bynum�A�L���q�l�l��a�}�O 
linux-howto@sunsite.unc.edu �C




\subsection{�K�d�n��}



�@�p���`�G�����A�ҳy��������M�`�A�@�̤@�����t�d���C���T������A�аѾ\
GNU GPL 0.1.1 �����������C




\subsection{�G���n��}



�ڭ̩ҭ��{���O�w���ʪ����D�G�p�G�A�S���Φ��@�Ӧn���w�������A�H�ΰ��n�������t�M
���I�A�A�N�L�k��o�u�����w���C




\subsection{�\��}



�P�©Ҧ����Ѥu��{��������ϥΪ��H�K�C

�P�� Zot O'Connor $<$zot@crl.com$>$ ���ȫ�����no controlling tty�������D�A�ӥB
�ٴ��ѤF�ѨM��k�C




\subsection{���媺�{�p}



�b�\Ū����e�A�A���Ӥw��Ƨ��㪺 IP �޲z���ѡA�ܤ֭n�������(firewall)���Nppp
�N�M ssh �A�����ѡA���@���A�ѡC�p�G�A�n�]�w�@�� VPN ���ҡA�L�צp��@�w�o���D�o��
�F��C�ڥu�O�N�ڪ��g��g�U�� �A�H�K���ѰO���������e�C�ҥH�A�ڬ۫H�@�w�|���w��
���|�}�s�b�C���F�M���_���A�ڸյۥH�D���]�m�����Ѿ��覡�A�Ӥ��O�H�����𪺤覡�A��
������Ӥ��e�A�Ʊ�j�a�����P�P�N����A�ѥ���C




\subsection{�������}

\begin{itemize}
\item �ɮ� /usr/doc/HOWTO/Firewall-HOWTO �W�� Linux Firewall-HOWTO ���
\item �ɮ� /usr/doc/HOWTO/PPP-HOWTO.gz �W�� Linux PPP-HOWTO ���  
\item �ؿ� /usr/doc/ssh/* ����  ssh ���  
\item Linux �������޲z����(Network Admins' Guide)�� 
\item ��a�зǤΧ޳N�e���| (National Institute Standards and Technology�A²�g��
NIST) �b�q���w���譱���X���~�A�аѦҺ��} http://csrc.ncsl.nist.gov/nistpubs/  
\item ��������q�H�׾�(Firewall list)�� (majordomo@greatcircle.com)  
\end{itemize}





\section{����}



�ѩ�����w�����D��q���쭫���A�ҥH�A�����𪺧޳N�V�ӶV�s�x�a�Q���Φb�A���ں���
�M�����q��������(intranet)���W�A�������O���u�H�A�� VPN ���w���ʦ����|��������
�v�T�C�o�u�O�ڭӤH����|�C�w��j�a���X�ۤv���ݪk�C




\subsection{�R�W�D��}



�ڱN�|�ϥΨ졧�D������(master firewall)���M����������(slave firewall)���o��ӱM
���W�١A�M�ӡAVPN ���ظm�P�D�����[�c�����S���������p�ʡC�ڥu�O�⥦�̬ݦ��A��ݦb
�إ߳s�u�ɡA���O�ӥD�ʪ��ѻP�̩γQ�ʪ��ѻP�̡C�o�_�إ߳s�u���D���A�|�Q���@�D����
��F�M�ӡA�Q�ʪ��ѻP�̡A�N�|�Q���@��������C




\section{�}�l�ظm}




\subsection{�W��}



�b�A�}�l�]�w�t�Ϋe�A�A���ӭn���A�Ѥ@�U�����s�����Ӹ`�C�{�b�A�ڰ��w�A����Ө�����
�A�U�O�@�@�Ӥ��q���������C�ҥH�A�{�b�C�Ө��������ӷ|����Ӻ����ɭ��]�ܤ֡^�C���@
�i�ȡA�g�U���̪� IP ��}�M�����B�n�C�C�� VPN ��������A�N�|�ϥΨ�ƭ� IP ��}��
�q�C�o�� IP ��}�Ϭq�A���ӳ]�w�b�A���q�{�����l�������d��H�~�C�ګ�ĳ�ϥΡ��p����
IP ��}�Ϭq���d��C�p�U�ҥܡG

\begin{itemize}
\item 10.0.0.0 - 10.255.255.255  
\item 172.16.0.0 - 172.31.255.255  
\item 192.168.0.0 - 192.168.255.255  
\end{itemize}


���F�����A���B���|�F�@�ӳ]�w���רҡG����x bastion {[}Ķ��] �D���A���O�Q�٬� fellini
�M polanski�C���̦U���@�Ӭɭ��s�����ں��� (-out)�A�@�Ӭɭ��s�����q�������� (-in)
�A�H�ΡA�@�Ӭɭ��s�� VPN (-vpn)�C�Ҧ��� IP ��}�M�����B�n�A�p�U�G

\begin{itemize}
\item fellini-out: 193.6.34.12 255.255.255.0  
\item fellini-in: 193.6.35.12 255.255.255.0  
\item fellini-vpn: 192.168.0.1 �I���I
\item polanski-out: 193.6.36.12 255.255.255.0  
\item polanski-in: 193.6.37.12 255.255.255.0  
\item polanski-vpn: 192.168.0.2 �I���I
\end{itemize}


Ķ���G bastion �O�����S�b���q�����~����������h�D�C

�ҥH�ڭ̦��ӭp���C




\subsection{�j���u��}



�A�N�|�ݭn
\begin{itemize}
\item Linux ������
\item �֤�
\item �D�`�֪��]�w
\item ipfwadm �{�� 
\item fwtk �{��  
\item VPN �ҨϥΪ��u��
\item ssh �{�� 
\item pppd �{�� 
\item sudo �{�� 
\item pty-redir �{��  
\end{itemize}


�ثe�ϥΪ������G
\begin{itemize}
\item �֤ߡG 2.0.29 �C�Шϥ�í�w���֤ߡA�ӥB�A������ 2.0.20 �ٷs�A�]�� ping'o'death
�����~�C�b���g����ɡA�̫�@��í�w���֤߬O���� 2.0.30�A���O�����@�ǿ��~�C�p�G
�A�A�Q�n�ϥγ̷s���֤ߩҴ��ѡA�J�֤S�Ū������{���X�A�A�ۤv�i�H���լݬݡA����
2.0.30 ��ڦӨ��A�w�g�ܦn�ΤF�C
\item �򥻪��@�~�t�ΡG�ڤ�����w Debian �ҵo�檺�����C�A����ϥΤ������j����
�n��M��A���M�A�]�]�t sendmail �b���C�A�]���藍�๳�䥦�� UNIX �D���@�ˡA���\
telnet�Nftp�N�M 'r' �R�O�A���\�઺�ϥΡC
\item ipfwadm �{���G �ڨϥΪ��O 2.3.0�C 
\item fwtk �{���G �ڨϥΪ��O 1.3�C 
\item ssh �{���G $>$= 1.2.20�C���ª������A�U�h����w�|�����D�C
\item pppd �{���G �ڴ��ժ��O 2.2.0f�A���O�ڵL�k�T�w���O�_�w���A�o�N�O������ڷ|
�N���� setuid �줸�����A�óz�L sudo �Ӱ��楦����]�C
\item sudo �{���G �کҪ��D���̷s�����O 1.5.2�C 
\item pty-redir �{���G �o�O�ڼg�C�Ц�
ftp://ftp.vein.hu/ssa/contrib/mag/pty-redir-0.1.tar.gz ���o�C�{�b�������O
0.1 �C�p�G�ϥΤW��������D�A�ШӫH�i���C 
\end{itemize}





\subsection{�sĶ�P�w��}



�A�{�b���u�@���O�sĶ�N�O�w�˩ҷj���쪺�u��C �ðѾ\��]�H�� firewall-howto�^
�ԲӪ��������C�{�b�A�ڭ̤w�g�w�˦n�o�Ǥu��F�C 




\subsection{�䥦�l�t�Ϊ��]�w}



�]�w������H�Ψ䥦�����ءC�A�����b��x������D�������A���\ ssh ��ƪ��y�q�C�o
�O���A�D������|�������s�u�즸�����𪺰� 22�C�b��������W�Ұ� sshd�A������O�_
���\�A���n�J(login)���C�o�ӨB�J�|�����չL�A�Чi�D�ڧA�����յ��G�C




\subsection{�]�w VPN ���ϥΪ̱b��}



�H�A��`�ϥΪ��u��]�Ҧp�Avi�Nmkdir�Nchown�Nchmod�^�b��������W�إߤ@�ӨϥΪ̱b
��A�A�]�i�H�b�D������W�إߤ@�ӨϥΪ̱b��A���O�A�ڻ{���b�}�����q�]�w�s�u�N�i�H
�F�A�ҥH�A�ϥέ�l�� root �b��N�w�����C������H�i�H���ڭ̻����@�U�A�b�D������W
�ϥ� root �b��A�|������M�I�ʡH




\subsection{�� master �b��A���ͤ@�� ssh key }



�A�i�H�ϥ� ssh-keygen �{���C�p�G�A�A�n�۰ʳ]�m VPN�A�A�i�H�]�w�@�ӨS���K�X��
���p�H�_��(private key)���C




\subsection{�� slave �b��A�]�m�۰ʪ� ssh �n�J���ҡC}



�b�������𤤡A�ƻs�A��~���ͪ������@�_��(public key)����A�ϥΪ̱b�� slave ��
�� .ssh/authorized\_keys �ɮ׸̡A�åB�A�]�w�ɮת��ϥ��v���A�p�U�G

\begin{verbatim}
drwx------ 2 slave slave 1024 Apr 7 23:49 ./  
drwx------ 4 slave slave 1024 Apr 24 14:05 ../  
-rwx------ 1 slave slave 328 Apr 7 03:04 authorized_keys  
-rw------- 1 slave slave 660 Apr 14 15:23 known_hosts  
-rw------- 1 slave slave 512 Apr 21 10:03 random_seed  
\end{verbatim}


�䤤�A�Ĥ@��O \~{}slave/.ssh�A�ĤG��O \~{}slave�C




\subsection{�[�j ssh �b bastion �D���W���w���ʡC}



�Ы��ӧڦb sshd\_conf �W���]�w�G

\begin{verbatim}
PermitRootLogin no  
IgnoreRhosts yes  
StrictModes yes  
QuietMode no  
FascistLogging yes  
KeepAlive yes  
RhostsAuthentication no  
RhostsRSAAuthentication no  
RSAAuthentication yes  
PasswordAuthentication no  
PermitEmptyPasswords no 
\end{verbatim}


�K�X�{��(PasswordAuthentication)�Q�����F�A�ҥH�A�A�u���ϥα��v�L�� key�A�~���
�����n�J���ʧ@�C�]���M�A�A�]�w�g�����F�Atelnet �P  'r' �R�O�^�C 




\subsection{���\ ppp ������A�M�o��ӱb�᪺���ѡC}



���A�� master �b��O root �ɡ]�H�ڪ��Ҥl�Ө��^�A�A����������Ʊ��C�ܩ� slave 
�b��A�h�|�b�A�� /etc/sudoers ���ɮפ��X�{�@��G

\begin{verbatim}
Cmnd_Alias VPN=/usr/sbin/pppd,/usr/local/vpn/route  
slave ALL=NOPASSWD: VPN  
\end{verbatim}


���p�A�Ҭݨ쪺�A�ڦb��������D���W�A�ϥΤF�@�ǩR�O�Z(scripts)�A�ӳ]�w ppp �M���Ѫ��C




\subsection{���g�R�O�Z�{��}



�b�D������D���W�A�ڨϥΤF�@�Ӧ������ҩl�R�O�Z�G
\begin{verbatim}
#! /bin/sh
# �{���[�c  �o���ɮ׬O�ӫإߦb /etc/init.d/ �ؿ��U���R�O�Z��ҡC
#               �A���Ӧb /etc/init.d �ؿ��U�ϥγo�өR�O�Z�C
#
#               �@�� Miquel van Smoorenburg <miquels@cistron.nl>.
#               Debian GNU/Linux �׭q���@��
#               Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# ����:               @(#)skeleton  1.6  11-Nov-1996  miquels@cistron.nl
#

PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/:
PPPAPP=/home/slave/ppp
ROUTEAPP=/home/slave/route
PPPD=/usr/sbin/pppd
NAME=VPN
REDIR=/usr/local/bin/pty-redir
SSH=/usr/bin/ssh
MYPPPIP=192.168.0.1
TARGETIP=192.168.0.2
TARGETNET=193.6.37.0
MYNET=193.6.35.0
SLAVEWALL=polanski-out
SLAVEACC=slave

test -f $PPPD || exit 0

set -e

case "$1" in
  start)
        echo setting up vpn
        $REDIR $SSH -o 'Batchmode yes' -t -l $SLAVEACC $SLAVEWALL sudo $PPPAPP >/tmp/device
        TTYNAME=`cat /tmp/device`
echo tty is $TTYNAME
        sleep 10s
        if [ ! -z $TTYNAME ]
        then
        $PPPD $TTYNAME ${MYPPPIP}:${TARGETIP}
        else
                echo FAILED!
                logger "vpn setup failed"
        fi
        sleep 5s
        route add -net $TARGETNET gw $TARGETIP
        $SSH -o 'Batchmode yes' -l $SLAVEACC $SLAVEWALL sudo $ROUTEAPP
    ;;
  stop)
        ps -ax | grep "ssh -t -l $SLAVEACC " | grep -v grep | awk '{print $1}' | xargs kill
    ;;
  *)
    # echo "Usage: /etc/init.d/$NAME {start|stop|reload}"
    echo "Usage: /etc/init.d/$NAME {start|stop}"
    exit 1
    ;;
esac

exit 0
 
\end{verbatim}


slave �b��i�H�ϥΩR�O�Z�ӳ]�w���� (/usr/local/vpn/route)�G     
\begin{verbatim}
#!/bin/bash  
/sbin/route add -net 193.6.35.0 gw 192.168.0.1  
\end{verbatim}


�Ө� .ppprc �����e�A�p�U�G
\begin{verbatim}
passive  
\end{verbatim}





\section{���ڭ��˵����檺���G�G}



master �|�n�J�� slave �b��̡N�Ұ� pppd�N�H�ΡA�N�Ҧ�����ƭ��ɦܥ����� pty�]
�����׺ݾ��^�C��Ӱ���y�{�p�U�G

\begin{itemize}
\item �t�m�@�ӷs�� pty  
\item �z�L ssh �n�J slave �b�� 
\item �b slave �b�ᤤ���� pppd 
\item master �b������ pty ���� pppd   
\item �åB�b�Τ�ݳ]�w���Ѫ��C  
\end{itemize}


���B�ڭ̦Ҽ{��F�ɧǪ����D�]���O���Y�檺�n�D�^�A�o�N�O������ڭ̷|�ϥΨ�
'sleep 10s' �o�ӱԭz����]�C




\section{�ۤ����C}




\subsection{�n�J}



�{�b�A�A���Ӥw�g���չL ssh �O�_������`�a�u�@�C�p�G�Aslave �ڵ��A�n�J�A�о\Ū
�O���ɡC�]�\�O�ɮרϥ��v���� sshd �A�b�]�w�W�����D�C




\subsection{�Ұ� ppp }



�n�J�� slave �b��A�ð���G
\begin{verbatim}
sudo /usr/sbin/pppd passive  
 
\end{verbatim}

���ɡA�p�G�u�@���`�A���ӷ|�ݨ�@�ǶýX�C���]�A�S���X�{�ýX�A���O sudo �N�O pppd
�����D�C�аѦҡA�O���ɡN{\itshape /etc/ppp/options\/} �N�M {\itshape .ppprc \/}�A���ɮ�
�A�H�K��X�O���өR�O�X�F���D�C���D�ư���A�N 'passive' �o�Ӧr�g�� .ppprc �̡A�M
��A�դ@���C�H���U enter�N'\~{}'�N�M '\^{}Z'�����䪺�覡�A�M���ù��W���ýX�A�~��
�u�@�C�{�b�A�A���ӷ|�ݨ� master ������J���ܲŸ�(prompt)���A�M����� kill \%1
�C�p�G�A�Q���D��h�������h�X�r��(escape character)���������A�аѾ\���վ�(tuning)��
���@�`�C




\subsection{�@��������Ӱʧ@}



���M�A�A�]�i�H�o��

\begin{verbatim}
ssh -l slave polanski sudo /usr/sbin/pppd 
 
\end{verbatim}


�p�G�u�@���`�A���N�|���ۧA�����A�ǰe�@�Ǭݦ��ýX����ơC




\subsection{Pty �����ɥ\��}



�o���A�ڭ̸յۭ��ɤW�����ʧ@�G
\begin{verbatim}
/usr/local/bin/pty-redir /usr/bin/ssh -l slave polanski sudo /usr/sbin/pppd  
 
\end{verbatim}


�n�����y�l�A���O�ܡH�A���Өϥ� ssh �����ɪ��������|�W�١A���F�w�����z�ѡApty-redir
�{���u���\�A�ϥγo�ؤ覡�C�{�b�A�A�|�z�L�o�ӵ{�����o�@�Ӹ˸m�W�١C���]�A�A���o��
�O {\itshape /dev/ttyp0 \/} �C�A�i�H�ϥ� ps �R�O���˵��ثe�����p�C�Ч�M 'p0' �o�Ӹ�
�m�������ԭz�C




\subsection{�o�Ӹ˸m�W���A�|���Ǥ���F��H}



�յ۰���
\begin{verbatim}
/usr/sbin/pppd /dev/ttyp0 local 192.168.0.1:192.168.0.2  
 
\end{verbatim}


�ӫإ߳s�u�C�M��A�˵� ifconfig �R�O����X���G�A�ݬO�_�w�g�إߤF�o�Ӹ˸m�A�M��
�A�ϥ� ping ���ˬd�A�����������C




\subsection{�]�w����}



���F�]�w�D������D�������ѡA��������D���]�n�]�w�C�{�b�A�A���ӯ���q���q���@��
���������W���D���Aping ��䥦���������W���D���C���ۡA�]�w�B�~��������W�h�C�{
�b�A�A�w�g�֦��F VPN �����ҡA�A�i�H�]�w���q��Ӥ��������������s���W�h�C






\section{�վ�}




\subsection{�]�w���վ�}



���p�کһ����A�o�����u�O�ڭӤH�]�w VPN ���Ƨѿ��Ӥw�C�]�w�������������e�A����
�����չL�C����ڴ��չL��A�|�����̥��T���w��A�Φ�����H�i�D�ڡ����O�p��u�@����
�C���ӳ̭��n���Ʊ��j�a�����ʰO�b�ߡAppp �����s�u�|���ϥ� 8-bit�C�ڦۤv�]ı�o ssh
�� pty ���]�w�A�@�w�٦��n�[�j���a��C�b ssh ���]�w���A�ϥΤF���E�ƲŸ�(tilde)��
(\~{}) �r�������h�X�r���C���i�H����δ�w��ݤ������q�T�A�����󪺡��s��Ÿ�-
�E�ƲŸ�(newline-tilde)���h�X���Ǫ��X�{�A�|�ϱo ssh �����J���ܲŸ����Ҧ��Cssh 
�����W���G $<$ �b�j�������t�ΤW�A�Y�]�w���ϥζh�X�r���A�h�N��O�A�ϥΤF tty
�A�]�|�y���q�T��ܪ��z�q�ơC$>$ �o�ӥ\��۹�� ssh ���ﶵ�аO�O '{\itshape -e\/}'
�A�A�]�i�H�b�]�w�ɤ��]�w���C 




\subsection{�W�e�P�w���֭��n}



���׫ظm���󪺵��������A���|���O����ڸ귽�CVPN �|�Y���W�e�M�p�⪺�귽�C�A���ؼ�
���ӬO�p����o��Ĺ�������C�A�i�H�ϥ� '-C' �}���� 'CompressionLevel' �ﶵ�A�ӽվ�
���C�A�]�H���ըϥΥt�@�إ[�K�k�A���O�A�ڨä���ĳ�o�򰵡C�]�Ъ`�N�A�p�G�A�ϥζV��
�����Y���šA�A�ǰe��ƪ��Ӧ^�ɶ��N�V���C�w�ﴣ�ѥ�����������ճ��i�C






\section{���R�����������z�I}



�ڸյۦb���B�����@�U�A�o�ӯS�O���]�w�M VPNs �@�릳���ǩ����������z�I�C���ۦa�w��
�U��o������N���C
\begin{itemize}
\item sudo �{���G�کӻ{�A�ڹL�צa�ϥΤF sudo�C�ڲ`�H�ثe�����M��ϥ� setuid bits
�٦w���CLinux �W���M�S���n���s���������A�O�Ӥ������ƹ�C�u������ۮe POSIX.6 
�зǪ��֤ߥ����o��F$<$ http://www.xarius.demon.co.uk/software/posix6/$>$�C��
�V�|���O�A�ک~�M�z�L sudo �өI�s���� shell ���R�O�Z�{���C��b�V�|�z�F�C�A������
��ĳ��H
\item pppd �{���G���]�|�ϥ� suid root (Ķ��) ������覡�C�A�i�H�z�L�ϥΪ̪� .ppprc
�ӳ]�w���C�d�ߡA���i��|�����w�İ϶W���B��(buffer overrun)�������p�o�͡C�����O
�G�ɥi��a�O�@�A�� slave �b�᪺�w���ʡC
\item ssh �{���G���ߡAssh �b 1.2.20 �H�e���������w�����|�}�C���V�|���O�A�ڭ̪�
�]�w�O�A���ڭ̹� master �b�᪺�w���ʰ��X�F���B�A�۹�a�A�]��u�F slave �b�᪺�w
�������A�ӥB�A�ڭ̨ϥΤF��ӳz�L sudo �Ұʪ��{���A�]�j�}�F���������C���O�]���A��
�F����۰ʳ]�w VPN�A�ڭ̿���� master �ϥΨS���K�X�����p�H�_��(secret key)���C
\item firewall �{���G bastion �D���W��������A�Y�W�h�]�w��������A�N����O�j�}��
�q������������K�����C�ګ�ĳ�j�a�ϥ� IP������(Masquerading)�����޳N�]���ɡA�N��O
���ѳ]�w�����T�A�ҳy�����v�T�]�O�L�����D���^�A�H�ΡA�b VPN ���ɭ��W���Y�檺����
�C
\end{itemize}


Ķ���G 
suid root �O���������ӵ{�����H�A�b���檺���ɷ|���o root ���v���C�䤤�Asuid�]
�]�w�ϥΪ��ѧO�N�X�^�O���]�w�ɮ��ݩʪ��� 11 �Ӧ줸�A��������ɮת��H�A�����ɮת�
�֦��̡C



\end{document}
