출처 : http://guni.textcube.com/137

CentOS에 최신커널을 컴파일하여 넣어 보자~

iptables를 건드리다가 connlimit옵션이 먹히지 않아서 찾아보니 현재 사용중인 커널 버젼이 낮음으로 하여 먹히지 않았던 것이 였다.
간단히

# cat /proc/net/ip_tables_matches

를 통하여 현재 iptables상에 올라온 모듈들을 볼 수 있다.
connlimit 모듈이 깔리지 않은 상태에서 해당 모듈이 리스트에 뜨지 않을 것이다.

1. 최신 커널 및 iptables 소스 파일 다운로드 및 설치
현재 커널 버젼을 아래 명령어를 통하여 알아보도록 하자.

# uname -a
Linux localhost 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux

위에서 보다싶이 현재 사용중인 커널 버젼은 2.6.18이다.
http://www.kernel.org 에 접속하여 최신버젼 커널을 다운로드 받아 온다.

Kernel 2.6.29.1 => http://www.kernel.org/
Iptables 1.4.3.2 => http://www.netfilter.org/
정확히 다운로드 되었으면 다운로드 받은 커널 소스는 /usr/src에 압축을 풀고 iptables소스는 /usr/local/src/에 압축을 풀어놓는다.

# cd /tmp
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2
# wget http://ftp.netfilter.org/pub/iptables/iptables-1.4.3.tar.bz2
# tar xvfj linux-2.6.29.1.tar.bz2 -C /usr/src
# tar xvfz iptables-1.4.3.2.tar.bz2 -C /usr/local/src

작업을 더 편하게 하기 위하여 미리 심볼릭 링크를 걸어 둔다.

# ln -s /usr/src/linux-2.6.29.1 /usr/src/linux

커널 소스 디렉토리로 들어갔으면 기존에 정상적으로 사용하던 커널의 환경옵션을 그대로 가져 와서 컴파일하는 것이 좋다.
/boot 디렉토리 안을 보면 이름이 config 로 시작하는 커널 환경 변수 정보가 담겨있는 파일들이 있는데 이 중 가장 최근까지 정상적으로 사용해 오던 파일을 복사해다가 /usr/src/linux 디렉토리 안에 .config 라는 이름의 파일로 저장해서 불러들이는 방식을 취하면 된다.

# cp /boot/config-2.6.18-128.el5 /usr/src/linux/.config

2. 커널 설정 및 컴파일
자~ 기본적으로 커널 설정을 하기 위한 초기 작업이 끝났다.
새로 받은 커널 소스 폴더로 이동하여 커널 설정을 해주겠다.

# cd /usr/src/linux
# make menuconfig

제일 하단에서 2번째에 있는 Load an Alternate Configuration File 메뉴를 통해 .config 파일을 로드한다.

Networking --> Networking option --> Network packet filtering framework (Netfilter) 옵션으로 들어가서
Core Netfilter Configuration을 비롯하여 넷필터, iptables 관련 모듈을 모두 체크하고 빠져 나온다.
Core Netfilter Configuration 옵션 안의 모듈들은 가급적 <M> 체크하여 모듈 형태로 저장한다.
iptables관련 모듈들은 하나가 모듈로 컴파일되면 다른 것들도 모듈로 되기를 요구하는 같다. connlimit 모듈은 중간 쯤에 나온다. 이해를 돕기 위하여 아래에 스크린샷을 첨부하겠다.


또한 IPv4 컨넥션 트래킹 모듈까지 설치하겠다. NAT에는 필수니까...


# make bzImage
# make modules
# make modules_install
# make install

make install하면 아래와 같은 Warning문이 뜬다.

WARNING: No module dm-mem-cache found for kernel 2.6.29.1, continuing anyway
WARNING: No module dm-message found for kernel 2.6.29.1, continuing anyway
WARNING: No module dm-raid45 found for kernel 2.6.29.1, continuing anyway

일단 커널 설치에는 영향을 주지 않으므로 건너뛰겠다.

마지막으로 grub.conf파일을 편집하여 부팅시 우리가 새로 빌드한 커널을 기본으로 로드하겠다.
/boot/grub/grub.conf를 편집기로 열고 hiddenmenu를 주석문속에 넣는다.
이렇게 하면 부팅할 두가지 커널을 alternative하게 선택할 수 있게 된다.
또한 우리가 새로 컴파일한 커널을 Default커널로 띠우기 위하여 default값 1을 0으로 고친다.
서버를 재부팅하면 새롭게 컴파일된 커널을 만날 수 가 있다.^^

새로 부팅하고 uname -a를 쳐보자.

# uname -a
Linux localhost 2.6.29.1 #1 SMP Mon Apr 27 15:30:11 CST 2009 i686 i686 i386 GNU/Linux

정확히 우리가 원하는 커널로 부팅이 되었음을 확인 할 수 있다. 이로써 커널 설치는 끝마리를 맺는다.

3. iptables 설치
자 이제 그럼 iptables를 새로 컴파일 하여 connlimit 모듈을 추가해보자.
일단 새로 부팅한후
# iptables -L -n
해보면 아무내용도 뜨지 않음을 발견할 수 있다.
setup을 이용하여 새로 설정을 한후 iptables 을 내렸다 올리자.

