macsplex.com 로그인

검색

조회 수 413 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
Extra Form
<사용자 관련>

adduser [계정이름] : 계정생성

passwd [계정이름] : 해당계정의 비번변경

userdel -r [계정이름] : 계정삭제 및 계정의 파일폴더 모두 삭제(-r)

w : 현재 사용중인 사용자

last : 최근 이용한 접속자

<파일/디렉토리>

ll : 전체폴더구조 보기

ls : 폴더구조 간단히 보기

ls -al : 숨긴파일 까지 다 보기

ls [디렉토리명] : 해당 디렉토리보기

ls [파일명 또는 일부] : 해당되는 파일만 보여주기



cd : 디렉토리 이동



chmod 755 [디렉토리] : 파일권한변경 (내꺼, 같은그룹, 전체)



mkdir [디렉토리] : 디렉토리생성

mkdir -p a/b : a디렉토리 생성후 하위에 b디렉토리 생성

rm [파일명] : 파일삭제

rmdir [디렉토리명] : 디렉토리삭제 (파일존재시 삭제 불가)

rm -rf [디렉토리명] : 하위 디렉토리 및 파일 까지 모두 삭제



touch [파일명] : 해당파일의 수정일을 현재시각으로 변경(파일없을시 빈파일 생성)



cp [파일1] [파일2] : 파일1을 파일2로 복사

cp -r [디렉토리1] [디렉토리2] : 디렉토리1을 디렉토리2로 하위폴더와 파일까지 복사

cp -a [파일1] [파일2] : 소유권을 유지하면서 복사

move [파일/디렉토리] [디렉토리] : 파일 및 디렉토리 이동



cat [파일명] : 파일내용 출력

cat /dev/cdrom > linux.iso : CD롬에 있는 내용을 CD 이미지 파일로 만듦

cat a.txt >> b.txt : b.txt 파일 하단에 a.txt 파일의 내용 추가



more [파일명] : 파일내용을 페이지단위로 출력 (space:다음페이지, b:이전페이지)



ln [해당디렉토리 또는 파일] [링크이름] : 하드링크

ls -s [해당디렉토리 또는 파일] [링크이름] : 심볼릭링크



| : 파이프로 두개의 명령을 연결시켜줌

(예: ls -l /usr/bin | more : ls에서 검색된 파일 폴더를 페이지별로 보여줌)



파일권한 (자신/그룹/나머지: 4:읽기, 2:쓰기, 1:실행)

