리눅스 & 솔라리스 NFS 설정

Linux & Solaris 2009.08.04 05:32 posted by JP™

1. 서버 /etc/exports 파일 설정
  share-directory   client1(options,,,) client2(options,,,)

  - share-directory  : 공유할 디렉토리명
  - client1      : 공유 디렉토리에 접근할수 있도록 허용된 호스트들
  - options      : 접근 권한설정
    + ro : 클라이언트는 공유 디렉토리에 대해 읽기만 가능하다,
    + rw : 클라이언트는 공유 디렉토리에 대해 읽기/쓰기가 가능하다.
    + no_root_squash  : 클라이언트의 root는 서버의 root와 같은 권한을 가진다.
    + No_subtree_check : 공유된 디렉토리내에 있는 서브 디렉토리들을 공유에서 제외 시키는 경우 설정

  #vi /etc/exports
  /fileserver/images 192.168.1.211(rw) 192.168.1.212(ro)
 
  ※ 폴더 권한은 707로 준다.
  ※ Cent 5.2  “Permission denied“ 에러 발생시 insecure 옵션 추가

 
2. NFS 서버 데몬 구동

  #/etc/init.d/portmap start
  #/etc/init.d/nfs start

  #/usr/sbin/exportfs -ar : 파일이 커널에 적용되도록 한다.
  #/usr/sbin/exportfs -v : 현재 커널에서 알고 있는 익스포트 리스트를 출력한다
  #/usr/sbin/nfsstat   : NFS 상태 정보를 출력한다.

 


3. NFS 클라이언트 마운트

 ※ 솔라리스10 은 NFS 버젼 때문에 타기종 OS가 서버인 NFS 가 마운트 되지 않는 경우가 있다
   이때
    vi /etc/default/nfs 에서
    #NFS_SERVER_VERSMAX=4 값을 NFS_SERVER_VERSMAX=3 로
    #NFS_CLIENT_VERSMAX=4 값을 NFS_CLIENT_VERSMAX=3 로 바꿔주고 실행 하면 된다.


  #/etc/init.d/nfslock start : 데몬시작
 
  * 수동마운트
  리 눅 스 : #mount -t nfs 192.168.1.220:/fileserver/images/ /images
  솔라리스 : #mount -f nfs 192.168.1.220:/fileserver/images/ /images
   
  * 마운트 실행시 사용할수 있는 옵션들
    -o timeo=10  : NFS 서버와 연결이 끊어진 경우 timeo에서 지정한시간(1/10초단위) 기다렸다가 경고 메시지를 발생
    -o rsize=1024 wsize=1024  : 읽고/쓰기 버퍼의 크기를 설정한다.(1024KB=1M)
    -o soft    :  remote mount를 실행할 때 성공하지 못하면 timeo 까지만 retry 후 에러 메시지를 발생하고 종료
    -o hard    :  remote mount가 성공할 때 까지 무한시 재시도한다. (디폴트값이다)
    -o bg     :  첫번째 마운트 시도가 실패인경우 백그라운드로 계속 마운트를 재시도한다.


  * 부팅시 자동마운트(리눅스)
  #vi /etc/fstab
  192.168.1.220:/fileserver/images/ /images nfs defaults
 
 
  * 부팅시 자동마운트(솔라리스)
  #vi /etc/vfstab
  192.168.1.220:/fileserver/images/ - /images nfs - yes soft,intr,bg
 
  * 설정후 마운트
  #mount /images
 
 
 
  * 마운트 해제
  umount /images
 
 ※ umount: /images : device is busy 가 뜰경우

   fuser -k /images 후 umount /images 실행

 

 

*NFS 서버 방화벽 설정

#vi /etc/sysconfig/nfs 수정

STATD_PORT=4001
LOCKD_TCPPORT=4002
LOCKD_UDPPORT=4002
MOUNTD_PORT=4003

 

# vi /etc/services
rquotad  4004/tcp  # rpc.rquotad tcp port
rquotad  4004/upd  # rpc.rquotad udp port


#service nfs restart
#service nfslock restart


#포트정보 확인

#/usr/sbin/rpcinfo -p