# lsmod | grep connlimit 해보면 모듈이 로드 되지 않았음을 알 수 있다.
# modprobe xt_connlimit 하여 connlimit 모듈을 로드하여 보자.
# lsmod | grep connlimit
xt_connlimit            3500  0
nf_conntrack           58828  4 xt_connlimit,nf_conntrack_netbios_ns,nf_conntrack_ipv4,xt_state
x_tables               13864  7 xt_connlimit,ip_tables,ip6t_REJECT,ip6_tables,ipt_REJECT,xt_state,xt_tcpudp

정확히 로드가 되었음을 확인 할 수 있다. (커널에 컴파일하여 넣었으니 로드가 않되면 이상하다.ㅎㅎ)

여기서는 기존의 rpm 버전 iptables를 삭제하지 않고 그 위에 소스컴파일로 덮어씌우는 방식으로 진행을 하겠다.
왜냐하면 rpm 버전을 삭제한 뒤 소스로 새롭게 설치하게 되면 기존의 rpm 버전에서 제공하던 system-config-securitylevel, lokkit, /etc/rc.d/init.d/iptables 와 같은 실행 스크립트 파일이 존재하지 않기 때문에 따로 스크립트로 구현하지 않는 한 일일이 iptables 룰을 추가해야 하는 불편함을 감수해야 한다.
다행스럽게도 iptables를 소스로 설치하게 되면 바이너리 파일, 환경설정 파일, 라이브러리 등이 rpm 버전과 거의 동일한 경로에 설치되므로 rpm 버전 위에 덮어 씌워 설치하면 기존의 관련 명령어를 그대로 활용할 수 있다는 장점이 있다. (찝찝함이 남아 있는것만은 사실이다. 허나 노가다를 줄이기 위해서는 이 방법이 최상책일 것이다.)
잠시 iptables를 중지하겠다.

# service iptables stop

# cd /usr/local/src/iptables-1.4.3.2
# ./configure
# make
# make install

이제 기존의 rpm 버전 iptables에서 사용되던 명령어들을 백업하고 새로 설치한 소스 버전의 명령어들로 교체하는 작업이 필요하다.
/sbin 디렉토리안의 iptables 관련 명령 삭제 후, /usr/local/sbin 아래에 생성된 iptables 관련 명령들을 심볼릭 링크한다.(총 8개 명령)

# cd /sbin
# mv ip6tables ip6tables.old
# mv ip6tables-restore ip6tables-restore.old
# mv ip6tables-save ip6tables-save.old
# mv iptables iptables.old
# mv iptables-restore iptables-restore.old
# mv iptables-save iptables-save.old

심볼릭 링크를 걸어줄 대상들을 확인해보자~
# ls /usr/local/sbin
ip6tables  ip6tables-multi  ip6tables-restore  ip6tables-save  iptables  iptables-multi  iptables-restore  iptables-save

# ln -s /usr/local/sbin/ip6tables /sbin
# ln -s /usr/local/sbin/ip6tables-restore /sbin
# ln -s /usr/local/sbin/iptables /sbin
# ln -s /usr/local/sbin/iptables-restore /sbin
# ln -s /usr/local/sbin/ip6tables-multi /sbin
# ln -s /usr/local/sbin/ip6tables-save /sbin
# ln -s /usr/local/sbin/iptables-multi /sbin
# ln -s /usr/local/sbin/iptables-save /sbin

iptable을 버젼을 확인 해보면...

# iptables -V
iptables v1.4.3.2

iptables가 정확히 업그레이드 되었음을 볼 수 있다.

# service iptables start
# iptables -L -n

기존에 룰들이 그대로 존재하고 있을 것이다.

connlimit 모듈을 적용해보자.

출처 : http://guni.textcube.com/137
신고
  1. 2017.05.11 00:48

    비밀댓글입니다


조금 전 kbs TV 30분 다큐인가 하는 프로그램에서 108배에 관한 내용을 방영하더군요

종교적인 의식인줄만 알고 있었는데 운동효과가 상당하다고 하네요.

관심 있어 하시는 분이 계실까봐 저도 배울겸 마음에 드는 자료를 찾아서

올리려던 도중 이왕이면 알흠다운 여성이 시연하는게 눈에 쏙~ 들어올것 같아

이 자료를 올립니다. 많은 도움이 되시길 바랍니다.



*절하는 법



1. 합장저두(반배)한뒤 합장을 한채로 무릎을 꿇습니다.


2. 오른손을 자신의 오른 쪽 무릎으로부터 자신의 손바닥의 크기만큼 띄어서 놓습니다.


3. 왼손도 그렇게 왼쪽 무릎으로부터 띄어서 놓습니다.


4. 머리를 숙여서 땅에 댑니다.


5. 두 손바닥을 곱게 펴서 자신의 귀에 나란히 되도록 올립니다.


6. 손바닥을 바닥에 둡니다.


7. 무릎을 꿇고 손바닥은 땅에 붙인 채 두 팔을 폅니다.


8. 왼손을 들어 가슴에 놓고 오른손을 들어 가슴에 놓은 후 합장한 상태로 발의 압축을 세우고 몸이

흔들리지 안도록 조심하면서 일어난뒤 합장저두합니다. 이때 주의하여야 할 것은 설 때는 양 발끝

을 모아야 하며 앉을 때는 왼발바닥을 오른발바닥 위에 놓아야 합니다.
(마지막절에는 항상 고두례를 합니다)



108배의 경우는 말 그대로 108번 절을 하는것으로 절을 할 때는 다음

