이번 포스트는 낚시와 관련된게 아니라 제가 현재 회사에서 작업을 하고 있거나 했던 내용을 참고 하기 위해 올리는거라 설명이 별루 없으며 순간 순간 수정이 되오니 ㅎㅎ 양해 바랍니다.

ㅠ.ㅠ 출조 가고파요~~ 족저근막염 때문에 출조를 못 나가니.. 이거워 야 원....

아무튼 낚시와 관련된게 아니니 서버쪽과 관련이 없으신분들은 패스~~~하세요!!!

고객사에서 이번에 HP Server(HP ProLiant DL360 G9)를 새로 구입을 하였는데 따로 RAID Controller를 구입하지 않으시고 내장 RAID Controller B140i을 사용 하시네요. B140i를 사용할때에는 CentOS 설치시 반드시 dd 형식으로 설치 해야하는데 HP에서 B140i에서 CentOS 설치 지원되는 최소 버젼이 6.6 버전이라 어차피 dd 로 올릴꺼 최신 버전으로 CentOS 7(x86_64 1804) 설치를 합니다.

문제는 현재 사용하고 있는 APM(Apache, PHP, Mysql) 들이 CentOS 6.2 버전이고 홈페이지 소스를 관리하는 업체에서 최대한 APM 버전을 그대로 해달라는 요청에 저만 죽어나네요.

RPM, yum 으로 APM 예전 버전들을 찾아서 설치해 보았으나 모조리 실패~~!!

어쩔수 없이 Source 컴파일 설치를 시작합니다.

APM Source 파일을 찾아서 다운로드 하는것만 해도 하루 지나가네요. ㅡ,.ㅡ

예전 설치 환경

OS : CentOS 6.2

Apache : httpd-2.2.24

MySQL : MySQL 5.1.52

PHP : 5.3.3

새로 설치 환경

OS : CentOS 7.5(x86_64 1804)

Apache : httpd-2.2.24

MySQL : MySQL 5.1.52

PHP : 5.3.3

MySQL 5.1.52 Source 컴파일 설치

다운로드 경로 :

# wget https://downloads.mysql.com/archives/get/file/mysql-5.1.52.tar.gz

Source 로 설치시 필요한 의존성 패키지를 모조리 설치합니다~

# yum install -y wget patch pcre-devel lua-devel libxml2-devel ncurses-devel zlib zlib-devel curl openssl openssl-devel libtermcap-devel libc-client-devel bison gcc g++ cpp gcc-c++ freetype freetype-devel freetype-utils gd gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel flex php-mbstring libexif-devel libmcrypt libmcrypt-devel

# tar xvfpz mysql-5.1.52.tar.gz

# ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --localstatedir=/usr/local/msyql/data --enable-shared --with-mysqld-user=mysql --with-charset=utf8 --with-extra-charsets=all --with-libedit --enable-assembler --sysconfdir=/etc

# make && make install

# useradd mysql

# chown -R mysql.mysql /usr/local/mysql

# chown -R mysql.mysql /usr/local/mysql/data

# chmod 755 /usr/local/mysql/data

# /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

# cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf

# cd

# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/etc/rc.d/init.d:/usr/local/mysql/bin

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

# cp -a /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

그다음 root 암호 설정을 알아서...

APAHCE 2.2.24 컴파일 설치

다운로드 경로 :

# wget https://archive.apache.org/dist/httpd/httpd-2.2.24.tar.gz

# tar xfpz httpd-2.2.24.tar.gz

# cd httpd-2.2.24

# ./configure --prefix=/usr/local/apache2 --enable-rule=SHARED_CORE --enable-modules=all --enable-mods-shared=most --with-mpm=worker --enable-rewrite --enable-deflate --enable-headers --enable-so --enable-ssl --enable-unique-id

# make && make istall

# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

PHP 5.3.3 컴파일 설치

다운로드 경로 : http://php.net/releases/

# wget http://museum.php.net/php5/php-5.3.3.tar.gz

# tar xvfpz php-5.3.3.tar.gz

# cd php-5.3.3

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-regex=php --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-mbstring --enable-magic-quotes

# make && make install

위의 명령어를 적었는데 아래와 같이 오류가 발생하면..

.. php-5.3.3/ext/dom/node.c: In function 'dom_canonicalization'

.. php-5.3.3/ext/dom/node.c: 1953:21: ............

.. php-5.3.3/ext/dom/node.c: 1955:5: ............

아래 명령어를 사용하여 다운 받아 진행을 합니다.

# wget -O php.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt

(참조 : http://blog.naver.com/PostView.nhn?blogId=ssik425&logNo=10175143994)

# cd php-5.3.3

# patch -p0 -b < php.patch

# make && make install



CentOS Apache



아파치(Apache)에서 설정 시 webadmin 사용자 추가 후 디폴트로 되어 있는 DocumnetRoot 를 변경(/var/www/html -> /home/webadmin/www/html) 


테스트 시 아래와 같은 에러가 발생


Forbidden You don’t have permission to access / on this server. 



먼저 홈페이지 디렉토리(/var/www/html)을 사용자 디렉토리로 옮겼다는 가정하에 시작합니다.


# chown -R webadmin:webadmin /home/webadmin/www/html

// 사용자와 그룹을 webadmin으로 변경(root 권한)


# vi /etc/httpd/conf/httpd.conf


아래 내용을 추가 기입하세요.


<Directory /Users/mytory/workspace>

   Options FollowSymLinks

   AllowOverride None

   Order deny,allow

   Allow from all

</Directory>



# service httpd restart


이제 홈페이지로 접속 테스트를 해 보니 정상 작동~













CentOS APM 설치 후 홈페이지 소스를 FTP로 옮길려고 로그인을 하였는데.. 

디렉토리만 보이고 내용은 하나도 보이지 않는 현상이 나타나네요.


일단 vsftp 는 확인해 본바 이상이 없음.



SELinux 정책 확인


# vi /etc/sysconfig/selinux


# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

#SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted



SELINUX=enforcing 을 아래 disabled 로 변경


그 후 가급적 서버 재부팅을 권함.


다시 FTP 로그인 후 접속 해보면 파일 내용이 나옵니다.



만약 이렇게 해도 안된다면 아래 글을 참조하세요.


# setsebool -P ftp_home_dir 1

// SELinux 정책에서 사용자의 home 디렉토리의 쓰기를 막아놓은것을 해제하는 명령어

 

# service vsftpd restart


# setsebool -P ftp_disable_trans 1

// SELinux 정책에서 FTP부분을 적용하지 않겠다는 명령어





IIS7.x 이상에서 SQL Injection 과 Web-Shell 해킹을 간단하게나마 접근을 하지 못하게 하는 방법을 알려드리겠습니다.



1. 관리자 페이지 접속 IP 제한

현재는 관리자 페이지(admin 디렉터리)가 모두에게 개방이 되어 있는 상태로 있다고 가정을 하고 관리자 페이지를 아래 그림과 같이 admin 폴더를 클릭하세요.





그리고 아래 그림과 같이 IIS -> IP 주소 및 도메인 제한(우클릭) -> 기능열기 클릭합니다.





그리고 기능 설정 편집 클릭





일단 관리자 페이지에 모든 사용자가 접근을 할 수 없도록 아래 그림과 같이 거부를 설정합니다.





전부 거부를 하였으니 그다음 허용할 IP를 설정해야 하니.  허용 항목 추가를 클릭합니다.





IP 등록시 하나의 IP를 넣어도 되고 클래스 별로 넣을수도 있도록 되어 있으니 사용할 부분에 선택을 합니다.





등록을 하게 되면 아래 그림과 같이 허용할  IP 클래스가 나옵니다.




이제 테스트를 해야겠죠? 

허용 IP가 아닌 다른 IP 대역대에서 접속 테스트를 해보면 아래 그림과 같이 사용 권한 없음이 나타나야 정상입니다.

이 정도만 해도 특정 관리자들이 로그인하는 부분에서 SQL Injection 에 대해 조그만한 대비가 됩니다.






2. 업로드 디렉터리 실행 권한 제거


만약 해킹으로 어떻게든 로그인 부분에서 뚫렸다면 업로드 디렉터리에 스크립트 실행 권한을 제거 한다면 이 또한 대비가 될것입니다.


먼저 업로드 디렉터리를 선택한 후, 처리기 매팅 도구를 기능 열기로 실행합니다. 아래 그림 참조.





처리기 매핑 화면이 나타나면 아래 그림과 같이 순서대로 [기능 사용 권한 편집] -> [스크립트 체크 해제]-> 확인 을 하시면 됩니다. 그렇게 되면 뒤에 있는 기능들이 상태가 그림과 같이 사용안함 및 회색으로 변합니다.





이 두가지만 설정을 해 놓으셔도 어느정도(?) 대비가 되실겁니다.


추후 또 다른 정보가 있다면 글을 올리도록 하겠습니다.


IIS 7.0 이상의 버젼에서 asp 작업을 하다보면 아래와같이 자세한 오류 메시지가 보이지 않아서 난감할때가 있습니다.




IIS 7.0 이상의 버젼 부터는 보안이 강화되어 "자세한 오류"메시자가 표시가 되지 않았습니다.
이를 표시하기 위해서는 아래와 같이 설정을 변경합니다.

!주의 : 아래와 같이 설정시 해킹의 위험(고의적인 에러 유도로 웹서버 종류 파악을 할 수 있으며 IIS 에러 페이지로        WINDOWS 버젼 예상)이 있으니 장애 오류 확인 할때만 사용하시는게 좋을듯 합니다.

1. IIS(인터넷 정보 서비스) 관리자


2. 사이트 -> IIS -> ASP -> 기능열기 -> 디버깅 속성

- 브라우저에 오류 전송 : True

- 서버 쪽 디버깅 사용 : False

- 클라이언트 쪽 디버깅 사용 : True


3. 사이트 -> IIS -> 오류 페이지 -> 기능 열기 -> 기능 설정 편집

오류 응답 : 자세한 오류



다 적용하신 후 오류 메세지를 확인 해 보면 아래와 같이 나옵니다.













[스크랩] JBoss 6.0 설치하기

Posted 2014. 6. 19. 13:30


출처 : http://blueray21.tistory.com/22




1. JBoss 다운로드 및 설치

1.1 다운로드

[root@centos ~]$ wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-6.0.0.Final/jboss-as-distribution-6.0.0.Final.zip/download

1.2 파일 이동 및 압축해제

[root@centos ~]$ mv jboss-as-distribution-6.0.0.Final.zip /usr/share/

1.3 압축 풀기

[root@centos ~]$ cd /usr/share/ 
[root@centos share]$ unzip -q jboss-as-distribution-6.0.0.Final.zip


2. 계정 생성 및 프로파일 수정

2.1 계정 새성

[root@centos share]$ groupadd jboss
[root@centos share]$ useradd -s /bin/bash -g jboss jboss
[
root@centos share]$ chown -Rf jboss.jboss /usr/share/jboss-as-distribution-6.0.0.Final/


2.2 프로파일 수정

  • JAVA_HOME
  • JBOSS_HOME

[root@centos share]$ vi /home/jboss/.bash_profil

1
2
3
4
5
6
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
JBOSS_HOME=/usr/share/jboss-6.0.0.Final
export JBOSS_HOME

2.3 설치 경로 소유자 변경

[root@centos share]$ chgrp -R jboss /usr/share/jboss-6.0.0.Final
[root@centos share]$ chown -R jboss /usr/share/jboss-6.0.0.Final


3. 스크립트 생성

[root@centos share]$ su - jboss
[jboss@centos ~]$ mkdir bin
[jboss@centos ~]$ cd bin
[jboss@centos bin]$ 
vi jboss.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
RETVAL=0
USER=`whoami`
JBOSS_HOME=/usr/share/jboss-6.0.0.Final
SERVER_IP=127.0.0.1
start() {
 # Start daemons.
 echo $"start JBoss6 : "
 if [ "$USER" = "root" ]; then
  su - jboss -c "$JBOSS_HOME/bin/run.sh -b $SERVER_IP -c all &"
 else
  if [ "$USER" = "jboss" ]; then
                        $JBOSS_HOME/bin/run.sh -b $SERVER_IP  -c all
  else
   echo "************* please! run by jboss ***************"
  fi
 fi
}
stop() {
 # Stop daemons.
 echo $"stop JBoss6 : "
 if [ "$USER" = "root" ]; then
  su - jboss -c "$JBOSS_HOME/bin/shutdown.sh -o $SERVER_IP"
 else
  if [ "$USER" = "jboss" ]; then
   $JBOSS_HOME/bin/shutdown.sh -o $SERVER_IP
  else
   echo "************* please! run by jboss ***************"
  fi
 fi
}
case "$1" in
 start)
  start
  ;;
 stop)
  stop
  ;;
 restart|reload)
  stop
  sleep 5
  start
  RETVAL=$?
  ;;
 *)
  echo $"Usage: $0 {start|stop|restart}"
  exit 1