100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 4002 nlockmgr
100021 3 udp 4002 nlockmgr
100021 4 udp 4002 nlockmgr
100021 1 tcp 4002 nlockmgr
100021 3 tcp 4002 nlockmgr
100021 4 tcp 4002 nlockmgr
100005 1 udp 4003 mountd
100005 1 tcp 4003 mountd
100005 2 udp 4003 mountd
100005 2 tcp 4003 mountd
100005 3 udp 4003 mountd
100005 3 tcp 4003 mountd
100024 1 udp 4000 status
100024 1 tcp 4000 status


#vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4003 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4004 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4003 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4004 -j ACCEPT


포트 추가

#/sbin/service iptables restart

 

마운트가 정상적이지 않을겨우

daemon rpc.lockd -p 4001


  1. Commented by at 2017.03.14 10:24

    비밀댓글입니다

디스크 쿼타 지정

Linux & Solaris 2009.08.01 21:36 posted by JP™


디스크 쿼타
  ; 사용자 디스크 할당 제한 (block , 파일갯수)
 
 
 
 
1. 커널지원여부
 
2. fstab 옵션추가 (usrquota,grpquota) : # vi /etc/fstab
 
3. remount (umount , mount) : # mount -o remount /home
 
4. 데이터베이스 파일생성(quota.user , quota.group) :
  # touch quota.user
  # chmod go= quota.user
  # quotacheck -avum   
  # convertquota -u /home    
 
5. 사용자마다 적용수치 기록 : # edquota test1   
  # repquota -au
  

 

 

(예제)
 
# vi /etc/fstab    -- fstab 옵션 추가 입력 ( usrquota) , 그룹은 (grpquota)
 
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                   /dev/pts               devpts gid=5,mode=620  0 0
LABEL=/home             /home                   ext3    defaults,usrquota        1 2
LABEL=/opt              /opt                    ext3    defaults        1 2
none                    /proc                   proc    defaults        0 0
none                    /dev/shm                tmpfs   defaults        0 0
LABEL=/usr              /usr                    ext3    defaults        1 2
/dev/hda6               swap                    swap    defaults        0 0
/dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 0
# /dev/cdrom          /opt/cdrom       udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu 0 0

 
 
 
# mount -o remount /home  -- 리마운트

 
 
[root@h179 patch]# mount
/dev/hda3 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
noneon/dev/ptstypedevpts(rw,gid=5,mode=620)
/dev/hda8 on /home type ext3 (rw,usrquota)
none on /dev/shm type tmpfs (rw)
/dev/hda5 on /usr type ext3 (rw)
/dev/hda2 on /boot type ext3 (rw)
/dev/hda6 on /opt type ext3 (rw)
 
 
 
[root@h179 patch]# cd ..
[root@h179 home]# touch quota.user   -- /home 으로 와서 quota.usr 파일 생성 ( 그룹은 quota.group)
 
 
 
 
[root@h179 home]# chmod go= quota.user   -- go 의 권한을 모두 뺀다 (다른 유저들이 파일내용을 볼수없도록 하기위해)
[root@h179 home]# ls -al quota.user
-rw-------    1 root     root            0  5월 26 15:25 quota.user
 
 
 
[root@h179 home]# quotacheck -avum   
  -- 현재 quota 상태를 체크한다
  -- avum 에서 u가 user를 뜻한다. (그룹은 -avgm 으로 한다.)
  -- 오류메세지가 나면 -f 옵션을 주어 재명령한다.

quotacheck: WARNING - Quotafile /home/quota.user was probably truncated. Can't save quota settings...
quotacheck: Scanning /dev/hda8 [/home] done
quotacheck: Checked 86 directories and 387 files
 
 
 
[root@h179 home]# convertquota -u /home    
  -- quota.user 파일을 aquota.user 로 변환
  -- 리눅스 쿼터 데이터파일은 aquota.user 파일을 지원하므로 변환해주어야한다. (단순복사는 안된다)       
[root@h179 home]# ls
  aquota.user       linux1       quota.user
 
 
 
 
[root@h179 home]# repquota -au   -- 사용자들의 디스크할당 정도를 출력해본다
*** Report for user quotas on device /dev/hda8
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   26256       0       0            408     0     0
linux1    --      44       0       0             11     0     0
test      --      32       0       0              8     0     0
test1     --      20       0       0              5     0     0
test4     --      36       0       0             10     0     0
test5     --      32       0       0              8     0     0
test8     --      28       0       0              7     0     0
test9     --      32       0       0              8     0     0
test3     --      28       0       0              7     0     0
 