의 세가지 경우 중 하나를 택하여 행합니다.




① 석가모니불·아미타불·관세음보살· 지장보살 등 여러 불보살 중 한 불보살의 명호를 외우며...




② 묵묵히 염주를 돌리며...(108염주를 들고 1배하고 할알 돌리고...그런씩으로 108번 절을 함))




③ 정형화된 참회문(예 : 백팔대참회문)을 읽으며 절을 합니다.








운동으로 하는 108배

















신선한 기를 받아들인다고 생각하면서 느리고 가늘게 코로 숨을 들이쉴 것. 얼굴에 가벼운 미소를 띕니다



1. 양발을 어깨 너비의 반 정도로 벌리고 서서 합장을 합니다. ※양팔은 겨드랑이에서 약간 떨어뜨립니다.
2. 합장한 손을 아래로 내리며 양팔을 쭉 편 뒤, 양팔을 등 뒤로 크고 힘차게 돌려 머리 위로 올립니다. ※손바닥은 펴서 앞 을 향하고 양팔은 귀에 닿도록 곧게 폅니다.
3. 양팔을 원을 그리듯 크게 돌리며 앞으로 내리면서 상체를 숙여 몸이 ‘ㄱ’자 모양이 되게 합니다.
4. 무릎을 굽히면서 양손을 앞으로 내밀어 바 닥을 짚습니다. 고개는 자연스럽게 숙입니다.
5. 무릎을 꿇고 앉아 팔꿈치와 이마를 바닥에 댑니다. 이때 발가락을 꺾은 채 발꿈치를 세우고, 이마는 머리카락이 바닥에 살 짝 닿을 정도만 숙입니다.
6. 바닥을 짚고 있는 양손을 뒤집어 손바닥이 위를 향하게 하여 귀 높이까지 들어 올립니다. ※손바닥을 뒤집어 위로 들어 올 리는 동작은 불자들이 엎드려 부처님의 발을 받들던 행위에서 유래되었습니다. 이 는 자신을 철저하게 낮추고 상대방을 최대한 공경한다는 의미를 담고 있는데, 운동으로 절을 할 때 이 동작은 생략해도 됩니다.
7. 팔을 바닥에 붙이고 고개를 듭니다.
8. 상체를 완전히 일으켜 세우고 양손을 합장한 뒤 다리와 허리의 힘을 이용해 가볍게 일어납니다. 무릎에 무리를 주지 않도록 합니다 . 일어나는 순간 괄약근에 힘을 줍니다.







▶ 108배의 효과를 높이기 위해선?



1. 절을 할 때는 최대한 힘을 빼서 몸을 가볍고 부드럽게 해야 합니다. 그래야 동작 하나하나가 막힘이나 걸림이 없이 부드럽게 이어지고 몸의 기혈순환이 활발해집니다.

2. 호흡이 가쁠 만큼 빠른 속도로 절을 하는 것은 피해야 합니다. 절 운동은 근력과 심폐 기능을 강화하는 단순한 신체 운동이 아니므로 빠르고 강하게 하는 것은 무의미합니다. 오히려 각 신체 부위에 동작의 자극이 정확하게 전달되고 호흡이 깊어지도록 가능하면 동작을 천천히 그리고 차분하게 할수록 더 큰 운동 효과가 있습니다.

3. 절을 하면서 머릿속에 잡념이 떠오르는 것은 자연스러운 일입니다. 억지로 잡념을 쫓으려고 애쓸 것이 아니라 호흡이나 동작, 신체 부위에 마음을 집중하면서 절을 하면 됩니다. 자신이 하는 각 동작을 머릿속으로 그려본다든지, 단전이나 발에 정신을 집중한다든지, 아니면 절하는 횟수에 집중한다든지 하면 저절로 잡념이 사라지며 정신이 안정되는 효과를 얻을 수 있습니다.

4. 절을 할 때는 반드시 방석이나 이불을 마련하여 무릎이 닿는 곳에 포개서 까는 것이 좋습니다. 딱딱한 맨바닥에서 절을 하다 보면 무릎을 다칠 수 있기 때문입니다. 그렇다고 아예 방석이나 이불 위에 올라서서 절을 하는 것은 바람직하지 않습니다. 미끄러질 수도 있거니와 균형을 유지하기 어렵기 때문입니다.

5. 절을 마치고 난 뒤 바로 샤워를 하는 것은 좋지 않습니다. 절 운동을 통해 몸속의 나쁜 기운이 배출되고 청정한 기운이 형성되어 있는 상태에서 물로 몸을 씻어내면 몸의 기운이 흐트러져 운동 효과가 반감될 수 있습니다. 이때는 가볍게 몸을 푼 후 따뜻한 차를 마시는 등 시간을 보내며 몸속에 형성된 기운을 갈무리한 뒤 몸을 씻는 것이 좋습니다.



내용출처 : 우먼센스
[출처] : http://bitcorea.org/showthread.php?mode=hybrid&t=7814
신고
출처 : http://krastinov.tistory.com/entry/윈도우7-FTP-서버-구축하기

FTP란 file transfer protocol의 약자로서 파일 이동 규칙 정도로 해석을 하고 인터넷을 통해 한 컴퓨터

에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과, 그런 프로그램을 모두 일컫는 말이다.

쉽게말해 자신만의 웹하드를 구성한다고 생각하면 간단할 것이다. 이 글에서는 이번에 나온 윈도우7

