1. 설치환경 apache php mysql proftp Linux 2019-01-12 정보보안학과 20021002 조정현.

Slides:



Advertisements
Similar presentations
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
Advertisements

7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
HTTPS Packet Capture Tutorial
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

Snort & Snorby.
GTK 프로그래밍 ( 1 ) SNSLAB 발표 : 문동규.
Postfix MTA SPARCS 08 진준호 ( Alex ).
12장. 웹 서버의 설치와 운영.
Chapter 6. 리눅스 백도어 황 선 환.
Linux University of Seoul Computer Science Park Jong wook
Cross Compiler를이용한 커널 컴파일 및 포팅
PXA270 개발환경 설정 Ubuntu 실습용.
Tool Chain, JTAG, Bootp, TFTP 의 설치
MYSQL 설치.
MYSQL 설치 및 설정 아이티즌 기술연구소 김태성 연구원
NFS, FTP coearth, george.
Introduction to UNIX/Linux
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
툴 설치 가이드 Design Compiler SynopsysMentor.
Hadoop 2.완전 분산 처리.
PHP입문 Izayoi 김조흔.
MySQL RENO.
Minicom,tftp,nfs설정,vnc설정
Hostname 변경 및 Service open
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Ch. 1 LINUX SYSTEM.
[beginning] Linux & vi editor
목차 커널의 개념 및 기능 커널 포팅 램디스크.
Vsftpd 를 이용한 FTP service 와 samba 서버 구축
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
임베디드 리눅스 설치 및 동작 Lecture #5.
Mysql Install on Azure
APM 설치 Apache 에 접속하여 apache_1.33-win32-x86-no_src.msi 다운로드 Mysql
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
Cross Compiler 설치.
실시간 자원 량 정보 제공을 결합한 Heartbeat
Cross Compiler를이용한 커널 컴파일 및 포팅
rc script, 특정 port로 telnet
Mips cross compile OS LAB.
PHP 설치.
솔라리스10 3장. 솔라리스 패키지 관리.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
Device Driver 임베디드 시스템 I.
설치 환경 □ 운영체제 버전 : CentOS Linux 7.2 □ 리눅스 커널 버전 :
개발 환경 세팅.
영상처리 실습 인공지능연구실.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
인터넷보안 실습 2012년 1학기.
툴 설치 가이드 PrimeTime SynopsysMentor.
툴 설치 가이드 Formality SynopsysMentor.
Appendix. WURFL 브라우저 살펴보기
Linux/UNIX Programming
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
 파일 아카이브와 압축 명령 익히기.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
Web Server Install.
Git을 이용한 버전 관리 - Branch 실습
Presentation transcript:

1. 설치환경 apache php mysql proftp Linux 2019-01-12 정보보안학과 20021002 조정현

Index 설치 환경 Library 3. mysql 4. httpd php httpd.conf 7. proftpd 4. httpd php httpd.conf 7. proftpd 8. web server test 9. apm 연동 테스트 2019-01-12 정보보안학과 20021002 조정현

/usr/lib /usr/include 1. 설치환경 1. 설치 환경 System: cpu - p4-3.2ghz ram - 512mb hdd – 160gb Linux: Centos 5.2 kernel_2.6.18-92.el5 library and utility zendoptimizer-3.0.1 gd-2.0.35 libpng-1.2.5 zlib-1.2.3 freetype-2.1.5 libiconv-1.12 libxml2-2.6.32 libxslt-1.1.14 jpegsrc.v6b httpd-2.2.9 mysql-5.0.67 php-5.2.5 proftpd-1.3.1 qmail /usr /usr/local /usr/lib /usr/include 2019-01-12 정보보안학과 20021002 조정현