※ 0은 무한대를 의미
block : 현제 사용중인 블럭량(단위 : KByte)
soft : 보통의 경우 사용자가 사용할 수 있는 최대용량(사용량경고)
  ※ 만약 여기에 지정한 용량이 hard 에 지정한 값보다 작을 경우
  hard용량까지 지정한 유예기간(grace period)동안은 초과가능
hard : 블럭 사용 제한량(단위 : KByte)


inodes : 현제 사용중인 파일 수
soft : 파일 사용량 경고
hard : 파일 사용량 제한

soft => 보통의 경우 사용자가 사용할 수 있는 최대 용량을 나타낸다. 만약 여기에 지정한 용량이 hard
에 지정한 값보다 작을 경우 hard용량까지 지정한 유예기간(grace period)동안은 초과가능

hard=> 실제 사용자가 최대로 사용할 수 있는 용량(KB)를 의미한다.

inodes=> 현재 사용중인 inode를 나타낸다.

soft=> 사용자에게 지정하는 inode의 값으로 파일또는 디렉토리를 생성할 수 있는 갯수

hard=> 절대 초과할수 없는 inode값으로 사용자가 생성할수 있는 파일 또는 디렉토리의 최대값이다.

 


[root@h179 home]# edquota test1  -- test1 사용자의 디스크할당을 편집한다.

[root@h179 home]# edquota -p test1 test2 test3 -- test1 사용량을 test2 test3 에 똑같이 배정

★ 디스크할당을 해줄 계정은 그 디스크내에 생성되어 있어야만 한다.
 
[root@h179 home]# repquota -au  -- 편집된 test1의 디스크할당을 출력한다.
*** Report for user quotas on device /dev/hda8
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   26256       0       0            408     0     0
linux1    --      44       0       0             11     0     0
test      --      32       0       0              8     0     0
test1     --      20    1000    1500              5    10    15
test4     --      36       0       0             10     0     0
test5     --      32       0       0              8     0     0
test8     --      28       0       0              7     0     0
test9     --      32       0       0              8     0     0
test3     --      28       0       0              7     0     0
 
 
 
 
[root@h179 home]# quotaon /home   -- 디스크할당을 적용시킨다.
 
 
 
 
※ file limits - soft : 지정해준 숫자만큼 파일갯수가 늘어나면 경고메세지를 출력한다.
※ file limits - hard : 지정해준 숫자까지만 파일을 생성할수 있다
※ Block limits - 파일의 용량에 관계된다.
※ [root@h179 home]# quotaoff /home   -- 디스크할당을 해제한다.

 



※ 포트변경시 vi /etc/services 에서 해당서비스 포트를 변경시켜 준다.


*SSH관련 수정사항

$ vi /etc/ssh/sshd_conf
내용수정

포트 변경 :  Port 22
root 접근 제한 : PermitRootLogin no


접속유지 시간
LoginGraceTime 30m
ClientAliveInterval 600
ClientAliveCountMax 3


변경후
$ /etc/init.d/sshd restart 로 데몬을 다시 올려 준다.

 

*FTP 관련 수정사항

$vi /etc/vsftpd.ftpus
$vi /etc/vsftpd/vsftpd.conf

//anonymous 접속 불가능 하도록
anonymous_enable=NO 수정

//ascii 모드 전성
ascii_upload_enable=YES  주석제거
ascii_download_enable=YES 주석제거

//디렉토리 접근권한
chroot_list_enable=YES     # 주석제거
/etc/vsftpd.chroot_list       # 파일에 홈디렉토리에만 접근허용할 ID 추가
또는 chroot_list_file=/etc/vsftpd/chroot_list

포트 변경시
listen_port=21 추가


※ 솔라리스10 은
$ svcadm restart 서비스 데몬
$ svcadm enable 서비스 데몬
$ svcadm disable 서비스 데몬

로 제어


//EUC-KR 사용할수 있도록 설정
/etc/profile 에 EUC-KR 설정
export LANG=ko_KR.EUC-KR
export LC_ALL=ko_KR.EUC-KR

$ source /etc/profile


iptables 추가
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 포트 -j ACCEPT
/etc/init.d/iptables restart