의 FTP 서버 구축방법을 알아볼 계획이다. 이와 같은 글을 쓰는 것은 다른 사용하기 편한

FTP 프로그램도 많지만 딱히 큰 강점은 없기에 윈도우 자체에서 지원해주는 FTP를 사용해보고자

이런글을 쓰게 되었다




일단 FTP를 사용하려면 인터넷 정보 서비스인 IIS에서 FTP항목을 사용하도록 설치를 해야한다

기본적으로 FTP기능은 추가 되어 있지않아 추가를 따로 해야한다

설치방법은 다음 사진과 같다


제어판에서 프로그램 및 기능에 들어간다

Windows 기능 사용/사용안함에 들어간다


로딩이 끝나고 밑으로 가면 인터넷 정보 서비스 항목에 있다. 그 항목을 활성화 시키고

빨간 네모칸의 항목을 모두 체크한다


다음은 이제 본격적으로 FTP를 추가해보도록 하자


제어판에서 관리도구에 들어간다


IIS(인터넷 정보 서비스) 관리자 항목으로 들어가면 다음과 같은 화면이 나온다


다음 사진과 같이 연결항목의 메뉴를 활성화 시켜 사이트 항목을 오른쪽 클릭하면 다음과 같은

메뉴가 나오는데 거기서 FTP사이트 추가 를 선택한다. 다음은 FTP사이트 추가하는 항목이다


FTP사이트 이름 자신의 FTP사이트의 이름이며 FTP의 직접적인 설정에 영향은 없으니 자신이

원하는 것으로 한다.

실제경로는 FTP로 사용할 경로이며 FTP로 외부에서 접속하면 실제경로로 저장된 장소에서 작업을

하게된다


IP주소는 FTP의 IP이다. 밑으로 스크롤바를 활성화시키면 자신의 아이피를 선택할 수 있다

SSL은 간단하게 개인 정보유지 프로토콜로서 인증서를 이용하여 접속하게 하는 방식이다 

보통 사용자들은 인증서가 없으니 없음 이나 허용으로 하여 있던 없던 접속을 가능하게 하는게 좋다

자동으로 FTP 사이트 시작은 기본적으로 체크되있는 항목으로 윈도우가 시작과 동시에 FTP를 시작

하게 된다. 이를 원하지 않으면 체크를 해제한다


인증은 익명, 기본이 있으며 익명은 로그인 없이 아무나 사용할 수 있게 해주는 것이고 기본은 자신의

컴퓨터에 있는 계정으로 접속을 하게 하는것이다.

엑세스 허용은 다음과 같은 항목이 있으며


모든 사용자는 컴퓨터의 기본 계정이며 익명사용자는 아무나 접속 가능하게 해주는것이며

밑의 2가지는 특정 사용자나 사용자그룹에게만 사용 권한을 주는 것이다.

사용 권한 읽기 쓰기가 있는데 파일을 다운로드하고 업로드하는등의 기능을 말한다

그리고 마침을 누르면 IIS관리자에 FTP가 추가되어 선택을 하면 FTP홈의 항목으로 자신의

FTP정보를 구축후에도 다시 설정할 수 있다


다음은 방화벽에서 FTP를 허용시켜줘야 외부에서 접속을 할 수 있게 해준다


제어판에서 Windows방화벽 항목으로 들어간다


왼쪽 상단에서 고급 설정 들어가면 아래와 같은 화면이 나온다 


이 항목에서 인바운드 규칙 들어가면 아래와 같은 FTP 항목이 있는데



이곳에서 FTP관련 항목을 활성화 시켜줘야하며 활성화 방법은 오른쪽 중단의 규칙 사용을 누르면

된다 중간의 FTP Sever Secure(FTP SSL Traffic-In)은 아까 SSL을 사용할지 물어본 항목에서
필요를 선택한 사용자는 꼭 활성화 시켜줘야 SSL을 이용해서 접속하는 사람들이 파일을 쓸수 있게

해준다.

위와같은 방법으로 FTP를 사용하면 장소에 구애받지 않고 자신의 컴퓨터에 파일을 업로드 및

다운로드 할 수 있게 된다. 하지만 192등으로 시작되는 내부IP의 경우 외부에서는 사용을 할 수

없으니 이점 유의해서 사용하기 바란다

FTP구축은 어려운 기술이 들어가는 기술이 아니라 방법만 알면 누구나 가능한 기술이니 모른다고

겁먹지말고 구축을 해보면 컴퓨터를 좀더 활용성 있게 사용할 수 있게된다
신고

/etc/fstab

---------------------------------------------------------------------------------------

/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
/dev/hda                /media/cdrom            auto    pamconsole,ro,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
--------------------------------------------------------------------------------------

 

 

 

/etc/quotatab

--------------------------------------------------------------------------------------

#
#  This is sample quotatab (/etc/quotatab)
#  Here you can specify description of each device for user
#
#  Comments begin with hash in the beginning of the line

# Example of description

/dev/VolGroup00/LogVol00

--------------------------------------------------------------------------------------

 

 

/etc/rc.d/rc.local

--------------------------------------------------------------------------------------

# Check quota and then turn quota on.
if [ -x /sbin/quotacheck ]; then
        echo "Checking quotas. This may take some time..."
        /sbin/quotacheck -avug
        echo " Done."
fi