chown -R ohhappy.wheel /home/ohhappy/* : /home/ohhappy하위의 모든 파일 디렉토리의 소유자를 ohhappy로 그룹을 wheel로 변경



mount -t iso9660 /dev/cdrom /mnt/cdrom : cdrom 마운트

mount -t vfat /dev/fd0 /mnt/floppy : floppy 마운트

umount /dev/cdrom 또는 umount /mnt/cdrom



하드디스크 추가시

fdisk /dev/hdb (프라이머리 슬레이브 하드의 파티션 결정

mkfs.ex2 /dev/hdb1 (hdb1 파티션 포맷)

fsck.ext2 /dev/hdb1 (파일시스템 점검)

mount -t ext2 /dev/hdb1 /data (/data 디렉토리에 마운트)

vi /dev/fstab (에 마운트 기록, 부팅시 인식)





<검색>

find [경로] -name [파일명] : 하위경로의 파일찾기

/[찾을 문서명] : 문서나 메뉴얼안에서 문자찾기

which [명령어] : 명령어의 절대경로를 알려줌

whereis [명령어] : 명령어의 바이너리, 소스, 맨페이지위치 알려줌





<시스템/프로세스 관련>

top : 시스템 프로세스 및 메모리 및 CPU 사용량

uname -a : 운영체제,호스트명,커널버전,시스템부팅시간,아키텍쳐 보여줌

uname -m : cpu 보여줌

free -m : 메모리 보여줌(-m 메가단위, -k kb단위)

df -h : 마운트되어있는 디스크 사용량

du --max-depth=1 -h /home : 각 계정별로 이용량 확인

lsdev : 현재 사용중인 장치정보

w : 현재 사용중인 사용자

last : 최근 이용한 접속자

date : 현재 설정된 시간

clock : Cmos에 설정된 시간

rdate -s soback.kornet.nm.kr : soback.kornet.nm.kr에서 시간을 전송받아 시간 수정

clock -w : cmos 시간으로 수정

netstat -tu : 시스템에 연결된 소켓정보

ifconfig : 네트웍 장치설정 정보



ps -[옵션]: 현재 시스템에서 구동중인 프로세스 상태확인

(-a:전체사용자, -l:자세히보기, -x:제어터미널이 없는 프로세스, -f:pstree명령어와 같은 프리구조로 출력)

(상태값: D:구동일시중지중, R:구동중, S:쉬는중, T:구동정지중, Z:좀비프로세스, W:메모리를 안쓰는 스와핑상태)

ps auxfw -width=300 : 프로세스의 사용자 확인 (주로 | more 필요)

pstree : 구동중인 프로세스를 투리구조로 보여줌



kill -9 [프로세스번호] : 프로세스 강제종료

killall -9 [프로세스이름] : 프로세스 강제종료



<시스템 종료>

shutdown -h now : 시스템 종료 (-k : 메시지만전달, -r : 재부팅, -h : 셧다운후 종료 -c:셧다운중지)

halt : 시스템 종료

shutdown -r now : 시스템 재부팅

reboot : 시스템 재부팅

shutdown -k '지금시스템을 종료합니다.' : 시스템 종료 메시지 송부



<압축>

tar cvf [생성될 파일명:예 httpd.tar] [묶을 디렉토리] : 설정한 디렉토리를 포함한 하위 디렉토리 및 파일을 묶음

tar xvf [묶인파일:예 httpd.tar] : tar파일을 현재 디렉토리에 품

tar tvf [묶인파일:예 httpd.tar] : tar파일을 풀지 않고, 파일리스트만 출력

tar cvfz [압축파일명 :예 httpd.tar.gz] [압축할 디렉토리] : 파일을 묶어서 압축함

tar xvfz httpd.tar.gz : tar.gz 압축해제

tar xvfj httpd.tar.bz2 : tar.bz2 압축해제



<보안암호파일 생성>

htpasswd -c [생성될 파일명] [계정이름] : 암호화된 계정생성명령



<RPM>

 

  rpm -ivh [패키지 파일명] : rpm 패키지 설치

  rpm -Uvh [패키지 파일명] : rpm 패키지 업그레이드

  rpm -e [패키지명] : rpm 패키지 삭제

  rpm -qa : 현재 설치되어있는 패키지 리스트

  rpm -qa | grep [패키지명] : 패키지명 단어가 포함된 패키지 출력

  rpm -ql [패키지명] : 패키지가 설치한 파일 리스트

  rpm -qlp [패키지파일명] : 패키지 설치전 설치될 파일목록

  rpm -qf [파일명(절대경로)] : 어느패키지가 설치한 파일인지 표시

  rpm -qi [패키지명] : 패키지 정보 출력

  rpm -qip [패키지파일명] : 설치할 패키지 정보 출력

  rpm -Va : 패키지 검증

   

<ncftp>

ncftp -u [아이디] [접속주소] : ncftp 로그인

quit : ftp 종료

get : 다운로드 명령

mget : 현재폴더내 모든 파일 다운로드

mget -R * : 현재폴더 및 하위 폴더 파일 다운로드

<DB 자동백업>

1단계. (vi /etc/crontab) 다음줄 추가



30 4 * * * root run-parts /etc/cron.mysqldump

(분 시 일 월 주 사용자권한 실행부분 실행디렉토리, 매일 4시 30분실행)

(22 4 * * 0 매주 일요일(0) 4시 22분 실행)

(42 4 1 * * 매월 1일 4시 42분 실행)



2단계. 해당 디렉토리생성

mkdir /etc/cron.mysqldump



3단계. 해당 디렉토리에 실행할 내용이 들어있는 파일 생성

vi mysqldump.0709.sh*

내용입력



#!/bin/bash

. /etc/profile



TimeOfDay=`date +"%Y%m%d.%H%M"`

mkdir -p /etc/cron.mysqldump/DATA/${TimeOfDay}

UUSER="root"

PPASS=""

/usr/local/mysql/bin/mysqldump -u${UUSER} devbank > /etc/cron.mysqldump/DATA/${TimeOfDay}/devbank.sql

/usr/local/mysql/bin/mysqldump -u${UUSER} designter > /etc/cron.mysqldump/DATA/${Time0fDay}/designter.sql



<디렉토리별 구분>

/bin : 기본 명령어가 위치

/boot : 커널이미지가 존재

/dev : 장치를 사용할때 필요한 특수파일이 위치

       (hda,hdb,hdc,hdd:하드,CDROM fd0:플로피 ttyS0,ttyS1..:com포트 sda,sdb..:스카시장치 lp0:프린터)

/etc : 애플리케이션 및 서버 프로그램의 환경설정에 필요한 설정파일 저장

/usr : 리눅스 바이너리 프로그램을 설치하는 곳, 패키지 설치시 대부분 이곳에 저장

/home : 각 계정의 이용자가 사용하는 공간

/lib : 부팅과 시스템 운영에 필요한 공유라이브러리 및 커널 모듈저장

/lost+found : 파일시스템이 이상일 있을때 구동되는 fsck 명령에 의해 사용됨 (평소에 빈폴더임)

/mnt : CDROM,플로피등의 장치의 마운트 포인트를 제공함

/opt : 덩치가 너무 큰 몇몇 리눅스 패키지를 설치할때 사용함

/proc : 가상파일 시스템으로 프로세스와 시스템 정보를 제공. 파일명으로 존재하는 디렉토리는 커널정보를 숫자로 존재하는 디렉토리는 현재 실행되고 있는 프로세스의 정보를 담고 있음.

/root : root의 홈디렉토리. 가능한 많은 데이터를 저장하지 않는 것이 좋음

/sbin : 시스템 운영에 사용되는 명령어가 들어있음

/chroot : 프로그램을 감옥환경에서 돌릴때 루트공간

/chache : 플락시 서버 돌릴때 필요한 공간

/var : 시스템의 로그파일이 저장되는 곳, 가변자료들이 저장, 로그, 스풀, mysql db등

/tmp : 템프파일,시스템재구동시 모두 삭제됨, 프로세스 진행중 필요에 의해 임시로 저장



<명령어 도움말>

man [명령어] : 명령어에 해당하는 도움말

(man 페이지 안에서 /[검색어]는 해당단어검색, n은 다음 검색단어, q는 man 종료)



/usr/share/man : man 파일 저장위치

man1 : 사용자프로그램

man2 : 시스템 호출명령어

man3 : 라이브러리 함수 및 서브루틴

man4 : /dev 디렉토리에 포함된 특수파일

man5 : 파일 포맷

man6 : 게임

man7 : 분류에 포함되지 않는 기타 프로그램

man8 : 시스템 관리 명령어

man9 : 커널관련 명령어

mann : Tcl/Tk  내장 명령어



<네임서버 실행>

vi /etc/named.conf : 네임서버 설정파일

vi /var/named/[각파일] : 네임서버 설정파일

/etc/rc.d/init.d/named restart : 네임서버 재실행



<네임서버설정>

   1. /etc/named.conf 파일을 설정한다.

    

   case 1.

   <!--

// generated by named-bootconf.pl

options {

  directory "/var/named";  (지정한파일이 어느 디렉토리에 위치하는 지를 보여줌)

        check-names master warn;

        dump-file "/var/tmp/named_dump.db";

         statistics-file "/var/tmp/named.stats";

         forwarders {

                        168.126.63.1;

                       164.124.101.2;

                       };

  /*

   * If there is a firewall between you and nameservers you want

   * to talk to, you might need to uncomment the query-source

   * directive below.  Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

};

   

   (최상위 도메인 . 에 대한 정보를 제공함, named.ca는 최상위 도메인 목록제공)

zone "." {

  type hint;

  file "named.ca";

};



(루프백 장치설정을 제공하는 영역)

zone "0.0.127.in-addr.arpa" {

  type master;

  file "named.local";

};



(호스트 명을 저장할 파일명을 설정)

zone "eoholdings.co.kr" {

       type master;  (1차네임서버인경우 master, 2차인경우 slave로 설정)

       file "eoh.zone"; (파일 이름 설정)

};

   -->

   

   case 2.

   

   <!--

   // generated by named-bootconf.pl

options {

  directory "/var/named";(지정한파일이 어느 디렉토리에 위치하는 지를 보여줌)

  /*

  * If there is a firewall between you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below.  Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

};

(최상위 도메인 . 에 대한 정보를 제공함, named.ca는 최상위 도메인 목록제공)

zone "." IN {

  type hint;

  file "named.ca";

};

(루프백 장치설정을 제공하는 영역)

zone "0.0.127.in-addr.arpa" IN {

  type master;

  file "named.local";

  allow-update { none; };

};



(호스트 명을 저장할 파일명을 설정)

zone "hanter21.co.kr" IN {

  type master;

  file "hanter21.co.kr";

  allow-update { none; };

};



zone "13.233.211.in-addr.arpa" IN {

  type master;

  file "hanter21.rev";

  allow-update { none; };

};

key "key" {

  algorithm hmac-md5;

         secret "dHlNPdoeCpUMAONBoWbYPPJzYAcXOeIUBjnTLKlFHMTgXDTvMQZvzwqdx0MB";

};

-->



2. /var/named에 각 도메인별 네임서버 설정파일을 만든다



case 1.



<!--

  @       IN      SOA     ns.devbank.co.kr. master.devbank.co.kr.  (

                                       1997022701 ; Serial

                                       28800      ; Refresh

                                       14400      ; Retry

                                       3600000    ; Expire

                                       0 )    ; Minimum

               IN      NS     devbank.co.kr.

               IN      A      211.233.13.196

               IN      NS     ns.devbank.co.kr.



               IN      MX     10 mail.devbank.co.kr.

  @             IN     A       211.233.13.196

  ns            IN     A       211.233.13.196

  mail          IN     A       61.82.82.118

  ftp           IN     A       211.233.13.196

  www           IN     A       211.233.13.196

-->



case 2.



<!--

    (생존시간)

  $TTL 0

  $ORIGIN hanter21.co.kr.

  (@는 named.conf에서 정의한 도메인명을 대신)

  (SOA는 권한의 시작)

  (NS는 네임서버 역할)

  (MX는 메일호스트)

  (A는 호스트)

  @       IN      SOA     ns.ns.hanter21.co.kr. root.hanter21.co.kr.(

                                       1997022701 ; Serial

                                       28800      ; Refresh

                                       14400      ; Retry

                                       3600000    ; Expire

                                       0 )    ; Minimum

   IN   NS   ns.hanter21.co.kr.

   IN  MX   10 mail.hanter21.co.kr.

  @   IN   A   211.233.13.196

  www  IN   A   211.233.13.196

  ns  IN  A  211.233.13.196

  mail IN  A  211.233.13.196

  vod     IN      A       211.233.13.194

-->



3. 네임서버 상세 문서.. (http://www.kr.freebsd.org/doc/PoweredByDNS/ 또는 네임서버.hwp)



<아파치실행>



vi /usr/local/apache/conf/httpd.conf : 아파치 웹서버 설정파일

/usr/local/apache/bin/apachectl restart : 아파치 재실행

/usr/local/apache/bin/httpd -t : 아파치 설정파일 문법 오류 확인

chk



<아파치 설치>



1. tar xvfz apache_XXXX.tar.gz : 적당한 디렉토리에 압축해제

2. cd apache_XXXX : 압축이 풀린 디렉토리로 이동

3. configure

   configure --help : 옵션 도움말 보기

   --prefix=/home/httpd : 설치될 디렉토리

   --logfiledir=/var/log/httpd : 로그파일이 저장될 디렉토리

   --sysconfdir=/etc/httpd/conf : httpd.conf가 저장될 디렉토리

   --libexecdir=/etc/httpd/modules : 기능모듈파일이 저장될 디렉토리

   --sbindir=/usr/sbin : httpd 데몬과 바이너리가 저장될 디렉토리

   --bindir=/usr/bin : htpasswd 같은 바이너리 저장 디렉토리

   --mandir=/usr/share/man : 메뉴얼 페이지 저장 디렉토리

   --enable-module=all : 아파치가 사용할 모듈 전체 선택

   --enable-shared=max : 모듈처리가 가능한 모든 부분을 모듈처리

   --with-perl=/usr/bin/perl : 펄을 사용할때 펄의 디렉토리

   --verbose : configure 과정 출력

   --enable-suexec : cgi 구동시 지정 사용자로 변경하여 구동됨

   --suexec-caller=nobody : 위의 사용자 변경시 사용자

   --suexec-docroot=/home/htdocs : 다큐먼트 루트 디렉토리

   --suexec-logfile=/var/log/httpd/suexec_log : 로그 디렉토리 및 파일

   --suexec-userdir=public_html : 일반사용자의 홈디렉토리

   --suexec-uidmin=99 : caller에서 설정한 사용자의 UID

   --suxexc-gidmin=99 : caller에서 설정한 사용자의 GID

   --suxexc-umask=022 : caller가 사용할 PATH

   --runtimedir=/var/run : 웹서버 구동시 생성될 프로세스 PID 저장 디렉토리

   4. make : 바이너리와 설정파일 생성

   5. make install : 바이너리와 설정파일을 지정한 디렉토리로 복사



<mysql>

mysql -u [계정이름] -p [비밀번호] : mysql 접속



/usr/local/mysql/bin/mysqldump -u root [디비명] > [파일명] : DB 백업

mysql -u root [디비명] < [파일명] :  DB 복원  



<mysql 설치>



1. tar xvfz mysql-XXXX.tar.gz : 압축풀기

2. cd mysql-XXX : 해당디렉토리로 이동

3. configure

   ./configure --help : 도움말 및 옵션보기

   --prefix=/home/mysql : 설치 디렉토리

   --libexecdir=/usr/sbin : 바이너리 설치 디렉토리

   --localstatedir=/home/mysql/var : DB가 저장될 디렉토리

   --bindir=/usr/bin : 일반 바이너리가 설치될 디렉토리

   --sysconfdir=/etc : 설정파일(my.cnf) 가 저장될 디렉토리

   --with-mysqld-user=mysql : mysqld를 일반 계정 mysql로 구동

   --with-charset=euc_kr : 한국어 정렬지원

4. make : 바이너리와 설정파일 생성

   5. make install : 바이너리와 설정파일을 지정한 디렉토리로 복사

6. echo "/home/mysql/lib/mysql" >> /etc/ld.so.conf : 라이브러리가 설치된 디렉토리 설정 추가

7. ldconfig : 시스템이 참조하는 cache 파일 갱신

8. chmod 755 /home/mysql/share/mysql/mysql.server : 실행가능 허용

9. cp /home/mysql/share/mysql/mysql.server /etc/init.d/mysqld

10. cp /home/mysql/share/mysql/my-example.cnf /etc/my.cnf : configure 시 설정파일 위치로 변경

11. mysql_install_db : 초기화 DB 생성



12. groupadd -r mysql

13. useradd -M -c MySQL server -d /home/mysql -g mysql -s /bin/false -r mysql

    : mysql 계정으로 사용하도록 configure 하였으므로 계정생성

14. chown -R mysql.mysql /home/mysql/var : 소유권 변경

15. chkconfig mysqld on : 부팅시 자동실행

16.  /etc/init.d/myslqd start : 실행



<PHP 설치>



1. tar xvfz php-XXXX.tar.gz : 압축풀기

2. cd v-XXX : 해당디렉토리로 이동

3. configure

   ./configure --help : 도움말 및 옵션보기

   --with-mysql=/home/mysql : db를 mysql로 사용하고, 디렉토리 정의

   --enalbe-versioning : php 3,4 버전 호환

   --enable-trans-sid : php4의 세션관리기능 사용

   --with-apxs=/usr/sbin/apxs : php를 DSO방식으로 컴파일 하기 위해 apxs 위치 설정

   --with-config-file-path=/etc : 설정파일 위치 지정

   --disable-debug : zend 옵티마이저를 사용할수 있게 설정

4. make : 바이너리와 설정파일 생성

   5. make install : 바이너리와 설정파일을 지정한 디렉토리로 복사

   6. cp ./php.ini-optimized /etc/php.ini : --with-config-file-path로 지정한 디렉토리에 설정파일 카피

   7. www.zend.com/store/products/zend-optimizer.php 다운로드

   8. /etc/httpd/modules 로 ZendOptimizer.so 를 카피

   9. vi /etc/php.ini 에 다음줄 2줄 추가

      zend_optimizer.optimization_level=15

      zend_extension=/etc/httpd/modules/ZendOptimizer.so

   10. vi httpd.conf에서 Addtype에 php3, phtml, inc, ph, html등 추가

   11. /etc/init.d/httpd restart : php 재실행

   

<httpd.conf 설정>

ServerType standalone : 구동형태를 standalone을 기본값으로 함

PidFile /var/run/httpd.pid : 구동되는 프로세서의 PID가 기록되는 파일 설정

Timeout 300 : 클라이언트와 서버간 연결지연 시간 오류 설정 : 초단위

KeepAlive On : 서버연결에 한번이상 요청을 허용

MaxKeepAliveRequest 100 : keepalive가 on인경우 서버에 요청할수 있는 프로세서의 갯수

KeepAliveTimeout 5 : 클라이언트가 5초이내에 다음요청이 없을때 접속 끊음

MinSpareServers 5 : 순간적인 시스템 부하를 줄이기 위해 여분의 데몬을 생성하고, nobody로 구성되는 httpd 생성

MaxSpareServers 10 : 여분의 데몬 제한

StartServers 5 : 여분의 httpd 구동

MaxClients 256 : 동시접속자수 제한

MaxResuestPerChild 100 : 하나의 프로세스가 서비스를 몇번하고 소멸될 것인가

LoadModule php4_module libexec/libphp4.so : 아파치 모듈

AddModule mod_php4.c :LoadModule과 동시 설정

Port 80 : 80 포트 사용

User nobody : 데몬의 소유권

Group nobody : 데몬의 그룹권한

ServerAdmin root@devank.co.kr : 웹서버에 문제가 발생시 관리자메일 주소를 보여줌

DocumentRoot "/home/httpd/htdocs" : 사이트 루트디렉토리

UserDir public_html : 일반사용자의 ~를 통해 사용할 경우 디렉토리..

DirectoryIndex index.html index.php, index.cgi : 웹사이트 초기파일

AccessFileName .htacess : 특정디렉토리 사용자 인증 설정 파일

DefaultType text/plain : 알수없는 확장자를 만났을때.. text로처리

HostnameLookups off : access_log에 IP대신 host명으로 기록

ErrorLog /home/httpd/logs/error_log : 로그파일기록

CustomLog /home/httpd/logs/access_log common : 클라이언트 접속 로그

ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/ : cgi 실행 설정

AddType application/x-httpd-php .php .php3 : 웹서버가 인식할 확장자





/etc/init.d/httpd configtest : 문법적 에러 점점



NameVirtualHost 211.233.58.196

<VirtualHost 211.233.58.196>

ServerAdmin root@devbank.co.kr

DocumentRoot /home/ohhappy/docs

ServerName devbank.co.kr

ErrorLog logs/error_log

CustomLog logs/access_log common

</VirtualHost>



Options Indexes FollowSymLinks MultiViews 에서 indexes란 단어를 빼면 디렉토리인덱스 서비스 제외



<ftp 시작>

/etc/init.d/proftd-standalone start

 

<Sendmail>



1. Sendmail 패키지

   - sendmail-8.11.2.-14.i386.rpm

   - sendmail-cf-8.11.2-14.i386.rpm

2. vi /etc/mail/aliases

   webmaster : root #webmaster로 오는 메일을 root가 수신

   sales : neo,nvng,bermine,nvng@devbank.co.kr #sales@devbank.co.kr로 오는메일을 neo, nvng, bermine 계정이 동시에 수신

   

3. vi /etc/mail/access



   211.233.13.195 RELAY   : 릴레이 허용

   devbank.co.kr    RELAY   : 릴레이 허용

   yahoo.com        REJECT  : yahoo.com 메일 발송 거부



4. vi /etc/mail/local-host-names

   : 복수의 메일 호스트를 사용할경우 반드시 설정

   devbank.co.kr

   designter.com

   ns.devbank.co.kr

   

5. vi /etc/mail/virtusertable



   stock@eoholdings.co.kr lucky

   lucky@eoholdings.co.kr lucky

   

   : 한계정이 여러개의 메일을 일괄수신하게 하는 것



6. smtp 사용자 인증



   cyrus-sasl-1.5.24-17 : 설치

   cyrus-sasl-devel-1.5.24-17 : 설치

   vi /usr/lib/sasl/Sendmail.conf

   pwcheck_method:pam 을 pwcheck_method:sasldb 로 변경

   

   saslpasswd -u [호스트명] [사용자명] : sasldb 생성, 계정생성

   sasldblistusers : 사용자 리스트 출력

   

   vi /etc/mail/sendmail.mc

   DEMON_OPTIONS('Port=smtp, Addr=127.0.0.1, Name=MTA')dnl : 수정

   m4 /etc/mail/sendmail.mc > sendmail.cf :sendmail.cf 생성

   sendmail.cf를 /etc로 복사

   

   /etc/init.d/sendmail restart : 샌드메일 재구동

   

7. 메일계정만 사용하는 계정생성

   useradd -M -s /bin/false 사용자명  

   

<기본보안설정>



1) 패스워드 길이 강제 지정 (vi /etc/login.defs)



  PASS_MIN_LEN 5

  to read;

  PASS_MIN_LEN 8



2) 루트계정의 자동타임아웃지정 (vi /etc/profile)



  TMOUT=7200 (초단위시간, HISTSIZE 아래 설정)



3) 사용하지 않는 콘솔 프로그램 비활성화



  rm -f /etc/security/console.apps/halt

  rm -f /etc/security/console.apps/poweroff

  rm -f /etc/security/console.apps/reboot

  rm -f /etc/security/console.apps/shutdown

  rm -f /etc/security/console.apps/xserver (X 서버 설치시만)



4) 파일의 권한 설정



  chattr +i /etc/services (서비스네임과 포트넘버가 기록된 파일)

  chattr +i /etc/passwd

  chattr +i /etc/shadow

  chattr +i /etc/group

  chattr +i /etc/gshadow



  (권한을 풀때는 -i 로 옵션을 변경해 주면된다.)



  chattr -R +A /var/spool  (for a news and mail)

  chattr -R +A /chache  (for a proxy caches)

  chattr -R +A /home/httpd/ona   (form a web page)



  (해당 디렉토리에 atime 속성을 적용한다.)



5) 루트가 열수있는 콘솔을 하나로 제한 (vi /etc/securetty)



  tty1 만남겨두고 모두 주석처리한다.



6) 사용하지 않는 유저 및 그룹삭제



  userdel adm

  userdel lp

  userdel sync

  userdel shutdown

  userdel halt

  userdel news

  userdel uucp

  userdel operator

  userdel games

  userdel gopher

  userdel ftp



  groupdel adm

  groupdel lp

  groupdel news

  groupdel uucp

  groupdel games

  groupdel dip

  groupdel pppusers

  groupdel popusers

  groupdel slipusers



7) 누구나 루트가 되는 것 방지하기



  1단계.

  (vi /etc/pam.d/su) 다음 내용추가

  auth sufficient /lib/security/pam_rootok.so debug

  auth required /lib/security/pam_wheel.so group=wheel



  2단계.

  usermod -G10 [사용할 계정이름]

  (G는 그룹리스트 추가를 10은 wheel 그룹을 의미함)

  (루트가 될수 있는 계정을 등록한다.)



8) 사용자의 시스템 자원제한



  1단계.

  (vi /etc/security/limits.conf)



  hard core 0      (코어파일 생성의 저지)

  hard rss  5000    (계정별 사용자 메모리를 5메가로 제한)

  hard nproc 20   (프로세스 숫자를 20개로 제한)



  2단계.

  (vi /etc/pam.d/login)



  session  required  /lib/security/pam_limits.so



9) 특정 파티션, 폴더의 권한 설정하기



  fstab 파일의 옵션

  default  모든 것이 가능함

  noquota  사용자의 하드용량을 제한함

  nosuid  suid/sgid 엑세스를 못하게 함

  nodev  특별한장치나 문자 디바이스를 엑서스 하지 못하게 한다.

  noexec  실행파일을 실행할수 없도록 함

  quota  사용자의 용량을 제한하지 않음

  ro  읽기만 허용

  rw  읽기 쓰기 허용

  suid  SUID/SGID를 허용



  (vi /etc/fstab)

  /dev/sda11 /tmp  ext2  defaults 1 2

  /dev/sda6  /home ext2  defaults 1 2



  to read;



  /dev/sda11 /tmp ext2 defaults,rw,nosuid,nodev,noexec 1,2

  /dev/sda11 /home ext2 defaults,rw,nosuid,nodev,nodev 1,2



  재부팅해야 적용됨



10) rpm 파일들을 안전한 장소에 옮긴후 퍼미션을 변경해 준다.



  chmod 700 /bin/rpm

       

11) 명령어 히스토리 파일 갯수 제한 (vi /etc/profile)



  HISTFILESIZE=20

  HISTSIZE=20



  (사용자의 홈디렉토리의 .bash_histroy 파일에 20개까지만 저장)



12) Lilo 부트 로더 설정



  1단계.  (vi /etc/lilo.conf)



  boot=/dev/sda

  map=/boot/map

  install=/boot/boot.b

  prompt

  timeout=00  (부팅이미지 지연시간, 멀티부팅시는 00불가)

  Default=linux

  restricted  (싱글모드에 패스워드를 걸기위한 옵션)

  password=<password> (싱글유저접속시 패스워드)

  image=/boot/wmlinuz-2.2.12-20

  lable=linux

  initrd=/dev/sda6

  read-only



  2단계. 파일이 암호화가 안되어 있으므로 슈퍼유저권한설정



  chmod 600 /etc/lilo.conf



  3단계. 효과적용단계



  /sbin/lilo -v



  4단계. 속성변경



  chattr +i /etc/lilo.conf



13) ctrl+alt+del 비활성



  1단계.



  (vi /etc/inittab)



  ca::ctrlaltdel:/sbin/shutdown -t3 -r now



  to read;



  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now



  2단계. 적용실행



  /sbin/init q



14) init.d 디렉토리 파일들의 파일 권한 변경 (프로세스들과 부팅시 필요한 파일들임



  chmod -R 700 /etc/rc.d/init.d/*



15) rc.local 파일 설정 (로그인시 컴터의 정보가 못나오게 함)



  1단계. (vi /etc/rc.d/rc.local) 다음을 주석처리한다.



  #echo "" > /etc/issue

  #echo "$R" >> /etc/issue

  #echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue

  #

  #cp -f /etc/issue /etc/issue.net

  #echo >> /etc/issue



  2단계. 다음 파일을 지운다.



  rm -f /etc/issue

  rm -f /etc/issue.net



16) setuid 걸린 프로그램의 퍼미션제거



  1단계. 찾는 법



  find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

  (04000은 setuid 이며, 02000은 setgid임.. 이런파일은 누구나 사용할수 있다.)



  2단계. 권한ㅇ르 지워야할 파일들



  chmod a-s /usr/bin/chage

  chmod a-s /usr/bin/gpasswd

  chmod a-s /usr/bin/wall

  chmod a-s /usr/bin/chfn

  chmod a-s /usr/bin/chsh

  chmod a-s /usr/bin/newgrp

  chmod a-s /usr/bin/write

  chmod a-s /usr/bin/usernetctl

  chmod a-s /usr/bin/traceroute

  chmod a-s /bin/mount

  chmod a-s /bin/umount

  chmod a-s /bin/ping

  chmod a-s /bin/netreport



17) /etc/sysctl.conf 파일 설정



  (vi /etc/sysctl.conf)



  net.ip4.icmp_echo_ignore_all = 1  (핑요청으로부터 보호)

  net.ipv4.icmp_echo_ignore_brodacasts = 1 (브로드캐스트로부터의 보호)

  net.ipv4.conf.all.accept_source_route = 0 (라우팅 요청으로의 보호)

  net.ipv4.tcp_syncookies = 1   (tcp syn cookie로부터 보호/예전 야후공격방법)

  net.ipv4.conf.all.accept_redirects = 0  (ICMP 재접속 요청으로 부터 보호)

  net.ipv4.ip_always_defrag = 1   (패킷분할요청으로 부터 보호)

  net.ipv4.icmp_ignore_bogus_error_responses = 1 (가짜 에러메시지 호출 방지)

  net.ipv4.conf.all.rp_filter = 1   (IP Spoofing 공격으로 부터 보호)

  net.ipv4.conf.all.log_martians = 1  (Log Spoofed Packets, Source Routed Packets, Redirect Packets 보호)

  vm.bdflush=100 1200 128 512 15 5000 500 1884 2 (bdflush 파라미터)

  wm.buffermem=80 10 60    (bdffermem 파라미터)

  net.ipv4.ip_local_port_range=32768 61000 (ip_local_port_range 파라미터)

  fs.file-max=8192    (file-max 파라미터)

  fs.inode-max=32768    (inode-max 파라미터)

  net.ipv4.tcp_fin_timeout=30   (TCP/IP 접속시간 조절)

  net.ipv4.tcp_keepalive_time=1800

  net.ipv4.tcp_window_scaling=0

  net.ipv4.tcp_sack=0

  net.ipv4.tcp_timestamps=0



18) /root/.bashrc 파일수정



  (vi /root/.baxhrc)



  ulimit -u unlimited   (max user processes 제한)

  ulimit -n 9000   (시스템에서 열수 있는 파일수 증가)



  (ulimit  -a 로 결과확인)

<로그분석 : webalizer>

1) 파일다운로드 (http://www.webalizer.com)

2) cd /usr/local 에 파일 카피 후

3) 압축 풀기 :  tar xvfz webalizer-2.01-10-src.tar (webalizer 디렉토리 에 풀림)

4) 웹얼라이저 디렉토리로 이동후 configure 를 실행

   ./configure -with-language=korea (한국어 지원옵션 선택)

5) make (컴파일한다.)

6) make install (인스톨한다.)

7) 상세사용법 (http://www.webalizer.co.kr/)



출처 : http://blog.empas.com/uvin74/




--------------------------------------------------광고(Advertising)-------------------------------------------------------------------------------------



리눅스 Tip

Linux Tip

  1. 서버 점검 명령어

    Read More
  2. 리눅스 시스템 종료 명령어

    Read More
  3. 데비안 나눔고딕 설치

    CategoryDebian
    Read More
  4. audacious plugin 폴더위치

    Read More
  5. Youtube 동영상 다운로드

    CategoryUbuntu
    Read More
  6. vmware-workstation 삭제방법

    CategoryUbuntu
    Read More
  7. Xpad

    CategoryUbuntu
    Read More
  8. ubuntu kvm install

    Read More
  9. 우분투 시스템세팅이 실행되지 않은다면

    CategoryUbuntu
    Read More
  10. 우분투 8.10 바탕화면

    CategoryUbuntu
    Read More
  11. umount: /mnt/cdrom : device is busy

    Read More
  12. Mysql 자동 백업 하기

    CategoryDB
    Read More
  13. php 업로드 용량 제한 변경하기

    Read More
  14. MySQL에서 백업 및 복구

    CategoryDB
    Read More
  15. 1. Apache + PHP + ?MySQL + GD 설치

    CategoryDebian
    Read More
  16. tar 명령어로 압축하기, 압축풀기

    Read More
  17. Making prettier URLs with mod_rewrite

    CategoryDebian
    Read More
  18. 지메일을 리눅스 파일시스템으로 쓰는 방법

    Read More
  19. 리눅스 유용한 명령어

    Read More
  20. 델(dell) 제품에 데비안(Debian) 배포본 설치시 부팅불능 대처법

    CategoryDebian
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8