"Development Libraries“, "Development Tools“ 을 꼭 설치 1. 설치 환경 Linux 설치시 "Development Libraries“, "Development Tools“ 을 꼭 설치 하여 gcc 관련 툴이 설치되어야 한다. 설치하지 않았을 경우. Yum 으로 설치.. rpm –qa 로 확인. # yum groupinstall "Development Libraries" # yum groupinstall "Development Tools" [root@localhost src]# rpm -qa | grep make make-3.81-3.el5 automake16-1.6.3-8 automake17-1.7.9-7 automake14-1.4p6-13 automake-1.9.6-2.1 imake-1.0.2-3 automake15-1.5-16 [root@localhost src]# rpm -qa | grep gcc gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 libgcc-4.1.2-42.el5 gcc-gfortran-4.1.2-42.el5 2019-01-12 정보보안학과 20021002 조정현

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-5.0.67 php-5.2.5 proftpd-1.3.1 qmail 다운로드한 파일 확인 1 “ftp superuser.co.kr” 로 접속하여 파일들을 받거나 “ftp 203.237.211.230” 로 접속하여 파일들을 받는다. ID: ftp PW: 없음 library and utility zendoptimizer-3.0.1 gd-2.0.35 libpng-1.2.5 zlib-1.2.3 freetype-2.1.5 libiconv-1.12 libxml2-2.6.32 libxslt-1.1.14 jpegsrc.v6b 2 2019-01-12 정보보안학과 20021002 조정현

library files libpng-1.2.5 zlib-1.2.3 Library file들을 압축을 해제하고 설치한다. libiconv-1.12 libxml2-2.6.32 libxslt-1.1.14 jpegsrc.v6b freetype-2.1.5 gd-2.0.35 libpng 설치 [root@localhost libs]# tar xvfz libpng-1.2.5.tar.gz [root@localhost libs]# cd libpng-1.2.5 [root@localhost libpng-1.2.5]# cp scripts/makifile.linux makefile [root@localhost libpng-1.2.5]# make && make install [root@localhost libpng-1.2.5]# cd .. zlib 설치 [root@localhost libs]# tar xvfz zlib-1.2.3.tar.gz [root@localhost libs]# cd zlib-1.2.3 [root@localhost zlib-1.2.3]# ./configure [root@localhost zlib-1.2.3]# make && make install [root@localhost zlib-1.2.3]# cd .. libiconv 설치 [root@localhost libs]# tar xvfz libiconv-1.12.tar.gz [root@localhost libs]# cd libiconv-1.12 [root@localhost libiconv-1.12]# ./configure [root@localhost libiconv-1.12]# make && make install [root@localhost libiconv-1.12]# cd .. libxml2 설치 [root@localhost libs]# tar xvfz libxml2-2.6.32.tar.gz [root@localhost libs]# cd libxml2-2.6.32 [root@localhost libxml2-2.6.32]# ./configure [root@localhost libxml2-2.6.32]# make && make install [root@localhost libxml2-2.6.32]# cd .. libxslt 설치 [root@localhost libs]# tar xvfz libxslt-1.1.14.tar.gz [root@localhost libs]# cd libxslt-1.1.14 [root@localhost libxslt-1.1.14]# ./configure [root@localhost libxslt-1.1.14]# make && make install [root@localhost libxslt-1.1.14]# cd .. jpeg 설치 [root@localhost libs]# tar xvfz jpegsrc.v6b.tar.tar [root@localhost libs]# cd jpeg-6b [root@localhost jpeg-6b]#./configure [root@localhost jpeg-6b]# make [root@localhost jpeg-6b]# make test [root@localhost jpeg-6b]# mkdir /usr/local/man/man1 [root@localhost jpeg-6b]# make install [root@localhost jpeg-6b]# cd .. freetype2 설치 [root@localhost libs]# tar xvfz freetype-2.1.5.tar.tar [root@localhost libs]# cd freetype-2.1.5 [root@localhost freetype-2.1.5]# ./configure [root@localhost freetype-2.1.5]# make && make install [root@localhost freetype-2.1.5]# cd .. gd 설치 [root@localhost libs]# tar xvfz gd-2.0.35.tar.gz [root@localhost libs]# cd gd-2.0.35 [root@localhost gd-2.0.35]# ./configure --prefix=/usr --with-png=/usr –with-freetype=/usr –with-fontconfig=/usr –with-jpeg=/usr –with-xpm=/usr 2019-01-12 정보보안학과 20021002 조정현

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들을 확인해보자. 2019-01-12 정보보안학과 20021002 조정현