if [ -x /sbin/quotaon ]; then
        echo "Enabling disk quota .."
        /sbin/quotaon -avug
        echo " Done."
fi

--------------------------------------------------------------------------------------

 

 

#quotacheck -avug -m

--에러시 aquota.user, aquota.group 를 만들어 준다.

 

#quotaon -a

 

--끝

#edquota -v 사용자아이디

-------------------------------------------------

“block in use”는 한 파티션에서 사용자가 사용 중인 총 블록을 의미한다.

“inode in use”는 한 파티션에서 사용자가 사용 중인 총 파일의 총합이다.

--------------------------------------------------

 

#repquota -a 로 사용자별로 quota설정 확인

 

 

 

퍼온글

--------------------------------------------------------------------------------------

- 차 례 -

 

1. Quota란 무엇인가?

 

2. 리눅스에서 Quota지원

 

3. 리눅스에서 Quota를 사용하기 위한 요구사항

3.1.Kernel

3.2.Quota 소프트웨어

 

4. 리눅스에서 Quota 설정 –1 : 환경설정

4.1.커널 재설정

4.2.Quota 소프트웨어 컴파일 및 설치

4.3.Quota를 검사하고 부트시에 Quota를 작동시키기 위해 init 스크립트 수정

4.4./etc/fstab 수정

4.5.Quota 기록파일 “quota.user”“quota.gropu” 생성

4.6.Quota 시스템 활성화 시키기

4.7.crontab quotacheck 추가

 

5. 리눅스에서 Quota 설정 –2 : 사용자와 그룹에게 할당량 배정

5.1. 특정 사용자에게 디스크 할당량 배정

5.2. 특정 그룹에게 디스크 할당량 배정

5.3. 일련의 사용자에게 같은 값으로 디스크 할당량 배정

5.4. Soft Limit

5.5. Hard Limit

5.6. Gracd Period

 

6. 기타 Quota 명령

6.1.Quotacheck

6.2.Repquota

6.3.Quotaon Quotaoff

 

 

 

* 이 문서는 kldp.org에서 발췌한 것과 다른 사이트에서 발췌한 것을 직접 실행해 보고 재작성한 것입니다. 최초로 작성하신 분의 양해를 바랍니다.

* 레드햇 7.2 버전에서 실행한 결과입니다.

 

1. Quota란 무엇인가?

 

    Quota는 사용자나 혹은 그룹이 가질 수 있는 inode의 수, 혹은 사용자나 그룹에게 할당된 디스크 블록의 수를 제한함으로써 디스크 저장장치의 사용을 제한할 수 있게 해준다. , Quota는 사용자나 그룹의 디스크 사용량을 제한할 수 있는 방법을 제공해 준다.

    Quota의 기본개념은 사용자가 그들에게 부여된 디스크의 제한용량 이상으로 사용하지 못하게 하며, 시스템의 디스크 공간을 무제한적으로 사용하지 못하게 한다. Quota는 사용자별, 파일시스템별로 동작된다. 한 사용자에 파일을 만들 수 있는 파일시스템이 하나 이상이라면 각각의 파일시스템에 개별적으로 Quota를 설정해줘야 한다.

 

2. 리눅스에서 Quota 지원

 

Quota 지원은 버전 1.3.8x에서부터 커널에 포함되었다. 지금은 리눅스 커널 2.0 릴리

즈의 한 부분이다. 여러분의 시스템이 Quota를 지원하지 않는다면 업그레이드 하기 바란다. 현재 Quota ext2 ext3 파일시스템에서 동작한다.

   

3. 리눅스에서 Quota를 사용하기 위한 요구사항

 

3.1. Kernel

커널 2.x소스는 http://www.kernel.org에서 구할 수 있다. 서버의 자원을 아끼기

위해 가능하면 여러분의 위치에서 가까운 미러사이트를 이용하기 바란다. 한국의 미러사이트는 http://www.kr.kernel.org이다.

 

3.2. Quota Software

여러분이 가지고 있는 리눅스의 배포본에 따라 시스템에 Quota 소프트웨어가 설치되어

있거나, 혹은 설치되어 있지 않을 수 있다. 설치되어 있지 않다면 Quota 소프트웨어의 소스를 다운받아야 한다. 시스템에 설치되어 있는지 확인하려면 다음과 같이 타이핑한다.

# rpm –qa | grep quota <엔터>

quota-3.01pre9-3

 

 

4. 리눅스에서 Quota 설정 – 1 : 환경설정

 

4.1. 커널 재설정

Quota를 지원할 수 있도록 다음과 같이 커널을 재설정한다.

Quota support (CONFIG_QUOTA) [n] y

 

 

4.2. Quota 소프트웨어 컴파일 및 설치

대부분의 리눅스 배포본에서는 Quota 소프트웨어가 설치되어 있다. 

 

4.3. Quota를 검사하고 부트시에 Quota를 작동시키기 위해 init 스크립트 수정

    다음의 예를 살펴보자.

# Check quota and then turn quota on. 
if [ -x /usr/sbin/quotacheck ] 
then 
    echo "Checking quotas. This may take some time." 
    /usr/sbin/quotacheck -avug 
    echo " Done." 
fi 
 
if [ -x /usr/sbin/quotaon ] 
then 
    echo "Turning on quota." 
    /usr/sbin/quotaon -avug 
