Download presentation
Presentation is loading. Please wait.
Published byLiliána Csonkané Modified 5년 전
1
1. 설치환경 apache php mysql proftp Linux 정보보안학과 조정현
2
Index 설치 환경 Library 3. mysql 4. httpd php httpd.conf 7. proftpd
4. httpd php httpd.conf 7. proftpd 8. web server test 9. apm 연동 테스트 정보보안학과 조정현
3
/usr/lib /usr/include
1. 설치환경 1. 설치 환경 System: cpu - p4-3.2ghz ram - 512mb hdd – 160gb Linux: Centos kernel_ el5 library and utility zendoptimizer-3.0.1 gd libpng-1.2.5 zlib-1.2.3 freetype-2.1.5 libiconv-1.12 libxml libxslt jpegsrc.v6b httpd-2.2.9 mysql php-5.2.5 proftpd-1.3.1 qmail /usr /usr/local /usr/lib /usr/include 정보보안학과 조정현
4
"Development Libraries“, "Development Tools“ 을 꼭 설치
1. 설치 환경 Linux 설치시 "Development Libraries“, "Development Tools“ 을 꼭 설치 하여 gcc 관련 툴이 설치되어야 한다. 설치하지 않았을 경우. Yum 으로 설치.. rpm –qa 로 확인. # yum groupinstall "Development Libraries" # yum groupinstall "Development Tools" src]# rpm -qa | grep make make el5 automake automake automake14-1.4p6-13 automake imake automake src]# rpm -qa | grep gcc gcc el5 gcc-c el5 libgcc el5 gcc-gfortran el5 정보보안학과 조정현
5
1 2 파일 다운로드하기 ftp 서버 접속하기 다운로드한 파일 확인 httpd-2.2.9 mysql-5.0.67
1. 설치환경 1. 설치 환경 파일 다운로드하기 ftp 서버 접속하기 1번 그룹의 File 들을 /usr/local/src/apm 디렉터리에. 2번 그룹의 File 들을 /usr/local/src/libs 디렉터리에 다운로드 한다. httpd-2.2.9 mysql php-5.2.5 proftpd-1.3.1 qmail 다운로드한 파일 확인 1 “ftp superuser.co.kr” 로 접속하여 파일들을 받거나 “ftp ” 로 접속하여 파일들을 받는다. ID: ftp PW: 없음 library and utility zendoptimizer-3.0.1 gd libpng-1.2.5 zlib-1.2.3 freetype-2.1.5 libiconv-1.12 libxml libxslt jpegsrc.v6b 2 정보보안학과 조정현
6
library files libpng-1.2.5 zlib-1.2.3 Library file들을 압축을 해제하고 설치한다.
libiconv-1.12 libxml libxslt jpegsrc.v6b freetype-2.1.5 gd libpng 설치 libs]# tar xvfz libpng tar.gz libs]# cd libpng-1.2.5 libpng-1.2.5]# cp scripts/makifile.linux makefile libpng-1.2.5]# make && make install libpng-1.2.5]# cd .. zlib 설치 libs]# tar xvfz zlib tar.gz libs]# cd zlib-1.2.3 zlib-1.2.3]# ./configure zlib-1.2.3]# make && make install zlib-1.2.3]# cd .. libiconv 설치 libs]# tar xvfz libiconv-1.12.tar.gz libs]# cd libiconv-1.12 libiconv-1.12]# ./configure libiconv-1.12]# make && make install libiconv-1.12]# cd .. libxml2 설치 libs]# tar xvfz libxml tar.gz libs]# cd libxml libxml ]# ./configure libxml ]# make && make install libxml ]# cd .. libxslt 설치 libs]# tar xvfz libxslt tar.gz libs]# cd libxslt libxslt ]# ./configure libxslt ]# make && make install libxslt ]# cd .. jpeg 설치 libs]# tar xvfz jpegsrc.v6b.tar.tar libs]# cd jpeg-6b jpeg-6b]#./configure jpeg-6b]# make jpeg-6b]# make test jpeg-6b]# mkdir /usr/local/man/man1 jpeg-6b]# make install jpeg-6b]# cd .. freetype2 설치 libs]# tar xvfz freetype tar.tar libs]# cd freetype-2.1.5 freetype-2.1.5]# ./configure freetype-2.1.5]# make && make install freetype-2.1.5]# cd .. gd 설치 libs]# tar xvfz gd tar.gz libs]# cd gd gd ]# ./configure --prefix=/usr --with-png=/usr –with-freetype=/usr –with-fontconfig=/usr –with-jpeg=/usr –with-xpm=/usr 정보보안학과 조정현
7
ls /usr/include ls /usr/lib
2. Library ls /usr/include ls /usr/lib Compile 오류 ./configure 를 하고 compile(make)도중 오류가 날 수 있다. 이런 경우 관련 Library file의 위치경로가 잘 못 설정되어 오류가 나는 경우가 대부분이다. 경로 설정을 안 해줬을 경우 default 값으로 라이브러리 파일들은 /usr 밑에 /usr/lib 라이브러리의 헤더파일들은 /usr/include 에 설치가 되게 된다. 위 디렉토리안에서 파일을 찾지 못했다면 … 다시 설치해야 한다. 설치할 디렉토리를 지정하고자 한다면 " --prefix=directory " 제대로 설치 되었는지 각 Library file들을 확인해보자. 정보보안학과 조정현
8
mysqld 프로세스확인 mysql 유저 생성 compile,, mysql 환경설정,, 시작스크립트 복사
mysql database 초기화 및 디렉토리 퍼미션 설정 mysql 패스워드 설정 mysql ]# user –M –s /bin/false mysql mysqld 프로세스확인 mysql ]# ./configure --prefix=/usr/local/mysql \ > --localstatedir=/usr/local/mysql/data \ > --disable-shared \ > --enable-assembler \ > --with-thread-safe-client \ > --with-mysql-user=“mysql” \ > --with-client-ldflags=-all-static \ > --with-mysqld-ldflags=-all-static \ > --with-readline \ > --without-debug \ > --without-docs \ > --without-bench \ > --with-charset=utf8 \ > --with-extra-charsets=all mysql ]# make && make install mysql ]# cp support-files/my-medium.cnf mysql ]# cp support-files/mysql.server etc/init.d/mysqld mysql ]# chmod 755 /etc/init.d/mysqld mysql ]# /usr/local/mysql/bin/mysql_install_db mysql ]# chown –R mysql:mysql /usr/local/mysql mysql ]# ln –s /usr/local/mysql/bin/mysql /usr/bin/ mysql ]# ln –s /usr/local/mysql/bin/mysqldump /usr/bin/ mysql ]# /etc/init.d/mysqld start Staring MySQL [ OK ] mysql ]# mysql ]# /usr/local/mysql/bin/mysqladmin –u root password “암호” 정보보안학과 조정현
9
[root@localhost httpd-2.2.9]# ./configure \
4. Httpd 컴파일 및 설치 아파치 시작 스크립트 복사 및 수정 httpd-2.2.9]# ./configure \ > --prefix=/usr/local/httpd \ > --enable-so \ httpd-2.2.9]# make && make install httpd-2.2.9]# cp /usr/local/server/httpd/bin/apachectl /etc/init.d/httpd 정보보안학과 조정현
10
컴파일 또는 설치 중 에러 발생할 경우 > --enable-sysvshm \ > --enable-sockets \
3. Php > --enable-sysvshm \ > --enable-sockets \ > --enable-ftp \ > --with-snmp \ > --with-openssl=/usr \ > --with-zlib=/usr \ > --with-jpeg-dir=/usr \ > --with-png-dir=/usr \ > --with-freetype-dir=/usr \ > --with-gd=/usr \ > --enable-gd-native-ttf \ > --with-ttf \ > --with-gettext \ > --enable-exif \ > --with-xpm-dir=/usr \ > --with-libxml-dir=/usr \ > --with-pcre-dir=/usr \ > --with-imap \ > --with-imap-ssl \ > --with-kerberos \ > --with-curl \ > --with-ncurses \ > --with-iconv-dir=/usr \ > --with-xsl=/usr \ --enable-wddx \ PHP 컴파일 및 설치 php-5.2.5]# ./configure \ > --prefix=/usr/local/php \ > --with-apxs2=/usr/local/httpd/bin/apxs \ > --with-mysql=/usr/local/mysql \ > --with-mysqli=/usr/local/mysql/bin/mysql_config \ > --with-pdo-mysql=/usr/local/mysql \ > --with-config-file-path=/usr/local/httpd/conf \ > --enable-magic-quotes \ > --enable-mod-charset \ > --enable-mbstring \ > --enable-sigchild \ > --enable-safe-mode \ > --enable-bcmath \ > --enable-calendar \ > --enable-sysvsem \ > --enable-sysvmsg \ 컴파일 또는 설치 중 에러 발생할 경우 각종 라이브러리들이 설치가 안되어 있을 경우 에러가 발생하는데 아래처럼 라이브러리들을 yum 으로 설치해주거나 소스파일로 설치해준다. yum install libjpeg-devel -y yum install libpng-devel -y yum install libXpm-devel -y yum install freetype-devel -y yum install gd-devel -y yum install libc-client -y yum install libc-client-devel -y yum install net-snmp-devel -y yum install libmcrypt libmcrypt-devel –y php-5.2.5]# make && make install 정보보안학과 조정현
11
5. Php php.ini 복사하기 php-5.2.5]# cp php.ini-dist /usr/local/httpd/conf/php.ini 정보보안학과 조정현
12
vi httpd.conf vi httpd.conf
6. Httpd.conf “httpd.conf “에 “php” 를 인식하도록 수정 vi httpd.conf vi httpd.conf 정보보안학과 조정현
13
가상호스트(virtual hosts) httpd.conf 의 default 값은
6. Httpd.conf 가상호스트(virtual hosts) httpd.conf 의 default 값은 웹페이지를 /usr/local/httpd/htdocs 디렉토리에 저장해야 한다. 보통 원격접속지에서 ftp프로그램(알ftp, sunny ftp 등) 으로 접속하여 웹페이지 작업을 하게 되는데 /usr/local/httpd/htdocs 디렉터리에 파일들을 업로드시키기위해서는 root 계정으로 접속해야한다. 아니면 다른 계정으로 올려서 다시 파일을 이동시켜줘야 한다. root 계정을 이용하여 ftp 를 이용하는 것은 보안상 좋지 않고, 후자의 경우는 불편하고 번거롭다. 그래서 가상호스트(/usr/local/httpd/conf/extra/httpd-vhosts.conf 파일 수정 ) 로 웹서버를 구축한다. 정보보안학과 조정현
14
httpd.conf 가상호스트로 설정…httpd.conf 파일 이해 ./extra/httpd-vhosts.conf
6. Httpd.conf 가상호스트로 설정…httpd.conf 파일 이해 httpd.conf ./extra/httpd-vhosts.conf ./extra/httpd-others.conf include include 정보보안학과 조정현
15
vi. httpd-vhosts.conf vi httpd.conf
6. Httpd.conf vi. httpd-vhosts.conf <virtualhost *:80>……~…</virtualhost> 이 부분을 수정해야 한다. 위 부터 차례로 설명. 서버관리자의 이메일 주소 웹서비스할 파일들이 들어가는 디렉토리 지정 서버의 도메인 네임 또는 IP주소 vi httpd.conf 주석 처리 되어 있는 이 부분을 # Virtual hosts #Include conf/extra/httpd-vhosts.conf Include conf/extra/httpd-vhosts.conf 로 ‘#’을 빼준다. 이 파일을 수정 하여 가상호스트를 구축 정보보안학과 조정현
16
[root@localhost /]# /etc/init.d/httpd start
6. Httpd.conf httpd 시작 port 80 열려있는 지 확인 /]# /etc/init.d/httpd start /]# ps -ef | grep httpd root :37 ? :00:00 /usr/local/httpd/bin/httpd -k start daemon :37 ? :00:00 /usr/local/httpd/bin/httpd -k start daemon :37 ? :00:00 /usr/local/httpd/bin/httpd -k start daemon :37 ? :00:00 /usr/local/httpd/bin/httpd -k start daemon :37 ? :00:00 /usr/local/httpd/bin/httpd -k start daemon :37 ? :00:00 /usr/local/httpd/bin/httpd -k start root :37 pts/ :00:00 grep httpd 확인해보니 httpd가 프로세스에 띄어져 있다. /]# netstat -an | grep LISTEN | grep 80 tcp ::: :::* LISTEN unix [ ACC ] STREAM LISTENING /var/run/dbus/system_bus_socket unix [ ACC ] STREAM LISTENING /tmp/ssh-asGQk27220/agent.27220 /]# 80번 포트가 잘 열려있다. 정보보안학과 조정현
17
Centos5.2 에 Library files, mysql, httpd, php를 소스파일로 설치
6. Httpd.conf 지금까지… Centos5.2 에 Library files, mysql, httpd, php를 소스파일로 설치 httpd.conf 수정, 80번 포트 확인. 앞 장부터… ftp 서비스를 위해 proftpd를 설치 하고 web server test 를 시작 ….php로 아주 간단한 게시판을 만들어 db 와 연동되는 걸 확 인한다. 그 다음 메일 서버 구축을 위한 Qmail을 설치해 본다. 정보보안학과 조정현
18
anonymous (계정 ftp로 alias) 접속 vi /etc/xinetd.d/proftpd
standalone, 또는 inetd 방식 선택 standalone proftpd 데몬이 메모리에 항상 상주를 하여 ftp service를 해주는 형태 inetd inetd라는 데몬 프로그램이 client가 요청할때 proftpd를 호출하는 형태 현재 시스템은 메모리가 512램으로 작고 사용자가 적을 것이라 예상되기 때문에 inetd방식으로 한다. xinetd 를 재시작한다. /]# /etc/rc.d/init.d/xinetd restart xinetd ? ?? ?: [ OK ] xinetd (?)? ?? ?: [ OK ] xinetd 확인 bin]# ftpwho inetd FTP daemon: no users connected proftpd 다운로드 컴파일 및 설치 proftpd.conf 수정 xinetd 방식으로 운영하기 src]# wget ftp://ftp.proftpd.org/distrib/source/proftpd tar.gz src]# tar xvfz proftpd tar.gz src]# ls apm libs proftpd proftpd tar.gz src]# ./configure --prefix=/usr/local/proftpd --enable-autoshadow ….생략….. src]# make && make install proftpd-1.3.1]# ls /usr/local Zend bin etc games httpd include lib libexec mysql php proftpd sbin share src src]# cd /usr/local/proftpd proftpd]# ls bin etc include libexec man sbin share var proftpd]# cd etc etc]# ls proftpd.conf etc]# vi proftpd.conf /etc/xinetd.d/proftpd 가 없으면 새로 생성 xinetd.d]# vi proftpd anonymous (계정 ftp로 alias) 접속 vi /etc/xinetd.d/proftpd /]# cd etc/xinetd.d xinetd.d]# ls chargen-dgram discard-dgram ekrb5-telnet proftpd chargen-stream discard-stream gssftp rsync cvs echo-dgram klogin tcpmux-server daytime-dgram echo-stream krb5-telnet time-dgram daytime-stream eklogin kshell time-stream xinetd.d]# vi proftpd 정보보안학과 조정현
19
selinux를 적용된 시스템에서는 디렉토리 보안문맥이 user_home_t로 구성되어
8. web server test selinux를 적용된 시스템에서는 디렉토리 보안문맥이 user_home_t로 구성되어 퍼미션이 755로 되어있어도 80포트에서 접근이 불가능. 해당 디렉토리를 chcon 을 이용해 변경 home]# ls -lZ drwx-----x ambition6 ambition6 user_u:object_r:httpd_sys_content_t ambition6 drwx-----x ataraxia ataraxia user_u:object_r:user_home_t ataraxia drwxrwxrwx ftp ftp user_u:object_r:httpd_sys_content_t ftp drwx root root system_u:object_r:file_t lost+found drwx-----x test test user_u:object_r:httpd_sys_content_t test home]# home]# chcon –R –t httpd_sys_content_t /home/ataraxia home]# ls –lZ /home/ataraxia drwx-----x ataraxia ataraxia user_u:object_r:httpd_sys_content_t ataraxia 정보보안학과 조정현
20
웹서버 테스트 phpinfo() 함수 출력….
8. web server test 웹서버 테스트 phpinfo() 함수 출력…. 정보보안학과 조정현
21
mysql DB 생성 및 사용자에게 DB 권한 부여하기
9. apm 연동 테스트 mysql DB 생성 및 사용자에게 DB 권한 부여하기 정보보안학과 조정현
22
9. apm 연동 테스트 간단한 방명록 만들기 정보보안학과 조정현
23
insert.html, insert.php, list.php 파일 ftp로 올리기
9. apm 연동 테스트 insert.html, insert.php, list.php 파일 ftp로 올리기 정보보안학과 조정현
24
9. apm 연동 테스트 정보보안학과 조정현
Similar presentations