OS/LINUX2007. 2. 10. 00:29
반응형

USB Flash Disk 의 기본 화일시스템은 대부분 vfat 를 사용

USB Flash Disk 는 커널에 의해서 SCSI 장치를 이용해서 접근

대부분 /dev/sd* , 하나의 USB Flash Drive 라면 아마도  /dev/sda1 을 사용할것이다

 

* 마운트 : 장치를 사용하기위해서 준비

  mkdir /mnt/usb

  mount -t vfat /dev/sda1 /mnt/usb

이제 USB Flash Disk 에서 바로 복사 이동 삭제를 자유롭게 할수 있을것이다

만일 USB 가 사용하는 장치명을 확인하고 싶다면 dmesg 또는 fdisk -l 을 통해서 아래와 같이 확인할 수 있다


[root@redhatws9 down]# fdisk -l

                                                                            

Disk /dev/sda: 256 MB, 256900608 bytes

16 heads, 32 sectors/track, 979 cylinders

Units = cylinders of 512 * 512 = 262144 bytes

                                                                               

   Device Boot    Start       End    Blocks   Id  System

/dev/sda1             1       979    250574+   6  FAT16


* 언마운트 : 장치사용을 해제

  umount /mnt/usb

 

* USB 드라이브에서 한글 깨짐 현상 복구

  mount -t vfat -o iocharset=cp949 /dev/sda1 /mnt/usb

반응형

'OS > LINUX' 카테고리의 다른 글

Xmanager 접속을 위한 리눅스 설정하기  (0) 2007.03.09
crontab 명령  (0) 2007.02.15
호스트네임 변경  (0) 2006.10.11
아이피 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
Posted by [PineTree]
OS/LINUX2006. 10. 11. 02:10
반응형
 1. HOSTNAME 변경개론

서버를 운영하다보면 불가피하게 HOSTNAME을 변경해야하는 경우가 있다.

win95/98/NT/2000의 경우에는 네트웍설정의 등록정보를 통해서 간단해 해결할 수 있지만, 리눅스의 경우에는 윈도우쪽 보다는 좀 까다로운 것이 사실이다.

먼저, HOSTNAME을 변경하는 방법은 다음과 같이 몇가지가 있다.

  • 방법1 : netcfg 유틸리티를 이용하는 방법
  • 방법3 : setup 유틸리티를 이용하는 방법
  • 방법4 : 직접 명령어로 수작업하는 방법

위의 3가지 방법중 방법1, 방법2는 각각 netcfg, setup파트에서 설명이 되어있으므로 해당파트에서 사용법을 확인하기 바라며, 여기에서는 방법3번으로 HOSTNAME을 변경하는 방법에 대해서 설명할 것이다.

어떤방법이 가장 올바른 방법이라는 것을 판단한다는 것은 매우 어리석은 것이라 생각되며, 단지 서버관리자로서 일을하다보면 유틸리티보다는 직접 명령어를 통해서 작업하는 경우가 많으며 가장 빠른 방법이라고 할 수 있다.

 

HOSTNAME 변경시에 수정해주어야하는 작업관 확인하는 명령어를 먼저 소개하고 넘어가겠다.

  • HOSTNAME 대상파일
    • /etc/sysconfig/network 
    • /etc/HOSTNAME (이파일은 위의 파일에서 읽어와 저장되는 파일임)

2. 현재의 호스트명 확인

hostname이란 명령은 현재의 호스트명을 보여주느 명령어이며, 아래의 예는 현재의 호스트명을 보여준 것이다.



3. 호스트명 변경

호스트명을 변경하는 파일은 "IP Address변경하기"강좌편에서 말씀드린 바와같이 /etc/sysconfig/network에서 변경만 해주고 네트웍환경을 적용하는 스크립트(/etc/rc.d/init.d/network)를 재실행 해주면 끝이다.

www.bsidc.co.kr이던 호스트명을 www.abcd.co.kr로 변경하였다.

그리고, /etc/HOSTNAME 파일을 열어서 또한 변경을 해주었는데, 이 파일은 굳이 변경할필요하가 없다.

왜냐하면, 리눅스가 부팅이 될 때에는 /etc/sysconfig/network 파일에서 HOSTNAME을 읽어와서 이 파일에 저장하기 때문이다.



4. HOSTNAME 적용하기

이제 변경된 HOSTNAME을 적용하기 위해서는 네트웍 재실행 스크립트(/etc/rc.d/init.d/network)를 restart 하든가, 아니면 아래의 예와 같이 시스템을 재부팅하면 된다.



반응형

'OS > LINUX' 카테고리의 다른 글

crontab 명령  (0) 2007.02.15
LINUX usb 인식해서 사용하기  (0) 2007.02.10
아이피 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
원격접속시 한글이 깨질때 | centos  (0) 2006.10.10
Posted by [PineTree]
OS/LINUX2006. 10. 11. 02:07
반응형
1. IP변경개론

서버를 운영하다보면 불가피하게 IP Address를 변경해야하는 경우가 있다.

네트웍의 확장이나 서버이전등으로 인하여 서버관리자라면 한번쯤은 IP를 변경했던 경험이 있을 것이다.

win95/98/NT/2000의 경우에는 네트웍설정의 등록정보를 통해서 간단해 해결할 수 있지만, 리눅스의 경우에는 윈도우쪽 보다는 좀 까다로운 것이 사실이다.

먼저, IP Address를 변경하는 방법은 다음과 같이 몇가지가 있다.

  • 방법1 : netcfg 유틸리티를 이용하는 방법
  • 방법2 : netconfig 유틸리티를 이용하는 방법
  • 방법3 : setup 유틸리티를 이용하는 방법
  • 방법4 : 직접 명령어로 수작업하는 방법

위의 4가지 방법중 방법1, 방법2, 방법3은 각각 netcfg, netconfig, setup파트에서 설명이 되어있으므로 해당파트에서 사용법을 확인하기 바라며, 여기에서는 방법4번으로 IP Address를 변경하는 방법에 대해서 설명할 것이다.

어떤방법이 가장 올바른 방법이라는 것을 판단한다는 것은 매우 어리석은 것이라 생각되며, 단지 서버관리자로서 일을하다보면 유틸리티보다는 직접 명령어를 통해서 작업하는 경우가 많으며 가장 빠른 방법이라고 할 수 있다.