mysqld 프로세스확인 mysql 유저 생성 compile,, mysql 환경설정,, 시작스크립트 복사 mysql database 초기화 및 디렉토리 퍼미션 설정 mysql root@localhost의 패스워드 설정 [root@localhost mysql-5.0.67]# user –M –s /bin/false mysql mysqld 프로세스확인 [root@localhost mysql-5.0.67]# ./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 [root@localhost mysql-5.0.67]# make && make install [root@localhost mysql-5.0.67]# cp support-files/my-medium.cnf [root@localhost mysql-5.0.67]# cp support-files/mysql.server etc/init.d/mysqld [root@localhost mysql-5.0.67]# chmod 755 /etc/init.d/mysqld [root@localhost mysql-5.0.67]# /usr/local/mysql/bin/mysql_install_db [root@localhost mysql-5.0.67]# chown –R mysql:mysql /usr/local/mysql [root@localhost mysql-5.0.67]# ln –s /usr/local/mysql/bin/mysql /usr/bin/ [root@localhost mysql-5.0.67]# ln –s /usr/local/mysql/bin/mysqldump /usr/bin/ [root@localhost mysql-5.0.67]# /etc/init.d/mysqld start Staring MySQL [ OK ] [root@localhost mysql-5.0.67]# [root@localhost mysql-5.0.67]# /usr/local/mysql/bin/mysqladmin –u root password “암호” 2019-01-12 정보보안학과 20021002 조정현

[root@localhost httpd-2.2.9]# ./configure \ 4. Httpd 컴파일 및 설치 아파치 시작 스크립트 복사 및 수정 [root@localhost httpd-2.2.9]# ./configure \ > --prefix=/usr/local/httpd \ > --enable-so \ [root@localhost httpd-2.2.9]# make && make install [root@localhost httpd-2.2.9]# cp /usr/local/server/httpd/bin/apachectl /etc/init.d/httpd 2019-01-12 정보보안학과 20021002 조정현

