사이트 내 전체검색
검색목록
[linux] 시스템 보안 세팅과 mysql 설치
로빈아빠
https://cmd.kr/server/278 URL이 복사되었습니다.

본문

시스템 보안 세팅과 mysql 설치
 
최적화하여 APM 설치하기
(본제목은 그렇지만..  시스템 보안 세팅과 mysql 설치가 주 내용입니다.)

예전 phpschool V1에서 가져온 자료입니다.
보안과 mysql 설정 등이 있읍니다.
======================================================================

이곳에서 항상 많은 도움을 받고 있는 사람 입니다.
이곳의 자료와 제가 알고있는것을 합해서 다음과 같은 간단한 문서를 만들었습
니다. 항상 설치 문서를 접하고 느끼는 문제는 APM 구축시 관련 사항에 대해서
는 별다른 설명이 없어서 고생하다가 초보고 허접이지만 저보다 더 초보인 사
람에게 도움이 될 것 같아서 이렇게 글을 업 합니다.

RedHat Linux 7.0 for A.P.M Install
아래의 작업을 하기전에 www.redhat.com 에 가서 update및 patch 파일을 다운
받아서 서버 시스템을 upgrade한다.
1. 보안에 대한 기본 설정.(7.0 외의 버전은 메일로 문의)
1) 불필요한 서버 데몬은 모두 제거하거나 서비스를 중지 시킨다.
  (본인은 기본 베이스 설치후 xfs와 sendmail 서버데몬을 중지 시켰다.)
2) xinetd.d 설정 파일 제거(다시 해당 서비스를 사용하려면 백업은 필수).
A. /etc/xinetd/finger 파일 제거
B. /etc/xinetd/rlogin 파일 제거
C. /etc/xinetd/telnet 파일제거 (telnet 접속은 sshd 데몬을 사용 한다.)
(만약에 sshd 클라이언트 프로그램이 없으면 아래와 같이 설정)
/etc/hosts.deny 파일에 아래줄 추가
in.telnetd:ALL (모두 이용자 사용 불가 설정)
/etc/hosts.allow 파일에 아래줄 추가
ALL:XXX.XXX.XXX.XXX (사용가능 이용자 아이피 입력)

3) 파일들의 권한 설정 (/usr/bin 디렉토리에 있는 파일)
A. chmod 700 finger
B. chmod 700 nslookup
C. chmod 700 gcc
D. chmod 700 cc
E. chmod 700 suidperl
F. chmod 700 whereis
G. chmod 700 sperl5.6.0
H. chmod 700 c++
I. chmod 700 make
J. chmod 700 finger
K. chmod 700 pstree
L. chmod 700 rlog
M. chmod 700 rlogin
N. chmod 700 which
O. chmod 700 who
P. chmod 700 w
Q. chmod 700 mail
R. chmod 700 /bin/mail
S. chmod 700 /bin/ps
T. chmod 700 /etc/hosts
U. chmod 700 /etc/hosts.deny
V. chmod 700 /etc/hosts.allow

4) 기본 ftp 설정 파일 변경(아래와 참고) => 특정 사용자만 사용 가능
기존 설정을 아래와 같이 변경 (그룹 지정과 사용 아이피 설정)
class  unitebuy        real  210.222.63.
 
관리자 이메일 설정
email cto at unitebuy.com

5) ping service 설정.
/etc/sysctl.conf파일에 다음줄 추가
net.ipv4.icmp_echo_ignore_all = 1 (응답하지 않는다)
net.ipv4.icmp_echo_ignore_all = 0 (응답 한다)

2. sendmail 사용시 전자우편만 사용할수 있는 계정추가 하기
(php 내장 mail()함수 사용 때문에)

# useradd userid -M -s /bin/false
-M = 홈디렉토리를 만들지 않는다
-s = 셀지정 한다
/bin/false = 실제로는 존재하지않는 셀 설정 방법

비밀번호를 설정 한다.
#passwd userid :

다음과 같이 설정 하면 메일이외의 계정은 사용할수 가 없다.
메일은 아웃룩과 같은 메일 클라이언트로 받아볼수가 있다.

3. 간단한 커널 최적화
(/etc/sysctl.conf에 아래 사항을 추가 한다.)

vm.bdflush= 100 1200 256 512 15 5000 500 1884 2

vm.buffermen = 80 10 60

fs.file-max = 65536

fs.inode-max = 32768

#Web Server Open Port Range
net.ipv4.ip_local_port_range = 32768 61000