fi

 

 

    가장 좋은 방법은 /etc/fstab에 명시된 파일시스템이 마운트된 후 항상 Quota를 켜놓는 것이다. 시스템 init 스크립트의 끝부분 또는 파일시스템이 마운트 되는 부분의 바로 뒷부분에 Quota를 켜놓는 것을 추천한다. “vi /etc/rc.d/init.d/quota”라고 쳐서 위 내용을 그대로 입력한 후 저장한다. 재부팅할 때마다 자동으로 quota가 수행될 것이다. 참고로 새로 생성된 파일의 권한에 있어서 실행권한이 빠져있는 것을 발견했다. 그 부분도 755로 수정해야 할 것이다.

 

4.4. /etc/fstab 수정

 

    일반적으로 Quota가 작동되기 전의 파티션 정보는 다음과 같다.(RedHat 7.2에서의 모습이며 사용자마다 다르게 보일 수 있다.)

 

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        1 2

none                    /proc                   proc    defaults        0 0

none                    /dev/shm                tmpfs   defaults        0 0

LABEL=/usr              /usr                    ext3    defaults        1 2

LABEL=/var              /var                    ext3    defaults        1 2

/dev/hda6               swap                    swap    defaults        0 0

/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,kudzu,ro 0$

 

 

    보통은 /home 디렉토리 밑에 사용자를 추가하므로 /home 디렉토리 아래에 있는 사용자들에게 quota를 주기 위해서 수정하였다. /home 디렉토리에 quota를 주려하기 때문에 아래와 같이 /home 디렉토리가 있는 파티션에 “usrquota”를 추가한다.

 

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

none                    /proc                   proc    defaults        0 0

none                    /dev/shm                tmpfs   defaults        0 0

LABEL=/usr              /usr                    ext3    defaults        1 2

LABEL=/var              /var                    ext3    defaults        1 2

/dev/hda6               swap                    swap    defaults        0 0

/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,kudzu,ro 0$

 

 

Usrquota를 추가하는 과정에서 줄이 두 줄로 형성되면 안된다. Ext3부분을 앞으로 당겨서라도 한 줄로 만들어야 한다. 아직 리눅스가 딸려서 왜 그런지는 모르겠다.

파일 시스템에 그룹 Quota 기능이 필요하면, "usrquota" 대신 "grpquota"를 추가하라. 파일시스템에 사용자 Quota와 그룹 Quota 둘 다 필요하다면 “usrquota”“grpquota”를 둘 다 추가시킨다. 

 

    4.5. Quota 기록파일 “aquota.user”“aquota.group” 생성

 

    aquota.user”와 “aquota.group, 이 두 Quota 기록파일은 root 소유이어야 하고, root 이외에는 어느 누구도 읽기/쓰기 권한을 줘서는 안된다. Root로 로그인한 후 Quota를 활성화 시킬 파티션의 루트디렉토리로 이동하라. 그런 후 aquota.user aqota.group 파일을 다음과 같이 만든다.

 

touch /home/aquota.user(또는 aquota.group} 
chmod 600 /home/aquota.user(또는 aquota.group} 

 

 

    4.6. Quota 시스템 활성화 시키기

 

    Quota 시스템을 활성화 시키기 위해서는 여러분이 수정한 것이 영향을 미칠 수 있도록 시스템을 reboot한다. 더 좋은 방법은 여러분이 만든 시스템 init 스크립트를 실행시키는 것이다. 이것은 Quota Database를 초기화 시킬 것이다. 만약 ‘ls –al /home/aquota.*’명령을 실행해보면 파일크기가 더 이상 0은 아니라는 것을 알 것이다. 이것은 Quota가 동작되고 있다는 것을 말한다. 나중에 다른 파티션에도 Quota가 가능하게 하려면 4, 5, 6번 과정을 되풀이 하면 될 것이다.

 

    4.7. crontab quotacheck 추가

 

    Quotacheck는 주기적으로, 즉 일 주일마다 실행하면 될 것이다. 다음 줄을 root cron

tab에 추가하라.

 

0 3 * * 0 /sbin/quotacheck -avug

 

  

5. 리눅스에서 Quota 설정 – 2 : 사용자와 그룹에게 할당량 배정

 

     이것은 ‘edquota’ 명령을 통해 수행된다. (‘man edquota’ 참조)

 

    5.1. 특정 사용자에게 디스크 할당량 배정

 

     여기 한 가지 예가 있다. 만약 시스템에 로그인 ID ‘bob’라는 사용자가 있고, 이 사용자의 디스크 할당량을 배정하기 위해  “edquota –u bob”명령을 사용함으로써 vi 에디터로 quota가 설치된 각 파티션의 bob라는 사용자의 할당량을 수정할 수 있다.

 

Disk quotas for user bob<uid 501>: 
Filesystem       block       soft      hard      inodes      soft
  hard
/dev/hda3           36      30720     30720           0     30720
 30720      

 

 

“block in use”는 한 파티션에서 사용자가 사용 중인 총 블록을 의미한다.

“inode in use”는 한 파티션에서 사용자가 사용 중인 총 파일의 총합이다.

 

    5.2. 특정 그룹에 디스크 할당량 배정

 

    시스템에 games라는 그룹이 있고 이 그룹의 디스크 사용량을 제한하고 싶다면,

“edquota –u games”명령을 사용하면 된다. 그러면 vi 에디터를 이용해 games 그룹의 할당량을 수정할 수 있다.

 