컴파일 또는 설치 중 에러 발생할 경우 > --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 컴파일 및 설치 [root@localhost 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 [root@localhost php-5.2.5]# make && make install 2019-01-12 정보보안학과 20021002 조정현

5. Php php.ini 복사하기 [root@localhost php-5.2.5]# cp php.ini-dist /usr/local/httpd/conf/php.ini 2019-01-12 정보보안학과 20021002 조정현

vi httpd.conf vi httpd.conf 6. Httpd.conf “httpd.conf “에 “php” 를 인식하도록 수정 vi httpd.conf vi httpd.conf 2019-01-12 정보보안학과 20021002 조정현

가상호스트(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 파일 수정 ) 로 웹서버를 구축한다. 2019-01-12 정보보안학과 20021002 조정현

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 2019-01-12 정보보안학과 20021002 조정현

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 로 ‘#’을 빼준다. 이 파일을 수정 하여 가상호스트를 구축 2019-01-12 정보보안학과 20021002 조정현

[root@localhost /]# /etc/init.d/httpd start 6. Httpd.conf httpd 시작 port 80 열려있는 지 확인 [root@localhost /]# /etc/init.d/httpd start [root@localhost /]# ps -ef | grep httpd root 28966 1 3 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start daemon 28967 28966 0 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start daemon 28968 28966 0 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start daemon 28969 28966 0 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start daemon 28970 28966 0 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start daemon 28971 28966 0 23:37 ? 00:00:00 /usr/local/httpd/bin/httpd -k start root 28979 27222 0 23:37 pts/0 00:00:00 grep httpd 확인해보니 httpd가 프로세스에 띄어져 있다. [root@localhost /]# netstat -an | grep LISTEN | grep 80 tcp 0 0 :::80 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 8072 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 1708074 /tmp/ssh-asGQk27220/agent.27220 [root@localhost /]# 80번 포트가 잘 열려있다. 2019-01-12 정보보안학과 20021002 조정현

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을 설치해 본다. 2019-01-12 정보보안학과 20021002 조정현

anonymous (계정 ftp로 alias) 접속 vi /etc/xinetd.d/proftpd standalone, 또는 inetd 방식 선택 standalone proftpd 데몬이 메모리에 항상 상주를 하여 ftp service를 해주는 형태 inetd inetd라는 데몬 프로그램이 client가 요청할때 proftpd를 호출하는 형태 현재 시스템은 메모리가 512램으로 작고 사용자가 적을 것이라 예상되기 때문에 inetd방식으로 한다. xinetd 를 재시작한다. [root@localhost /]# /etc/rc.d/init.d/xinetd restart xinetd ? ?? ?: [ OK ] xinetd (?)? ?? ?: [ OK ] xinetd 확인 [root@localhost bin]# ftpwho inetd FTP daemon: no users connected proftpd 다운로드 컴파일 및 설치 proftpd.conf 수정 xinetd 방식으로 운영하기 [root@localhost src]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.gz [root@localhost src]# tar xvfz proftpd-1.3.1.tar.gz [root@localhost src]# ls apm libs proftpd-1.3.1 proftpd-1.3.1.tar.gz [root@localhost src]# ./configure --prefix=/usr/local/proftpd --enable-autoshadow ….생략….. [root@localhost src]# make && make install [root@localhost proftpd-1.3.1]# ls /usr/local Zend bin etc games httpd include lib libexec mysql php proftpd sbin share src [root@localhost src]# cd /usr/local/proftpd [root@localhost proftpd]# ls bin etc include libexec man sbin share var [root@localhost proftpd]# cd etc [root@localhost etc]# ls proftpd.conf [root@localhost etc]# vi proftpd.conf /etc/xinetd.d/proftpd 가 없으면 새로 생성 [root@localhost xinetd.d]# vi proftpd anonymous (계정 ftp로 alias) 접속 vi /etc/xinetd.d/proftpd [root@localhost /]# cd etc/xinetd.d [root@localhost 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 [root@localhost xinetd.d]# vi proftpd 2019-01-12 정보보안학과 20021002 조정현

selinux를 적용된 시스템에서는 디렉토리 보안문맥이 user_home_t로 구성되어 8. web server test selinux를 적용된 시스템에서는 디렉토리 보안문맥이 user_home_t로 구성되어 퍼미션이 755로 되어있어도 80포트에서 접근이 불가능. 해당 디렉토리를 chcon 을 이용해 변경 [root@localhost 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 [root@localhost home]# [root@localhost home]# chcon –R –t httpd_sys_content_t /home/ataraxia [root@localhost home]# ls –lZ /home/ataraxia drwx-----x ataraxia ataraxia user_u:object_r:httpd_sys_content_t ataraxia 2019-01-12 정보보안학과 20021002 조정현

웹서버 테스트 phpinfo() 함수 출력…. 8. web server test 웹서버 테스트 phpinfo() 함수 출력…. 2019-01-12 정보보안학과 20021002 조정현

mysql DB 생성 및 사용자에게 DB 권한 부여하기 9. apm 연동 테스트 mysql DB 생성 및 사용자에게 DB 권한 부여하기 2019-01-12 정보보안학과 20021002 조정현

9. apm 연동 테스트 간단한 방명록 만들기 2019-01-12 정보보안학과 20021002 조정현

insert.html, insert.php, list.php 파일 ftp로 올리기 9. apm 연동 테스트 insert.html, insert.php, list.php 파일 ftp로 올리기 2019-01-12 정보보안학과 20021002 조정현

9. apm 연동 테스트 2019-01-12 정보보안학과 20021002 조정현