필자또한 IP Address변경하는 작업뿐 아니라 거의 모든 작업을 직접 command를 수행하여 직접하고 있다.

 

작업에 들어가기전에 한가지 더 알아야하는 것이있다 .

IP Address 변경시에 수정해주어야하는 작업관 확인하는 명령어를 먼저 소개하고 넘어가겠다.

  • IP Address 대상파일
    • /etc/sysconfig/network
    • /etc/sysconfig/network-scripts/ifcfg-etho (해당 ethernet inferface)
  • IP Address변경전후 확인하는 명령어
    • ifconfig
    • netstat 또는 route

자, 그럼 서론은 이쯤에서 끝내고 명령어를 통한 수작업으로 IP Address를 변경하는 작업을 해보도록 하자.


2. 변경전 네트웍설정 확인

먼저 아래예와 같이 ifconfig 명령어를 통하여 현재의 네트웍설정을 확인토록하자.

보는 바와같이 현재의 네트웍설정은 다음과 같다.

  • IP Address(host ip address) : 211.220.193.158
  • Broadcast : 211.220.193.159
  • Subnet Mask : 255.255.255.240

현재 IP Address를 211.220.193.158에서 211.220.193.149로 변경하려한다.

 

참고로 ifconfig 명령어와 함께 네트웍관련 설정을 확인할 때에 자주사용하는 명령어가 netstat이라는 명령어이다.

netstat은 서버의 라우팅(routing)경로를 확인할 때에 자주 사용된다.  

참고로 알아두면 좋을 것이며, 자세한 설명은 수퍼유저코리아의 해당파트를 참조바란다.


3. /etc/sysconfig/network 파일수정

현재의 IP Address를 수정하였으므로 이제 본격적으로 IP Address를 변경토록 해보자.

먼저, 앞서 설명드린 바와 같이 /etc/sysconfig/network 파일을 열어서 수정하도록 한다.  

 

수정할 때에는 주로 vi 명령어로 해당파일(/etc/sysconfig/network)을 열어서 확인한다.

/etc/sysconfig/network 파일에는 위의 예를 보는 바와 같이 다음과 같은 설정을 할 수 있다.

  • NETWORKING   : 네트웍여부
  • HOSTNAME : 호스트네임
  • GATEWAYDEV : 게이트웨이 장치명
  • GATEWAY : 게이트웨이 IP Address

여기서는 동일네트웍에서 IP Address만 변경하는 경우이므로 /etc/sysconfig/network 파일에서 변경할 것은 없다.

하지만, 만약 서버이전등으로 인해 네트웍자체가 변경될 경우에는 GATEWAY정보도 수정해 줘야한다.

또한 서버용도변경등으로 인한 호스트네임이 변경될 경우에도 이 파일의 HOSTNAME을 수정해 줘야한다.



4. inferface 장치파일변경(/etc/sysconfig/network-scripts/ifcfg-eth0)

 

다음으로 변경해줘야하는 것은 해당 ethernet interface의 장치파일이다 .

이들 ethernet inferface 장치파일들이 존재하는 위치는 /etc/sysconfig/network-scripts/ 디렉토리이며, 이 디렉토리내에서 변경코자하는 ethernet에 해당하는 장치파일을 수정해주면 된다.

 

앞에서 살펴본대로 현재 IP Address의 변경예로든 리눅스서버는 한 개의 ethernet을 가지고 있으며 당연히 장치명이 eth0가 된다.

따라서 여기서 변경해줘야하는 파일또한 ifcfg-eth0가 된다.

이제 이 파일을 열어서 수정해준후에 뒤에서 설명될 /etc/rc.d/init.d/network restart를 해주거나 시스템을 리부팅하면 된다.

 

아래의 예는 직접 ifcfg-eth0 파일을 열어서 수정해준 예이다.

자세히 살펴보면 IP Address가 211.220.193.158에서 211.220.193.149로 변경해둔 것을 볼 수 있다.

앞서 설명드린 바와같이 만약 서버이전드으로 인해 네트웍전체가 변경될 경우에는 BROADCAST, NETWORK, NETMASK등이 변경될 수 있으므로 유의하기 바란다.

어쨌든 현재 예로든 경우는 동일 네트웍에서 IP Address만 변경되는 경우이므로 단지 호스트(서버)의 IP Address만을 변경하면 그뿐이다.



5. 설정변경 적용

자, 이제 변경된 네트웍설정을 적용하기 위해서 아래 예와 같이 "/etc/rc.d/init.d/network restart"를 수행하여 새로운 IP Address로 사용토록해보자.

이 방법이 싫은 분들이라면 다음과 같은 명령어로 시스템 자체를 리부팅해도 무방하다.

  • reboot
  • shutdown -r now
  • init 5

단지 시스템을 리부팅하기전에 "sync"를통해서 디스크동기화를 시켜주는 것이 안전할 것이다.

참고로, IP Address가 변경이 되면 현재 접속되거나 서비스되던 것들은 모두 중단이 된다는 것쯤은 상식으로 알고 있을 것이다.



6. 변경된 IP Address 확인

 

앞서 했던 방법대로 변경된 정보를 확인해보자.

ifconfig 명령을 통해서 변경된 IP Address를 확인한 것이다.

변경되기 전에는 eth0의 IP Address가 211.220.193.158 이였던 것이 변경후에는 211.220.193.149가 되었음을 확인할 수 있다.

 

라우팅에 관한 정보는 변경하질 않았지만, 습관적으로 네트웍정보를 변경후에는 netstat을 통해서 라우팅정보를 확인하는 것이 좋다.

 


7. 네트웍테스트

자, 이제 마지막으로 변경된 IP Address가 다른 네트웍으로 패킷을 잘 주고받는지를 테스트 해보도록 하자.

아래의 예는 먼저 gateway까지 네트웍이 되는가를 테스트 한후에 다른 네트웍에 IP Address가 아닌 도메인으로 ping 테스트를 한 것이다.

변경된 IP Address로 통신이 잘 이루어짐을 확인하였으므로 이 강좌를 마무리 한다.

관련 질문은 해당 게시판을 통해서 받을 것이며,,이만,..

~~~ 꾸벅  ~~~

 

출처:슈퍼유저코리아

반응형

'OS > LINUX' 카테고리의 다른 글

LINUX usb 인식해서 사용하기  (0) 2007.02.10
호스트네임 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
원격접속시 한글이 깨질때 | centos  (0) 2006.10.10
var/log/audit.d/ full 문제  (0) 2006.10.09
Posted by [PineTree]
OS/LINUX2006. 10. 11. 00:56
반응형