4. MySql 서버 설치 하기(MySql 3.23.30.gamma 기준). 
1) MySql 소스 다운 받기 : www.mysql.com 에 가면 있다.
2) 설치하고자 하는 서버에 /usr/local/src 디렉토리에 복사한다.
(만약 디렉토리가 없으면 새로 만든다)
3) /usr/local/src 디렉토리에서 tar ?xvzf mysql-3.23.30-
gamma.tar.gz 라고 입력하여 압축을 해제 한다.
4) mysql-3.23.30-gamma 라는 디렉토리가 생성되고 그안에 소스 파일이 있다.
5) 대한민국 사용자에게 맞게 한글설정을 하고 속도를 높이기 위해서 다음과
같이  구성화일을 실행 한다(모두 한줄에 입력)

(1) ./configure --prefix=/usr/local/mysql --localstatedir=/db_data
--enable--large-files --with-charset=euc_kr --with-client-ldflags=-all-
static --with-mysqld-ldflags=-all-static --without-debug

주요 옵션 설명은
- prefix=/usr/local/mysql = 실행 설치 디렉토리 지정
- --localstatedir=/db_data = 데이터베이스 데이터 저장 디렉토리 지정
일반적인 사용자는 상기의 옵션 사항을 설정하지 마세요.(입력  라인에서 삭
제)  설정하지 않으면 Default로 /usr/local/mysql/var 디렉토리에 설치 됩니
다.  본인은 관리의 목적으로 시스템 파일과 분리 별도의 파티션에 저장하기
위하여 개인적으로 설정 하였습니다.
- --with-charset=euc_kr = 기본 문자 Set로 한글 선택
- --with-client-ldflags=-all-static = Client 정적 컴파일 옵션 지정
- --with-mysqld-ldflags=-all-static = 서버 정적 컴파일 옵션 지정
(정적 컴파일 옵션은 서버의 실행 속도를 향상 시킨다.)
- --without-debug = 디버그 코드 제거(서버 실행 속도 향상)
상기의 설정 사항은 MySql 서버 운영시 문제가 될 소지가 있으나 일반적은 웹
데이터 베이스 운영에는 전혀 지장이 없는것으로 본인은 생각한다.(현재 약 6
개월간 상기와 같은 조건으로 컴파일하여 아무 이상 없이 상용중 입니다.
^_^ )

(2) make 실행
(3) make install 실행
(4) cd /usr/local/mysql/bin 디렉토리로 이동
    # ./mysql_install_db 실행
(5) MySql 구성 파일 설정 (MySql의 실행 환경 설정)
/usr/local/mysql/share/mysql 디렉토리 아래에
< my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf >
다음과 같이 4개의 기본 설정 파일이 있다. 이것들 중 하나를 선택 해서
/etc/my.cnf 파일(이름은 꼭 my.cnf로)로 복사 후 변경하여서 사용한다.
본인의 생각에는 CPU가 1개 이상인 사람을 제외하고는 각각의 파일 상단에 있

메모리의 용량에 따라 선택해서 사용하면 될것으로 생각한다.
(MySql 제작회사에서 최적화 시켜 놓았으니까????).
본인의 서버 시스템은 메모리가 1G 이상 Dual CPU 시스템이라 my-huge.cnf를
my.cnf로 변경하여 사용하고 있다.(그런데로 만족할만한 수준 입니다. ^-^)
참고로 Dual CPU 시스템이면 아래의 변수 값을 수정 한다.
(파일에 따라서 없을수도 있습니다.)
set-variable = thread_concurrency=8  # Try number of CPU's*2을
set-variable = thread_concurrency=4  # Try number of CPU's*2으로 변경
한글사용을 위해서 [mysqld] 아래에 다음줄 추가 
default-character-set = euc_kr
language        = /usr/local/mysql/share/mysql/korean

(6) 드디어 MySql 서버 데몬 실행… ^_^
cd /usr/local/mysql/bin 디렉토리로 이동
# ./safe_mysqld & 실행

(7) 부팅시 MySql 서버 데몬 자동 실행 설정
여러가지 방법이 있으나 본인 은 /etc/rc.d/rc.local 파일을 편집하는 방법을
선호 한다(왜 가장 간단하니까~~~~)
/etc/rc.d/rc.local 파일에 상단에 아래 명령문을 삽입한다.
if [ -f /usr/local/mysql/bin/safe_mysqld ]; then
      /usr/local/mysql/bin/safe_mysqld &.
fi

휴~~~ 이것으로 MySql 까지 설치가 끝났다.


ps. 참고 사항..

Apache 서버는
- Timeout 300
- KeepAlive Off
- MaxKeepAliveRequests 100
- KeepAliveTimeout 1
- MinSpareServers 30
- MaxSpareServers 1024
- StartServers 30
- MaxClients 1024
- MaxRequestsPerChild 0
로 세팅...

댓글목록

등록된 댓글이 없습니다.

114 (2/3P)

Search

Copyright © Cmd 명령어 3.145.57.5