esac
exit $RETVAL

[jboss@centos bin]$ chmod +x jboss.sh 


4. JBoss 실행 및 종료

4.1 JBoss 실행

[jboss@centos bin]$ ./jboss.sh start &

4.2 JBoss 상태 조회

[jboss@centos bin]$ netstat -an | grep 8080
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      

4.3 JBoss 종료

[jboss@centos bin]$ ./jboss.sh stop &


5. JBoss Admin Console 접속

  • http://localhost:8080/

  • Administration Console 클릭

  • Username : admin
  • Password : admin


6. JBoss Admin 비밀번호 변경

[jboss@centos bin]$ cd /usr/share/jboss-6.0.0.Final/server/default/conf/props
[jboss@centos props]$ vi jmx-console-users.properties

1
2
# A sample users.properties file for use with the UsersRolesLoginModule
admin=admin






1. hosts 호스트명 변경


# vi /etc/hosts

127.0.0.1    localhost    localhost.localdomain    도메인


2. 자체방화벽이 있다면 iptable, ip6table 정책 삭제 및 이름 변경

   CentOS 6.4 설치 후 iptable의 정책이 돌아가고 있으면 Apache 를 실행 하여도 접속하지 못함. 주의~


# rm /etc/sysconfig/iptables

# rm /etc/sysconfig/ip6tables 


3. Apache http.conf 수정


# vi /etc/httpd/conf/httpd.conf

276 줄에 있는 ServerName 변경


예) #ServerName www.example.com:80 을   # 없얘고  ServerName www.test.com(자기 도메인):80



4. php.ini 파일수정


# vi /etc/php.ini


229 줄에 있는 short_open_tab = Off 를  On 으로 변경

만약 위의 작업을 하지 않는다면 아무리 phpinfo() 파일을 해 봐도 화면에 나타나지 않음.. ㅡㅡ;



5. phpinfo 에서 mysql 적용이 되지않다면 php-mysql을 설치해야함 


# yum install php-mysql 


위의 문구만 치고 apache를 재시작 하면 적용 끝


# yum install php-mysql



이상 더 생각이 나면 추가 할 예정임..






« PREV : 1 : 2 : 3 : 4 : ··· : 11 : NEXT »