이번에는 랜카드 2개를 묶어 하나의 ip를 부여한 다음, 대역폭을 2배로 사용하는 방법에 대해서 강좌를 쓰겠습니다. 요즘 UTP케이블을 사용한 Giga(1000MB/Sec) 랜카드가 많이 나왔습니다. 테스트 결과 150M/Sec 의 성능정도밖에 내지 못했습니다. 그러나 본 강좌에서 사용되는 bonding는 대역폭의 2배 200M/Sec 가 나왔습니다. 물론 Giga bit 에 맞는 케이블을 사용하지 않았는지는 모르지만, 사용된 케이블은 카테고리 6 이였습니다. 현재는 스위치및 허브가 100M 이고, giga bit은 고가입니다.  많은 분들께 도움이 되었으면 좋겠다는 마음으로 이렇게 강좌를 써 내려갑니다.

1. Bonding 이란?
 여러장의 이더넷 카드를 묶어 하나의 ip를 부여하여 그만큼 대역폭을 확보하는 방법 입니다. 물론 케이블 불량을 대비한 고장대비 방법이라고도 볼  수 있습니다.

2. 준비운동.
 랜카드 2장 (난 100M 짜리 2장을 준비했습니다.. )
 커널에서 : Network device support 에서 Bonding driver support 가 채크되어야 합니다..(RedHat은 기본)

3. /etc/sysconfig/network 파일
echo 'NETWORKING=yes
HOSTNAME=fileserver
GATEWAY=192.168.0.1
GATEDEV=bond0
'>/etc/sysconfig/network

위와같이 그대로 입력하면 설정이 바뀝니다. 물론. 중간에"HOSTNAME=호스트이름" 으로 변경하시기 바랍니다. 그리고 "GATEWAY=게이트웨이아이피" 로설정하시기 바랍니다.

4.bond0 설정
echo 'DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
' > /etc/sysconfig/network-scripts/bond0
 이 부분은 서버의 ip를 셋팅합니다. "IPADDR=서버아이피"를 설정하시고, "NETWORK=네트웍아이피"를 설정하시기 바랍니다.

5. ifcfg-ethXX 설정
echo 'DEVICE=eth0
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
'> /etc/sysconfig/network-scripts/ifcfg-eth0
이 부분은 묶일 물리적 장치를 정합니다. eth0 는 첫번째 랜카드입니다. 위와같이 설정합니다.

echo 'DEVICE=eth1
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
'> /etc/sysconfig/network-scripts/ifcfg-eth1
eth1번 은 2번째 랜카드이며 위와같이 설정합니다.

강좌에서 사용된 이더넷카드는 2개 입니다. 하지만, 그 이상을 사용하시려면, 계속 추가 한 다음, eth2, eth3 계속 설정해 주면 끝납니다. 위와같이.

6. 모듈로 binding driver 을 올렸다면, eth0와 eth1 전에 모듈을 올려야 합니다..
alias bond0 bonding
alias eth0 8139too
alias eth1 8139too

  커널 2.4.XX 에서
 /etc/modules.conf
- 그런다음 insmod 로 모듈을 올려 준다.
insmod bonding

  커널 2.6.XX
 /etc/modprobe.conf
modprobe bonding
## 위와같이 모듈을 인식시켜 줍니다.
ifconfig eth0 up 0.0.0.0
 ifconfig eth1 up 0.0.0.0
## 위 방법은 안될때 하는 방법입니다. (생략했을때 문제 생기면 하시기 바랍니다.)

 ifenslave bond0 eth0
 ifenslave bond0 eth1
위왁같은 명령으로 bond0에 eth0와 eth1을 슬레이브로 등록시킵니다.

7. network 스크립트 재 시작.(꼭 로컬에서 하시기 바랍니다.~~)


8. 삽질의 결론
 1. 단점 : 
            - 같은 스위치에 꽂혀야 한다.
            - 서버가 못따라 주면 생각만큼 성능이 나오지 않는다.
 2. 장점 :
           - 이론상 속도 2배 (또는 그 이상~~)
           - 둘 중에 선 하나 뽑아두 통신 ~~ 잘한다. (리던던시 기능)


이렇게 강좌를 마칩니다. 물론 하나의 간단한 팁이며.. 알고계시면 많은 되리라 생각하고 강좌를 마무리합니다.
혹시 본 강좌에 개선점이 있으면 아래의 메일 주소로 메일 한통 부탁드립니다.

 2005.10.28 : 전현규님의 개선사항으로 아래 내용 추가합니다.
   혹시 부팅할 때 잘 올라오지 않는다면, 아래와 같이 수정해 보시기 바랍니다.
      RedHat 경우, /etc/init.d/network 파일에서,
     # Bring up xDSL and CIPE interfaces 라인 바로 이전에, 
     if [ -x /etc/sysconfig/network-scripts/ifup ]; then 
        echo "Bringing up eth0 and eth1..."
        /etc/sysconfig/network-scripts/ifup eth0
        /etc/sysconfig/network-scripts/ifup eth1
     fi

 

출처:슈퍼유저코리아

반응형

'OS > LINUX' 카테고리의 다른 글

호스트네임 변경  (0) 2006.10.11
아이피 변경  (0) 2006.10.11
원격접속시 한글이 깨질때 | centos  (0) 2006.10.10
var/log/audit.d/ full 문제  (0) 2006.10.09
리눅스 텔넷 설정  (0) 2006.08.08
Posted by [PineTree]
OS/LINUX2006. 10. 10. 22:01
반응형

원격접속시 한글이 깨질때 | centos

#vi /etc/sysconfig/i18n

 

LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

 

/*------------------------------man의 한글 깨짐 추가--------------------------------*/

 

#vi /etc/man.config

 

PAGER          /usr/bin/less -iRs 의 옵션 중에서 대문자 R을 아래와 같이

PAGER       /usr/bin/less -irs 로

 