Quotas for user bob: 
/dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) 
           inodes in use: 356, limits (soft = 1000, hard = 1500)

 

 

    5.3. 일련의 사용자들에게 같은 값으로 디스크 할당량 배정

 

    예를 들어 100명의 사용자의 할당량을 사용자 bob과 같은 값으로 빨리 설정하기 위해서는 먼저 bob의 할당량 정보를 직접 수정한 후에 다음 명령을 수행하면 된다.

 

edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

 

 

    여기에서 csh를 사용하고 있다고 가정하며, 사용자의 UID 500부터 시작하고 있다고 가정한다. 추가적으로 edquota에서는 Soft Limit, Hard Limit, 유예기간(Grace Period)이라는 단어의 의미를 알아야 한다.

 

    5.4. Soft Limit

 

    Soft Limit는 한 파티션에서 사용자가 쓸 수 있는 최대 용량을 가리킨다. 그러나 유예기간(Grace Period) 내에 있어서는 사용자는 사용 용량 초과에 대해서 경고를 받게 되는 경계선처럼 동작한다.

 

    5.5. Hard Limit

 

    Hard Limit는 유예기간(Grace Period)이 설정되어 있을 때에만 동작한다. 이것은 디스크 사용에 있어서 절대적인 제한을 의미한다. , 사용자는 Hard Limit 이상의 디스크 공간을 사용할 수 없다.

 

    5.6. Grace Period

 

    유예기간은 사용자의 사용 용량이 Soft Limit 용량을 넘은 후부터 적용되는 시간제한이다. 시간은 sec(onds), min(utes), hour(s), day(s), week(s), month(s) 단위로 사용할 수 있다. “edquota –t”명령을 실행하면 유예기간을 볼 수 있거나 수정할 수 있다.

 

Grace period before enforcing soft limits for users: 
Time units may be: days, hours, minutes, or seconds
Filesystem   Block grace period    Inode grace period
/dev/hda2           7 days               7 days 

 

 

    “0 days”부분은 적당한 기간으로 바꿔준다. 개인적으로는 7(“7 days” 혹은 “1 week”)로 설정해 주었다.

 

6. 기타 Quota 명령

 

    6.1. Quotacheck

 

    quotacheck는 파일시스템의 디스크 사용 상태를 검색하거나 quota 기록파일인 “aquota.

user”를 최근의 상태로 갱신하기 위해 사용된다. Quotacheck를 시스템을 부팅할 때나 정기적으로(예를 들어, 일 주일에 한 번) cronjob을 통해서 실행할 것을 권한다.

 

6.2. Repquota

 

    repquota는 파일시스템의 quota를 정리해서 보여준다. 다음은 repquota가 출력하는 예제이다.

 

# repquota -a 
                                Block limits               File limits 
        User            used    soft    hard  grace    used  soft  hard  grace
        ---------------------------------------------------------------------- 
        root      --  175419       0       0          14679     0     0 
        bin       --   18000       0       0            735     0     0 
        uucp      --     729       0       0             23     0     0 
        man       --      57       0       0             10     0     0 
        user1     --   13046   15360   19200            806  1500  2250 
        user2     --    2838    5120    6400            377  1000  1500

   

6.3. Quotaon Quotaoff

   

quotaon quota를 가동시킬 때 사용된다. 반대로 quotaoff는 중단시킬 때 사용된다. 실제로 이 두 파일은 비슷하다. 이것들은 시스템이 부팅되거나 중단될 때 수행된다. 다음과 같이 사용한다.

 

# quotaon –avug 
/dev/hda3 [/home]: user quotas turned on
# quotaoff –avug
/dev/hda3 [/home]: user quotas turned off

 

[출처] QUOTA 설정...|작성자 보노보노

신고

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Tue, 13 Apr 2010 22:54:04 +0900
Mail From: webmaster@test0.com
250 2.1.0 webmaster@test0.com... Sender ok
RCPT To: webmaster@test1.com
250 2.1.5
webmater@test1.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
sendmail tset.
.
250 2.0.0 o3DDs4NG012085 Message accepted for delivery
quit
221 2.0.0 localhost.localdomain closing connection
Connection closed by foreign host.


550 5.0.0 Access denied
vi /etc/hosts.allow
sendmail : ALL           => 추가


신고