소문자로 바꿔주면 된다. 두 옵션의 차이는 아래의 설명으로 대신한다.

 

       -r or --raw-control-chars
              Causes "raw" control characters to be displayed.  The default is to  dis-

              play control characters using the caret notation; for example, a control-
              A (octal 001) is displayed as "^A".  Warning: when the -r option is used,
              less cannot keep track of the actual appearance of the screen (since this
              depends on how the screen responds to each type  of  control  character).
              Thus, various display problems may result, such as long lines being split
              in the wrong place.

 

       -R or --RAW-CONTROL-CHARS
              Like -r, but tries to keep track of the screen appearance where possible.
              This  works  only  if the input consists of normal text and possibly some
              ANSI "color" escape sequences, which are sequences of the form:

 

                   ESC [ ... m

 

              where the "..." is zero or more characters other than "m".  For the  pur-
              pose  of  keeping  track of screen appearance, all control characters and
              all ANSI color escape sequences are assumed to not move the cursor.   You
              can  make  less  think  that characters other than "m" can end ANSI color
              escape sequences by setting the environment variable LESSANSIENDCHARS  to
              the list of characters which can end a color escape sequence.

반응형

'OS > LINUX' 카테고리의 다른 글

아이피 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
var/log/audit.d/ full 문제  (0) 2006.10.09
리눅스 텔넷 설정  (0) 2006.08.08
CentOS 한글 에러 수정  (0) 2006.03.30
Posted by [PineTree]
OS/LINUX2006. 10. 9. 20:42
반응형

리눅스 시스템에는 LAUS(Linux Auditing-SubSystem)이 있어서 시스템에서 일어나는 변화를 로깅하는 감사시스템이 존재한다.
로깅 내용은 # aucat 이나 # augrep 으로 확인 할 수 있다.
이 로그는 디폴트로 /var/log/audit.d/ 아래에 bin.0~4 라는 파일에 기록되며 bin.0 부터 bin.4까지 다 쓰여지면 save.* 파일로 보관되고 bin.*을 rotating 해가며 쓰여지게 된다.
따라서 save.* 파일은 시스템에 계속 누적이 되어 결국 파일시스템을 full이 되게 만들어 시스템에 문제를 일으킬 수 있다.
이런 문제를 방지하기 위한 방법으로 LAUS를 아주 내려버리는 방법이 있고, 또는 save.*로 보관되는 것을 안하게 하는 방법이 있다.
물론 save.*파일을 주기적으로 삭제해주는 방법도 있겠지만 auditing 기능은 어느정도 필요 할 수 있으므로 후자를 택해 save.*로 보관되는 것을 막기로 한다.
방법은 아래와 같다.

1. /etc/audit/audit.conf의 내용을 다음과 같이 수정한다.
======================================================================
output {
mode  = bin;
num-files = 4;
file-size = 20M;
file-name = "/var/log/audit.d/bin";
#notify  = "/usr/sbin/audbin -S /var/log/audit.d/save.%u -C"; <--- 주석
notify  = "/bin/true";          <--- 변경
======================================================================
위 커맨드를 실행하지 않고 그냥 true를 LAUS에 리턴하겠다는 의미 같음.

2. 재구동
# service audit restart

반응형
Posted by [PineTree]
OS/LINUX2006. 8. 8. 23:11
반응형

리눅스 telnet  설정하기

 

1. 먼저 telnet 을 설치되어 있는지 확인한다.

[root@angka root]# rpm -qa | grep telnet
telnet-0.17-25
telnet-server-0.17-25
[root@angka root]#

   * 필자는 설치되어 있으며 혹시 설치되어 있지 않으면 yum을 이용하거나
      http://www.rpmfind.net 에서 찾아서 깔면된다.

 

2. 설치가 되어있거나 혹은 upgrade를 하고 싶으면 yum을 이용한다.
  
[root@angka root]# yum -y upgrade telnet-server
Gathering header information file(s) from server(s)
Server: Red Hat Linux 9 - i386 - freshrpms
Server: Red Hat Linux 9 - i386 - os
Server: Red Hat Linux 9 - i386 - updates
Finding updated packages
Downloading needed headers
Finding obsoleted packages
No Upgrades available for telnet-server.
[root@angka root]#

   * 필자의 버젼이 redhat 9에서는 가장 최근의 버젼임을 yum을 통해서 알 수 있다.

 

3. /etc/xinetd.c/telnet 을 편집하여 telnet 을 사용가능하도록 설정한다.

# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable = yes                <-- no로 바꾼다.
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
}

 

4. xinetd 데몬을 재실행해서 설정이 작동하도록 해준다.

[root@angka xinetd.d]# /etc/init.d/xinetd restart
xinetd 를 정지함: [  확인  ]
xinetd (을)를 시작합니다: [  확인  ]
[root@angka xinetd.d]#

 

5. telnet이 잘 작동하는지 확인한다.
[root@angka xinetd.d]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Red Hat Linux release 9 (Shrike)
Kernel 2.4.20-31.9 on an i686
login: angka
Password:
[angka@angka angka]$ logname
angka
[angka@angka angka]$

 

6. 만약 위와 같이 telnet 서비스가 되지 않는다면 방화벽에서 telnet 서비스를 열어주어야 한다.
[root@angka xinetd.d]# vi /etc/sysconfig/iptables
  
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
#       firewall; such entries will *not* be listed here.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]
-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 21 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 23 --syn -j ACCEPT <- 추가
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 137 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m tcp --dport 137 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth1 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT
#-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 192.168.10.0/24 -d 0/0 --dport 2049 -i eth0 -j ACCEPT
COMMIT
~

 그리고 방화벽서비스를 재실행한다.

[root@angka root]# /etc/init.d/iptables restart

[root@angka root]#

 

7. telnet 서비스는 root 사용자로 로그인 할 수 없도록 되어 있다(보안상)
   그래도 root 사용자로 로그인하고 싶으면 /etc/securetty 파일을 다른 이름으로 바꾸면 된다
.
[root@angka xinetd.d]# mv /etc/securetty /etc/securetty.back
[root@angka xinetd.d]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Red Hat Linux release 9 (Shrike)
Kernel 2.4.20-31.9 on an i686
login: root
Password:
Last login: Sat Jul 29 23:18:12 from 192.168.10.100
You have new mail.
[root@angka root]#

 

8. 서버 재부팅 시에도 telnet이 잘 작동하도록 ntsysv에서 telnet 데몬을 check 해준다.

[root@angka root]# ntsysv
                                                                                       
   


반응형
Posted by [PineTree]
OS/LINUX2006. 3. 30. 08:34
반응형

회사에서 내부적인 서비스를 위해 CentOS 4.2를 설치했는데, 한글이 깨지는 현상이 발생했다.

CentOS 3.0에서는 잘 나왔는데, 귀찮게시리 고쳐야 할 상황이다.

 

그래서 수정했다.

 

/etc/sysconfig/i18n 의 내용을 아래와 같이 고치면 된다.

 

LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

 

앞으로도 몇가지 보안 및 기타 설정들을 해야 하는데, 간간히 정리나 해봐야겠다.

 

/*------------------------------man의 한글 깨짐 추가--------------------------------*/

man명령어에서도 한글이 깨지는 현상이 있었다.--;

그래서 수정했다.

 

/etc/man.config 에서

 

PAGER          /usr/bin/less -iRs 의 옵션 중에서 대문자 R을 아래와 같이

PAGER       /usr/bin/less -irs

 

소문자로 바꿔주면 된다. 두 옵션의 차이는 아래의 설명으로 대신한다.

 

       -r or --raw-control-chars
              Causes "raw" control characters to be displayed.  The default is to  dis-

              play control characters using the caret notation; for example, a control-
              A (octal 001) is displayed as "^A".  Warning: when the -r option is used,
              less cannot keep track of the actual appearance of the screen (since this
              depends on how the screen responds to each type  of  control  character).
              Thus, various display problems may result, such as long lines being split
              in the wrong place.

 

       -R or --RAW-CONTROL-CHARS
              Like -r, but tries to keep track of the screen appearance where possible.
              This  works  only  if the input consists of normal text and possibly some
              ANSI "color" escape sequences, which are sequences of the form:

 

                   ESC [ ... m

 

              where the "..." is zero or more characters other than "m".  For the  pur-
              pose  of  keeping  track of screen appearance, all control characters and
              all ANSI color escape sequences are assumed to not move the cursor.   You
              can  make  less  think  that characters other than "m" can end ANSI color
              escape sequences by setting the environment variable LESSANSIENDCHARS  to
              the list of characters which can end a color escape sequence.

 

 

 


반응형

'OS > LINUX' 카테고리의 다른 글

var/log/audit.d/ full 문제  (0) 2006.10.09
리눅스 텔넷 설정  (0) 2006.08.08
[펌] / 화일 시스템이 full 되었을 경우 조치 방법  (0) 2005.12.22
[펌] NFS(Network File System) 사용방법  (0) 2005.02.15
LINUX : NFS 설정하기.  (0) 2005.02.15
Posted by [PineTree]
OS/LINUX2005. 12. 22. 23:06
반응형

/ (root) 화일시스템이 full되었을 경우에 다음에 열거한 순서대로 화일시스템을 점검한다.
1. / 화일시스템에 사용자가 임의로 만들어 준 디렉토리가 있는면 정리한다.

2. /dev 디렉토리 밑에 일반화일이 있는지 조사한다.


# find /dev -type f -exec ls -l {} \; 일반화일이 있을 경우, 모두 지우면 된다. 특히 테이프에 백업을 받을 경우에 사용자가 디바이스명을 잘못 지정하여, 테이프에 백업되지 않고 화일에 저장하는 경우가 있다.

3. 시스템에 있는 core 화일을 제거한다. core 화일을 찾아 보려면 다음과 같은 명령어를 사용한다.


# find / -name core -print core 화일을 찾아서 자동으로 지우려면 다음과 같은 명령어를 실행한다.
# find / -name core -exec rm {} \; -print

4. /var가 root 화일 시스템이 있을 경우, /var 디렉토리 밑을 조사한다.
# du -sk /var/* | sort -nr 이 명령어를 실행하면 /var 밑에 있는 디렉토리 별로 그 서브 디렉토리까지 포함하여 KB 단위의 크기를 출력한다. 거기에서 사이즈가 큰 디렉토리에 대하여 조사한다.
정상적인 시스템에 주로 문제가 될 만한 디렉토리는 다음과 같다.


/var/adm
/var/mail
/var/log
/var/preserve
/var/spool


4.1 /var/adm /var/adm 디렉토리에는 시스템이 운용중이 발생하는 메세지나 기타 정보들이 누적 보관된다. 이 디렉토리에 큰 화일이 있으면 정리한다. messmages.0, messages.1, ... 이러한 화일이 있으면 그냥 지워도 상관없다. messages 화일의 크기가 너무 크면
" # cp /dev/null messages " 명령어를 사용하여 화일 크기를 0으로 만들 수 있다. 이 화일은 시스템에서 발생되는 메세지를 보관하는 화일이다. wtmp 또는 wtmpx 화일의 크기가 너무 크면 다음과 같은 명령어를 실행하여 그 크기를 0으로 만들 수 있다. 이 화일에는 시스템에 접속한 사용자에 대한 정보를 가지고 있는 화일이다.


# cp /dev/null wtmp
# cp /dev/null wtmpx 만일 pacct이 있으면 그 화일의 크기를 다음과 같은 명령어를 사용하여 크기를 0으로 만들 수 있다. 이 화일은 accounting 정보를 가지고 있는 화일이다.
# cp /dev/null pacct pacct1, pacct2, ... 등등의 화일이 있으면 그냥 지우면 된다. 그외에도 사이즈가 큰 화일을 알아서 정리한다.


4.2 /var/mail /var/mail 디렉토리에는 메일 데이타가 보관되는 곳이다. 이 디렉토리에 사이즈가 큰 화일이 있으면, 해당 사용자에게 그 메일을 정리하도록 한다.


4.3 기타 디렉토리에 대해서도 조사하여 불필요하게 사이즈가 큰 화일 있을 경우 알아서 정리한다. 단 화일을 지울 때, 그 화일이 어떤 화일인지 숙지한 후에 지울 것인가 아닌가를 결정한다.

5. / 화일 시스템에 있는 1 MB 이상되는 화일을 조사하여, 화일 크기순으로 sort하여 그 내용을 조사한다.


# find / -mount -size +1024k -ls > /tmp/find.list # sort -nr +6 /tmp/find.list > /tmp/find.list.s find.list.s 화일에서 비정상적인 큰 화일이 있는지 조사한다.
 

반응형

'OS > LINUX' 카테고리의 다른 글

리눅스 텔넷 설정  (0) 2006.08.08
CentOS 한글 에러 수정  (0) 2006.03.30
[펌] NFS(Network File System) 사용방법  (0) 2005.02.15
LINUX : NFS 설정하기.  (0) 2005.02.15
[펌] NFS설정하기 (Linux -&gt; HPUX)  (0) 2005.02.15
Posted by [PineTree]
OS/LINUX2005. 2. 15. 01:00
반응형

[출처:http://www.linuxcenter.or.kr]

1. 개요

1.1 개 념

NFS(Network File System)란 랜 등 정보 통신 네트워크에 접속되어 있는 다른 컴퓨터에 있는 파일이나 파일 시스템을 공유하기 위한 분산 파일 공유 시스템 소프트웨어로 정의되어 있다. 1985년에 미국의 선 마이크로시스템즈사가 개발하였는데, 그 유용성 때문에 많은 시스템에서 이용할 수 있어 업계 표준과 같이 되어 있다. NFS는 개발사인 선 마이크로시스템즈사의 등록 상표이다.

현재의 컴퓨팅 환경은 많은 사용자들이 네트워크와 접속되어 있으며, 이에 따른 파일시스템의 이용 필요성이 급증하고 있다. 그러므로 NFS를 사용하여 서버를 구축하고 이를 적절히 활용하여 가격이 저렴해진 저장공간을 활용하고 있다. 하지만 이 서비스 자체는 보안에 문제의 소지가 있으므로 제한적인 용도로 사용하기를 바란다.

(NFS)은 네트워크를 통해 파일을 공유할 수 있도록 만들어진 프로토콜이다. NFS는 하드웨어, 운영체제 또는 네트워크 구조가 달라도 파일을 공유할 수 있도록 고안되었으며, 파일공유 등을 비롯해 다른 부가기능을 제공한다. 그러나 서비스 자체의 보안 문제과 공유 파일의 보안 문제가 발생할 소지가 있으며, 특히 다른 시스템이 재부팅을 하거나 꺼지게 되면 다른 컴퓨터에 오류가 생기거나 심지어 멈춰버릴 수 있는 단점을 갖기 때문에 제한적인 용도로 사용된다. 사용하는 프로토콜은 NLM(Network Lock Manager)과 NSM(Network Status Monitor)이다.


2. 설정

2.1 설치 전 준비사항

NFS 서버를 운영하려면 가장 먼저 커널레벨에서 NFS 지원 옵션이 선택되어야 한다.

 

Filesystems -> Network File System -> NFS server support(NEW)

이 옵션을 확인하기 위해서는 다음의 옵션이 선택되어야 한다.

 

Code maturity level options

-> Prompt for development and/or incomplete code/drivers 

이 기능 역시 모듈 혹은 커널 내부에 정적으로 설정할 수 있다. 이러한 옵션을 선택하고 정상적으로 커널 컴파일이 이루어졌다면 새로 컴파일한 커널을 기반으로 재부팅 후 데몬을 설정한다.

NFS 데몬을 설정하기 전에 포트맵(portmap)이라는 프로그램이 필요한데 이것은 NFS의 독특한 서비스 구성 때문이다. 일반적인 서버의 경우 데몬이 특정 포트로 신호가 들어오는가를 대기하고 있다가 신호가 들어오면 시스템이 응답하는데 반하여 NFS의 경우에는 포트맵이라는 프로그램이 포트 111번에서 대기하고 있다가 신호가 오면 데몬을 호출하여 연결을 시작하기 때문에 NFS를 설치하기 전에 반드시 포트맵을 설치해야 한다.

2.1 설정 파일

(1) /etc/hosts 

원할한 시스템 사용을 위하여 /etc/hosts에 NFS를 사용할 각 시스템의 항목을 등록해 주는 것이 좋다.

[root@ksw /root]# vi /etc/hosts

# Do not remove the following line, or various programs 

# that require network functionality will fail. 

127.0.0.1             nfs localhost.localdomain        localhost 

218.49.223.155               nfs linuxman.localdomain        linuxman 

218.49.223.154               client ksw.localdomain 

(2) /etc/exports

이 파일은 NFS가 소유 파티션의 어느 부분을 외부로부터 액세스 허용할 것인지를 정의한다. 이 파일의 정의는 다음과 같이 진행한다. 현재 클라이언트에게 임의의 1개 디렉토리를 읽기/쓰기 권한으로 부여하고 싶다면 다음과 같은 형식으로 설정한다. 이때 /home 디렉토리 밑에 test라는 디렉토리를 생성해야 한다.

 

# /etc/exports

/home/test 218.49.223.154(rw,no_root_squash) 

기본적으로는 /etc/exports 파일은 생성되어 있지만 내용은 전혀 없기 때문에 원하는 형식으로 설정해야 한다. #으로 시작하는 부분은 주석으로 무시된다. 만약 여러 개의 클라이언트에게 파일 공유를 설정하려면 다음과 같이 한다.

 

# /etc/exports

/home/test 218.49.223.154(rw,no_root_squash) linuxer(rw,no_root_squash) 

sinyoung(ro,no_root_squash) www.linuxcenter.or.kr(rw,no_root_squash)  

이때 스페이스(space)로 서로 다른 클라이언트를 지정하면 된다. 또한 로컬로 연결된 곳외의 원격지는 도메인명이나 IP주소만 적어주면 똑같이 사용할 수 있다.

문법은 매우 간단한데 개략적으로 살펴보면 다음과 같다. 가장 앞부분에 지정하는 것이 제공할 디렉토리이고 그 다음에 위치하는 것이 접근을 허용할 호스트의 이름 혹은 인터넷 주소이다. 이 주소 부분은 직접 IP를 지정하여 사용하거나 도메인 이름을 사용할 수도 있다. 마지막으로 ( ) 안에 들어 있는 부분은 옵션이며, 그 내용은 다음 표와 같다. 이때, 각각의 옵션은 NFS의 버전에 따라 기본값이 약간씩 다르기 때문에 유의하기 바란다.

 

옵 션

기        능

rw/ro

rw는 읽기/쓰기를 가능하게 하는 옵션이며, ro는 읽기 전용으로 설정하는 옵션이다.

root_squash

모든 클라이언트는 루트(uid/gid=0)가 부여한 익명 사용자 UID/GID로 접근하게 된다. 기본값으로 적용되어 있으며, 클라이언트상에서 루트의 권한을 가지고 있는 사용자라 하더라도 권한의 변경이 되지 않는다. 일반적으로는 원격 루트가 시스템을 관리할 수 있도록, no_root_squash 옵션을 사용하는 것이 일반적이다.

squash_uid

접속에 사용될 특정한 uid를 설정한다.

squash_gid

접속에 사용될 특정한 gid를 설정한다.

all_squash

이 옵션을 사용하게 되면 익명 uid,gid로 전환한다.

noaccess

하위 디렉토리에서 몇몇 디렉토리를 제외하고자 할 때 사용되는옵션이다.

link_relative

모든 심볼릭 링크를 변환한다.


3. 실행

3.1 데몬 실행

파일 설정이 모두 완료되었다면 이를 적용하기 위해 포트맵 데몬과 NFS 데몬을 재구동해야 한다.

 

[root@ksw /root]# /etc/rc.d/init.d/portmap restart

[root@ksw /root]# /etc/rc.d/init.d/nfs restart 

3.2 클라이언트 실행

(1) 클라이언트에서 마운트

클라이언트 개념에서는 NFS를 이용하기 위한 다른 동작은 없으며, 접근하고자 하는 서버의 하드가 자신의 시스템에 부착될 수 있도록만 하면 된다. 즉 유닉스나 리눅스 시스템의 모든 장치는 파일로 인식되기 때문에 마운트를 해야 한다. 그러나 마운트를 위한 서버 시스템에서 클라이언트에게 NFS 서비스 디렉토리를 허용하지 않는다면 클라이언트는 NFS를 이용할 수 없다. 만약 이런 제한 조건이 없다면 클라이언트는 단지 마운트만 하면 손쉽게 NFS를 이용할 수 있다.

(2) 마운트

클라이언트에서도 앞에서 수행하였던 커널에서의 NFS 클라이언트 지원 옵션이 지원된다는 전제로 설명하도록 하겠다. 클라이언트에서는 아주 간단히 사용할 수 있는데, 다음과 같은 명령을 루트의 권한으로 입력한다.

 

[root@ksw /root]# mount -t nfs -o timeo=10 218.49.223.155:/home/test /mnt/test

위의 명령을 사용하면 /mnt/test 디렉토리에 원격서버(218.49.223.155)의 /home/test 디렉토리가 마운트된다. 위의 옵션을 개별적으로 살펴보면 -t는 파일시스템의 형식이 nfs라는 것을 알려주는 옵션이고, -o 는 timeout 값을 지정하는 옵션이다. NFS는 네트워크를 기반으로 파일시스템을 제공하는 서비스이기 때문에, 네트워크의 상황이 나쁠 경우 무작정 기다린다면 네트워크의 장애를 일으킬 수 있다. 따라서 이러한 옵션 값 설정을 통해 조절한다.

NFS에 관련된 마운트 명령의 옵션을 간단히 살펴보면 다음과 같다.


1) rsize=n

NFS 서버로부터 읽어들이는 바이트 수를 지정한다. 기본값은 커널에 따라 다른데, 기본값은 1024 바이트이다.

2) wsize=n

NFS 서버에 쓰기를 할 때 사용하는 바이트 수를 정한다. 기본값은 커널에 따라 다른데 기본값은 1024 바이트이다.

3) timeo=n

RPC(Remote Procedure Call) 타임아웃이 발생한 이후 첫번째 재전송 요구를 보낼 때 사용되는 시간으로서, 1/10 초 단위이다. 기본값은 0.7 초이다. 첫 번째 타임아웃이 생기고 나서는 타임아웃 시간의 최대치인 60초에 이르거나 너무 많은 재전송 요구가 발생될 때까지 타임아웃 시간이 2 배로 변화한다. 이것은 네트워크 트래픽을 감소시키기 위한 방법으로 네트워크 속도가 느리거나 서버 자체가 느린 경우나 여러 개의 라우터와 게이트웨이를 경우할 경우에는 마운트 당시 타임아웃 시간을 늘려주는 것이 좋다.

4) retrans=n

타임아웃을 발생시키는 재전송 횟수를 설정한다. 기본값은 3번의 타임아웃으로 타임아웃이 일어나면 파일작업이 중지되거나 콘솔 상에 "server not responding"이라는 메시지가 출력된다.

5) acregmin=n

서버에게 최신 정보를 요청하기에 앞서 일반 파일 속성이 임시로 저장되어야 할 최소값을 설정한다. 기본값은 3초이다.

6) acregmax=n

서버에게 최신 정보를 요청하기에 앞서 일반 파일 속성이 임시로 저장되어야 할 최대값을 설정한다. 기본값은 60초이다.