작성자: 주인장 디지문
(http://www.digimoon.net/)

[출처] http://www.digimoon.net/blog/316

소스는 아래 사이트에서 구한다.
http://dovecot.org/
 

# wget http://dovecot.org/releases/1.1/dovecot-1.1.2.tar.gz
# tar xvfz dovecot-1.1.2.tar.gz
# cd dovecot-1.1.2
# ./configure --prefix=/usr --localstatedir=/var --with-pam --with-gssapi --with-mysql
# make
# make install
# cp /usr/etc/dovecot-example.conf /usr/etc/dovecot.conf
# groupadd -g 97 dovecot
# useradd -u 97 -g 97 -d /usr/libexec/dovecot -s /sbin/nologin dovecot



편집기로 환경설정 파일인 dovecot.conf 을 아래와 같이 내용 작성한다.
# vi /usr/etc/dovecot.conf
protocols = imap pop3
disable_plaintext_auth = no
ssl_disable = yes
protocol imap {
}
protocol pop3 {
}
auth default {
mechanisms = plain
passdb passwd {
}
passdb shadow {
}
userdb passwd {
}
user = root
}
plugin {
}
mail_privileged_group = mail




실행 커맨드는 아래와 같다.
# /usr/sbin/dovecot

아래와 같이 출력된다면 dovecot이 잘 올라온 상태이다.
[root@digimoon modules]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:50022               0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18313/mysqld
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      3523/smbd
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      21245/dovecot
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      21245/dovecot
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      19307/sendmail: acc
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      3523/smbd
tcp        0      0 :::80                       :::*                        LISTEN      4562/httpd
udp        0      0 192.168.0.100:137           0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:137                 0.0.0.0:*                               3528/nmbd
udp        0      0 192.168.0.100:138           0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:138                 0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:161                 0.0.0.0:*                               2832/snmpd
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     5738801 21245/dovecot       /var/run/dovecot/dict-server
unix  2      [ ACC ]     STREAM     LISTENING     5738803 21245/dovecot       /var/run/dovecot/login/default
unix  2      [ ACC ]     STREAM     LISTENING     5738812 21245/dovecot       /var/run/dovecot/auth-worker.21246

unix  2      [ ACC ]     STREAM     LISTENING     1535445 28839/saslauthd     /var/run/saslauthd/mux
unix  2      [ ACC ]     STREAM     LISTENING     5976316 18313/mysqld        /tmp/mysql.sock
[root@digimoon modules]#


실행 스크립트는 아래와 같이 작성 (레드햇 계열)
# vi /etc/rc.d/init.d/dovecot
#!/bin/bash
#
#   /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 65 35
# description: Dovecot Imap Server
# processname: dovecot
# Source function library.
. /etc/init.d/functions

test -x /usr/sbin/dovecot || exit 0

RETVAL=0
prog="Dovecot Imap"

start() {
        echo -n $"Starting $prog: "
    daemon /usr/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot
    echo
}

stop() {
    echo -n $"Stopping $prog: "
    killproc /usr/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot
    echo
}

#
#   See how we were called.
#
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    start
    RETVAL=$?
    ;;
  condrestart)
    if [ -f /var/lock/subsys/dovecot ]; then
        stop
        start
    fi
    ;;
  status)
    status /usr/sbin/dovecot
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"
    exit 1
esac

exit $RETVAL
# chmod 700 /etc/rc.d/init.d/dovecot
# chkconfig --add dovecot
# chkconfig --level 345 dovecot on
# /etc/init.d/dovecot start|stop|restart



우분투용 init 스크립트는 아래와 같다.
( http://ubuntuforums.org/showthread.php?t=282688 )

# vi /etc/init.d/dovecot

#!/bin/sh
# Dovecot IMAP server

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /lib/lsb/init-functions
DISTRO=$(lsb_release -is 2>/dev/null || echo Debian)

case "$1" in
'start')
        log_daemon_msg "Starting Dovecot IMAP server..."
        /usr/sbin/dovecot
        RETVAL=$?
        log_end_msg 0
        ;;
'stop')
        log_daemon_msg "Stopping Dovecot IMAP server..."
        kill `cat /var/run/dovecot/master.pid`
        RETVAL=$?
        log_end_msg 0
        ;;
'restart')
        log_daemon_msg "Restarting Dovecot IMAP server..."
        $0 stop && $0 start
        RETVAL=$?
        log_end_msg 0
        ;;
*)
        echo "Usage: $0 { start | stop | restart }"
        RETVAL=1
        ;;
esac
exit $RETVAL

# chmod 700 /etc/init.d/dovecot
# update-rc.d dovecot defaults
# /etc/init.d/dovecot start|stop|restart
신고

bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied

 


루트 권한으로
rm /dev/null 실행하여 삭제한다.

아래와 같이 실행한다.
root@dblab-desktop:~# mknod -m 0666 /dev/null c 1 3


null을 조회한다. 아래와 같이 나오면 된다.
root@dblab-desktop:~# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 20 21:12 /dev/null

[출처 : http://yagi815.tistory.com/388 ]

신고

#ipables -A INPUT -i eth1  -s ! 192.168.0.0/24 -j DROP

아래와 같은 문구가 나옵니다.
Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

변경 (-s ! 192...), =========> (! -s 192..)

#ipables -A INPUT -i eth1 ! -s 192.168.0.0/24 -j DROP

위와 같이 변경 하여 해결
신고

iptables -A INPUT -m state --state INVALID -j LOG

타켓에 LOG 사용시 아래와 같은 에러가 나타날 경우
iptables: No chain/target/match by that name.


#modprobe ipt_LOG

후에 적용 하니 되네요..쩝 4시간 삽질!!

ipt_REJECT
ipt_LOG
ipt_state
ipt_MASQUERADE
iptable_nat
ip_conntrack
iptable_filter
ip_tables
신고

test base : mysql 5.0.44

mysql 5.0.44 사용자 계정 추가 



* 사용자 추가
insert into user values ('localhost','아이디',password('비밀번호'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','0','0','0','0');

* DB 추가
insert into db values ('%',' 데이터베이스명','아이디','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

flush privileges;

[출처] http://cafe.daum.net/developteam/ONCl/3
신고

'리눅스 서버 > Mysql' 카테고리의 다른 글

mysql 5.0.44 사용자 계정 추가  (0) 2010.04.09
phpMyAdmin 3.2.4 설치  (1) 2010.04.08
mysql 설치  (0) 2010.01.31

+ Recent posts

티스토리 툴바