7) acdirmin=n

서버에게 최신 정보를 요청하기에 앞서 디렉토리의 속성이 임시로 저장되어야 할 최소값을 설정한다. 기본값은 30초이다.

8) acdirmax=n

서버에게 최신 정보를 요청하기에 앞서 디렉토리의 속성이 임시로 저장되어야 할 최대값을 설정한다. 기본값은 60초이다.

9) actimeo=n

이 값을 다음 acregmin, acregmax, acdirmin와 acdirmax에 똑같이 적용한다. 기본값은 없다.

10) retry=n

백그라운드에서 진행중인 NFS 마운트 작업이 포기될 때까지 실행할 횟수를 설정한다. 기본값은 10000 번이다.

11) namlen=n

NFS 서버가 RPC 마운트 프로토콜의 버전 2를 지원하지 않을 때 원격 파일시스템에서 지원되는 파일명의 길이를 명시한다. POSIX pathconf 함수를 지원하기 위해 사용된다. 기본값은 255 개의 문자이다.

12) port=n

NFS 서버와 연결할 수 있는 포트번호를 설정한다. 만약 0(기본값)이라면 원격 호스트의 포트맵에게 질의하여 알아내도록 한다. 만약 포트맵에 NFS 데몬이 등록되어 있지 않은 경우에는 2049라는 표준 NFS 포트번호가 사용된다.

12) mountport=n

mountd 포트번호를 지정한다.

13) mounthost=name

mountd를 실행중인 호스트 이름을 설정한다.

14) mountprog=n

원격 호스트의 마운트 데몬과 접속하기 위해 사용할 수 있는 별도의 RPC 프로그램 번호를 설정한다. 만약 여러 개의 NFS 서버를 운영하고 있을 때 사용한다. 기본값은 표준 RPC 마운트 데몬 프로그램 번호인 100005이다.

15) mountvers=n

원격 호스트의 마운트 데몬과 접속하기 위해 사용하는 별도의 RPC 버전 번호를 명시한다. NFS 서버를 여러 개 운영하고 있을 때 사용한다. 기본값은 버전 1이다.

16) nfsprog=n

원격 호스트의 NFS 데몬과 접속하기 위해 사용하는 별도의 RPC 프로그램 번호를 설정한다. NFS 서버를 여러 개 운영하고 있을 때 사용한다. 기본값은 표준 RPC NFS 데몬 프로그램 번호인 100003이다.

17) nfsvers=n

원격 호스트의 NFS 데몬과 접속하기 위해 사용하는 별도의 RPC 버전 번호를 설정한다. NFS 서버를 여러 개 운영하고 있을 때 사용한다. 기본값은 버전 2이다.

18) bg

첫번째 NFS 마운트 시도가 타임아웃 되면 백그라운드에서 실행을 계속한다. 기본값은 fg로 설정되어 있다.

19) fg

첫번째 NFS 마운트 시도가 타임아웃 되면 그 즉시 포기해 버린다. 기본값이다.

20) posix

POSIX 규칙을 사용하여 NFS 파일시스템을 마운트한다. 파일 이름의 최대 길이에 대하여 POSIX pathconf 함수를 제대로 지원하기 위해 사용된다. 원격 호스트는 RPC 마운트 프로토콜 버전 2를 지원해야 한다.

21) nocto

파일이 생성될 때 새로운 속성을 가져오지 않도록 한다.

22) noac

모든 속성에 대한 캐시를 해제한다. 서버 효율을 떨어뜨리지만 두 개의 다른 NFS 클라이언트로 하여금 서버상의 공통 파일시스템에 쓰기작업을 할 때 효율이 좋아진다.

23) tcp

NFS 파일시스템을 기본값인 UDP가 아니라 TCP 프로토콜을 사용하여 마운트한다. 대부분의 NFS 서버는 오직 UDP만을 지원한다.

24) udp

NFS 파일시스템을 UDP 프로토콜로 마운트한다. 기본값이다.

수치값을 동반하지 않는 단독 옵션들은 no를 앞에 붙이는 형태로 사용할 수 있다. 예를 들어 nointr이라는 옵션은 파일작업을 가로챌 수 없도록 한다.

(3) 자동 마운트

만약, 특정한 사용자에게 임의의 디렉토리에 대한 공유를 허용하고자 한다면 서버 상의 설정파일인 /etc/exports를 다음과 같이 설정한다. 즉, 서버 상의 /home/ksw 디렉토리를 ksw라는 사용자의 /mnt/ksw 디렉토리에서 사용하도록 설정하는 것으로 이때 ksw라는 사용자의 uid와 gid는 각각 501이라고 가정한다.

 

# /etc/exports

/home/ksw 192.168.1.2(rw,no_root_squash,squash_uid=501,squash_gid=501) 

클라이언트가 부팅할 때마다 자동적으로 이러한 동작을 수행하도록 하고 싶다면 /etc/fstab에 다음 항목을 추가한다.

 

/192.168.1.13:/home/ksw /mnt/ksw nfs rw,squash_uid=501,squash_gid=501 1 1

이제 클라이언트가 구동될 때마다 자연스럽게 /mnt/ksw에 원격 디렉토리가 마운트된다.


4. 유틸리티

4.1 showmount

mount 데몬에 NFS 서버에 대해 질의하여 사용중인 상태를 표시하는 명령어로 옵션없이 사용하면, 해당 호스트에 접속한 사용자를 볼 수 있다. showmount는 사용자를 기준으로 정렬되어 출력된다. 옵션은 다음과 같다.

 

옵 션

기        능

-a, --all

클라이언트의 호스트 이름과 마운트된 디렉토리를 호스트:디렉토리 포맷으로 출력

-d, --directories

클라이언트에서 사용하는 디렉토리 이름만을 출력

-e, --exports

NFS 서버의 export 항목의 리스트를 출력

-h, --help

간단한 도움말을 출력

-v, --version

현재 사용중인 showmount의 버전 정보를 출력

--no-headers

출력에서 요약정보를 생략하고 출력

4.2 nfsstat

NFS 서버와 클라이언트의 동작상태를 보여주는 유틸리티이다. 옵션은 다음과 같다.

 

옵 션

기        능

-c

클라이언트의 상태만을 출력

-s

서버측의 상태만을 출력

-W

출력을 조정하는 옵션으로 일반적으로 -c -s와 함께 사용

-w

일정한 지연시간을 갖고 nfs서버와 클라이언트의 상태 출력

4.2 nhfsstone

NFS를 벤치마킹하기 위한 프로그램으로 시간당 부하 수, 전송율, 실패율 등의 NFS와 관련된 데이터를 제공한다. 이 프로그램은 NFS를 벤치마킹하기 위해 만들어진 프로그램이기 때문에 다른 종류의 파일시스템에서는 적용할 수 없다. 옵션은 다음과 같다.

 

옵 션

기        능

-v

자세한 정보 출력

-t

실행시간에 대한 초단위의 설정

-c

NFS에 발생시킬 요청의 총 개수

-l

초당 NFS에 호출을 발생시킬 부하의 개수(기본값은 30)

5. 보안

NFS를 이용해 외부에 있는 하드디스크를 자신의 하드디스크처럼 사용할 수 있다는 것은 매우 편리한 일이다. 그러나 NFS가 네트워크를 기반으로 만들어졌기 때문에 보안적으로도 치명적인 부분을 내재하고 있다.

따라서 NFS는 서버는 클라이언트와 신뢰를 갖고 구축해야 한다. 만약 외부 침입자가 서버의 exports 파일을 볼 경우, 침입자는 자신의 머신을 NFS로 마운트하여 정보를 빼내갈 수 있다. 이런 문제를 봉쇄하기 위해 위에서 설명한 여러 옵션들을 적절하게 설정해야 한다. 일단 침입자가 마운트에 성공하면 침입자는 고의적으로 용량이 큰 파일을 빼가거나 넣음으로써 서버를 비롯한 클라이언트까지 네트워크에 부하를 증가시켜 전체 네트워크를 다운시킬 수도 있다. 관리자는 이러한 문제가 일어나지 않도록 exports 파일을 잘 관리해야 한다.

기본적으로 TCP Wrapper를 이용하는데 hosts.deny에 rpc.mountd와 portmap을 모두 금지시키고 hosts.allow에 공유를 허용할 호스트를 입력하여 최소한의 보안기능을 유지한다.

반응형
Posted by [PineTree]