Linux2016. 4. 14. 15:29

잘돌아가던 시스템이 갑자기 안된다는 연락을 받았다.

왜 안될까 일단 테스트를 진행을 했고..

등록하거나 수정하는 부분에서 몇몇 장애가 생겼다.

로그를 띄우고 로그 내용을 보니 파일을 수정하거나 등록하는 부분에서 허가 거부라는 에러가 발생했다.

문제는 권한..

이 시스템은 Nas를 마운트 해서 그곳에 파일을 저장하도록 설정이 되어 있는데..

마운트된 Nas의 권한이 root권한..

하지만 내가 실행한 tomcat은 oms로 실행을 하니 접근이 될리가 있나.

아마도 이전에는 root로 실행이 됐을것이다.

얼마전 서버를 재시작 해야하는 상황이 있었는데 아마도 그때 내가 다른 계정으로 tomcat을 실행했겠지..

root로 tomcat을 재시작하니 문제는 해결..

아직까지 전화 안오는거 보니 잘되는거 맞겠지..?그렇겠지??

Posted by Z700zZz
Linux2015. 9. 30. 17:44

개발을 진행하다가 서버에 대해서 공격이 들어오고 또 디도스 공격에 이 서버가 사용 되면서 인증되지 않은 접속을 막는 방법을 찾아 보았다.

리눅스에서는 Fail2ban이라는 프로그램이 있으며 이 프로그램을 사용하면 무작위로 비밀번호를 넣어 root계정을 해킹하는 방법을 차단할 수 있다.

같은 아이피로 비밀번호를 지정한 횟수 이상 틀릴 경우 그아이피를 접속을 막아 버리는 방법이다.


http://www.conory.com/note_linux/11720


설치 방법과 사용 방법은 위의 링크에 가면 아주 자세히 설명 되어 있다.

일단은 이거로 일차적인 공격을 막고 이차적으로는 특정 아이피들을 막는 방법이 있는데.

이것만으로는 안될것 같다.

중국쪽에서 공격이 많이 들어오고 또 중국쪽으로 서버가 공격에 사용 되니 중국에서 들어오는 아이피 대역을 전부다 막아야 할 것 같다.


http://blog.daum.net/_blog/BlogTypeView.do?blogid=0MH0E&articleno=6498222&categoryId=710567&regdt=20141129100840


위 두방법으로 해킹에 대해서 해결이 되었으면 하는데 과연 될지가 의문이다.

9월초부터 개발서버 세팅으로 많은 어려움을 겪고 있다.

오늘은 잘되면 데이터 베이스가 안되서 반나절을 삽질하고 보니 hosts파일이 아무도 출근하지 않은 어제 자기 멋대로 변경되어 있었던것이 문제가 되었다. 뭐가 문제인지 모르겠다.

그 이전에는 서버가 DDOS공격 서버로 사용되서 기가단위의 데이터를 중국의 한 호텔로 보내 건물 전체의 네트워크에 영향은 준적도 있다.

일단은 이방법들을 사용해서 막아 놓고 그래도 문제가 생긴다면 다른 방법을 찾아봐야 할 것 같다.

Posted by Z700zZz
Linux2015. 8. 28. 10:01

Linux에서 어떤 작업을 하다가 패키지 파일을 설치 해야 하는 경우 구글로 검색을 해서 다운을 했는데..


http://ftp.daum.net/centos/7/os/x86_64/Packages/


위의 링크에 들어가면 패키지 파일을 다운 받을 수 있다.

지금은 내가 CentOS 7 버전에서 작업을 하기 때문에 위의 경로로 링크를 걸었지만..


http://ftp.daum.net/


에 들어가 버전별로 선택해서 패키지를 다운 받으면 된다.

검색은 Ctrl + F, Command + F..


위의 링크를 알기 전까지는 아래의 링크를 이용..


http://rpmfind.net/linux/RPM/


그럼 도움이 되셨길..

Posted by Z700zZz
Linux2015. 8. 27. 17:27

리눅스 서버에 X Window도 정상적으로 깔린 상태.

Mac OS X의 경우에는 X11 Xquartz이 Windows에는 Putty와 Xming이 제대로 깔려 있는 상태.


원격으로 접속해서 X Window를 띄우기에 완벽한 상태이지만 제대로 되지 않는 경우가 발생한다.


Mac에서의 X Window 설정 - http://blog.pages.kr/377

윈도우에서의 X Window 설정 - http://talkingaboutme.tistory.com/409


문제없이 될것처럼 보이지만..아니 문제 없이 되는 경우가 많을것이다.

하지만 난 안됐음..

왜안됐을까..리눅스를 잘 몰라서 회사 부장님이 2시간동안 통화하고 원격으로 작업해준 결과..

IPv6버그란다.


sshd_config에 addressFamily에 항목을 주석을 풀어서 addressFamily inet으로 바꾸면 문제는 해결됐다.

이게 IPv6대역을 막아주는 거라는데..리눅스랑 네트워크 쪽을 잘 모르다 보니 자세한 내용은 모르겠다.


제대로 설정을 다 해줬지만 X Window에 제대로 접속이 되지 않는 경우에 위의 내용으로 해결을 해보길..

Posted by Z700zZz
Linux2015. 8. 27. 17:10

Putty나 XMing로 접속을 하려 할때 incoming packet was garbled on decryption라는 에러가 발생할 경우가 있다.


https://supportforums.cisco.com/discussion/11676011/sg300-28-ssh-incoming-packet-was-garbled-decryption


위의 페이지에 나오는 방법을 써보길 바란다.

바로 됨.

Posted by Z700zZz
Linux2015. 8. 26. 17:55

이건 내가 설명하지 않아도 이 블로그를 보면 아주 상세히 나와있다..


http://blog.beany.co.kr/archives/3198


이분 대단하신 분..

이처럼 꼼꼼하다니.

추가적으로 작성해야 할 부분은..

현재 리눅스에 오라클을 설치 할때 로컬에서 설치가 아닌 원격으로 오라클 서버에 접속해서 설치하고 있다.

이 블로그는 서버에 직접 설치하는 방법이기 때문에 원격으로 접속해 설치하는 방법이 나와있지 않다.

이 부분을 설명을 내 블로그에 적어야함.

그 외에 오라클 설치 부분은 저 블로그가 짱임..!!


runInstall을 실행할때 su - oracle을 써서 오라클 계정으로 전화 시킨뒤 실행 시키는데..

이러면 설치가 제대로 되지 않는다.


Checking Temp space: must be greater than 80 MB. Actual 7440 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2527 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,

Continue? (y/n) [n] y


그래도 계속해서 진행 해보면 Exception이 발생 되면서 설치 진행이 되지 않을것이다.

root계정으로 접속이 된 상태에서 oracle계정으로 변환해서 설치하지 말고 터미널을 띄울때나 아니면 리눅스를 부팅할때 oracle계정으로 접속해서 설치를 하면 문제 없이 설치가 된다.


오라클을 설치 하다보면 설치중 에러가 상당히 많이 발생한다.

그전 패키지 설치나 환경변수 설정 부분에서는 잘 발생하지 않지만..

X Window상에서 설치하는 부분에서 에러 발생.

위 오라클 설치 블로그를 보면 패키지 설치 부분에 rpm -Uvh -nodeps 패키지 이런식으로 패키지를 설치 하라고 나와있는데.

nodeps라는 옵션은 패키지간 의존성을 무시하고 까는거라서 비추한다고 한다.

yum을 못쓰는 상황이라 패키지 파일을 하나하나 다운받아서 설치했는데 모두 --nodeps옵션을 주고 설치를 했으니..

그래서 설치하는 도중에 파일 생성을 할수 없다는 에러 팝업이 계속해서 떴다.

그럴때 마다 에러 내용 검색해서 부족한 패키지 설치..


설치 도중 rpm 패키지 의존성 문제가 아닌 오류 상황이 발생하게 된다.

Error in invoking target '~~' of makefile 이라는 오류는 대부분 설치에 필요한 패키지가 없어서 생기는 에러들..

에러가 발생하면 구글링을 먼저했고 구글링을 하면 대충 어떤 패키지가 필요한지가 나오는 경우가 많다.

아니면 CentOS에 Oracle을 설치 할때 필요한 패키지가 무엇이 있는지 목록을 보고 하나하나 설치가 되어 있는지 확인을 하는 방법도 있다.

일단 설치 하면서 해결하지 못한건 Error in invoking target 'install' of makefile 하는 에러는 해결하지 못했다.

지금까지 발생했던 Error in invoking target로 시작하는 에러중 RPM설치가 아닌 다른 방법으로 해결해야 하는 에러가 발생했다.

Error in invoking target 'agent nmhs' of makefile 이 에러는 

$ORACLE_HOME/sysman/lib/ins_emagent.mk파일을 수정함으로써 해결 가능하다.


$(SYSMANBIN)emdctl:

$(MK_EMAGENT_NMECTL)


위의 코드를 아래와 같이 바꿔 주면 된다.


$(SYSMANBIN)emdctl:

$(MK_EMAGENT_NMECTL) -lnnz11


제일 끝에 -lnnz11 을 추가 해줌으로써 문제 해결.

Error in invoking target '~~' of makefile이라고 뜨는 에러중에는 CentOS 7에 Oracle 11g를 설치할때 어떻게 해도 해결이 되지 않는 에러들이 있다고 하는데..내가 볼땐 install이 그경우 아닐까 한다. 중간에 몇개는 그냥 넘어가도 설치되서 데이터베이스가 동작하는데 아무 문제가 없는 경우도 있다고는 하지만..그래도 뭔가 영 찜찜하다.


그리고 ins-20802 oracle net configuration assistant을 실패했습니다. 라는 에러 메세지가 95%쯤에도 한번 나왔는데..

이건 리눅스의 hostname과 오라클 설치시 설정해줬던 hostname을 비교하면 문제를 해결 할 수 있다.

나의 경우에는 오라클 설치 부분에서 상당한 삽질을 하면서 초기 설정에서 /etc/sysconfig/network 에 hostname을 영구적으로 변경하는 부분을 빼먹고 지나쳤는데..network에 정의된 hostname과 /etc/hosts에 선언된 hostname이 서로 달라서 설치가 안됐었다.

두곳 모두 oracle로 바꿔주니 이부분에서 에러가 발생하지 않고 제대로 설치가 됐다.


설치가 완료가 되고 제일 처음 소개한 블로그에 보면 현재 의 SID이름을 확인하는 쿼리가 있는데 이걸 실행하니 또 제대로 된 결과가 나오지 않았다.

이것 또한 초기 설치할때 설정한 SID와 설치 과정에서 설정한 SID가 서로 달라서 제대로 된 결과가 나오지 않았던 것..

SID설정 하는 부분은 /home/oracle/.bash_profile의 내용에 보면 있다.


그외에도 외부에서 접속 하려면 포트가 방화벽에 막혀 있는지도 확인해야 하고 리스너 등록도 해야한다.

이부분은 이전에 삽질 한것과는 반대로 아주 쉽게 풀려서 아주 행복..

리눅스 서버설정에서 부터 오라클 설치까지 이것만으로 5일이 걸릴줄이야..

Posted by Z700zZz
Linux2015. 8. 25. 14:10

우선은 Linux운영체제에 Java가 설치 되어 있는지부터 확인 해야 한다.


java -version


이 명령어를 쳤을때 자바에 관련된 정보가 나온다면 자바는 설치 되어 있는것..


java version "1.7.0_85"

OpenJDK Runtime Environment (rhel-2.6.1.2.el7_1-x86_64 u85-b01)

OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)


위와 같은 방법으로 자바 버전을 확인 할 수도 있고.


rpm -qa | grep java


이방법도 가능하다.


java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64

java-1.7.0-openjdk-headless-1.7.0.85-2.6.1.2.el7_1.x86_64


운영체제에 기본으로 설치 되어 있는 OpenJDK가 설치 되어 있음을 확인 할 수 있다.

설치 된 OpenJDK를 사용 할 수도 있겠지만..찾아보니 OracleJDK를 만들기전 완벽한 OpenSource로 배포한 버전이고 혹시 모를 문제점이 생길지 몰라 OracleJDK를 받아 설치..


우선 기존의 OpenJDK를 제거 해야한다.


yum remove JavaVersion


yum remove뒤에는 현재 설치 되어 있는 Java버전을 적어주면 된다.

rpm -qa로 검색된 자바는 java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64와 같으니 이걸 적어주면 삭제 진행..

두번째 줄에 나온 것도 추가로 삭제 진행..

tzdata-java라든가 하는것들이 rpm -qa명령을 실행하면 세개나 더 생기는 것을 볼 수 있는데.

역시 이것들도 삭제 진행..


다시 rpm -qa | grep java를 실행하면 아무것도 안나오는 것을 볼 수 있다.


설치에 앞서서 OS버전을 알아야 한다.

근데 알아야 하나??몇비트 운영체제인지만 알면 되는건가??


rpm -qa *release


이건 운영체제의 전체적인 버전을 나타내는 것이고..


getconf LONG_BIT


이건 운영체제가 32bit인지 64bit인지를 알아내는 명령어..

운영체제에 맞는 Java를 다운 받는다. tar.gz파일을 다운..

이제 리눅스 서버에 올려야 하는데 이건 알아서..

리눅스 서버에 SFTP를 사용해 올리려고 설정 다해줬는데 파일질라고 접속이 안되서 반나절을 까먹었다.

설정이 잘못됐나 싶어서 이설정 저설정 다해줬는데도 되질 않아 회사 부장님께 헬프를 요청했는데..

한시간만에 해결하고 얻은 답은 파일질라 문제..WinSCP사용해서 접속도 잘되고 파일도 잘 올라가는것 확인했다.


파일을 복사한 위치는 /usr/local/


gunzip jdk-8-linux.tar.gz


tar -xvf jdk-8-linux.tar


위의 명령어를 차례로 실행하면 /usr/local경로에 자바 SDK를 압축해제 한다.


아마도 jdk1.8.0 이런식의 폴더가 생길것인데..

자바 설정에 이 폴더 그대로를 넣어 줄수도 있지만..추후 자바 업데이트를 위해서 링크를 사용하겠다.

자바폴더가 있는 /usr/local에서 


ln -s jdk1.8 java


이 명령어를 실행하면 /usr/local 경로에 java라는 링크가 생기는것 을 확인 할 수 있다.

다음 작업은 profile파일을 수정하는 작업이다.


vi /etc/profile


위 명령어를 실행하면 profile파일 수정화면으로..


JAVA_HOME=/usr/local/java

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH


위에 적인 네줄을 최하단에 넣고 저장.

자바가 설치된 경로를 인식 시켜주는 구문..


변경된 profile의 내용을 적용 시켜줘야 하는데 그 명령어는 아래와 같다.


source /etc/profile


이로서 Java 설치는 끝이 났고 확인은 


java -version

javac -version


이 명령어로 확인하면 된다.

Posted by Z700zZz
Linux2012. 6. 14. 23:01

CentOS6에 MySQL설치..!

어렵지 않다.

이것저것 검색을 해봤지만 제일 쉬운거로 해봤고 성공후 그 방법에 대해서 설명하려 한다.

CentOS에는 기본적으로 MySQL을 가지고 있다.

현재 사용중인 CentOS의 버전은 6.2.

기본적으로 포함되어 있는 MySQL의 버전은 5.1.

그럼 지금부터 설치 방법에 대해서 설명하겠다.

CentOS의 터미널을 열어 설치 하면 된다.

1. 설치하기.


실행해 보면 설치가 되는 패키지도 있고 이미 설치 된 패키지도 있는것을 확인할 수 있다.


하지만 설치가 안되는 패키지가 있다 하더라도 MySQL이 설치가 안되거나 실행이 되지 않는 일은 발생하지 않았다.


# yum install mysql-server

여기서 #은 [root@localhost-]# 의 #이다.

혹시나 저것까지 치는 사람이 있을까봐.

위와같은 명령어를 실행하면 알아서 패키지를 다운받고 설치가 시작된다.

2. 설치한 SQL서버 시작.

# service mysqld start

실행하고 1~2초를 기다리면 다음과 같은 메세지가 출력된다.

mysqld (을)를 시작 중:     [ OK ]

그럼 성공!!

쉽지 않은가??

3. root의 비번번호 설정 하기.

# mysql -u root -p

Enter Password : <---------- 다음과 같이 나오면 지체없이 Enter!! 우리는 비번을 설정한 적이 없다.

mysql> use mysql;

mysql> 은 위의  [root@localhost-]# 와 같은것.

use mysql은 mysql의 데이터 베이스를 사용하겠다는 명령어.

mysql> update user set password=password('사용할 비밀번호') where user='root';

user테이블의 root사용자의 비밀번호를 바꾸겠다는 명령어이다.

mysql> flush privileges;

MySQL의 사용자 테이블이 변경 되었을 때 변경 사항을 저장한다.

이로써 설치와 root계정 설정이 끝이 났다.


mysql> quit


mysql 명령어 이력을 종료하고 나와서 MySQL을 재시작한다.


# service mysqld restart


재시작 후 root 계정으로 재접속 해보면 비밀번호가 바뀌어 있는것을 확인 할 수 있다.


4. 한글 설정하기.


# whereis my


위의 명령어로 MySQL의 설정 파일이 어디에 있는지를 찾아 낸다.


# gedit 검색되어나온파일경로


실행 된 에디터에 다음의 내용을 입력한다.


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
default-collation=utf8_general_ci
init_connect=set collation_connection=utf8_general_ci
init_connect=set names utf8
character-set-server=utf8
collation-server=utf8_general_ci
character-set-client-handshake=TRUE

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
max_allowed_packet=64M

[mysqldump]
max_allowed_packet=64M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


컴퓨터에 설정 된 파일 모두를 긁어다 붙인 것이니 중복 되는 부분은 빼고 넣으면 된다.


위의 설정을 바꾸기전 실행 해서 확인 하고 위의 설정으로 바꾼다음 실행해서 확인해야 할 SQL문.


mysql> show variables like 'char%';


설정하기 전과 후를 비교해보면 캐릭터 셋이 UTF8로 바뀌어 있는것을 볼 수 가 있다.


MySQL공식 홈페이지에서 파일을 다운받아 설치 하려 하다 이런 방법이 검색되어 해보니 어렵지도 않고 너무 쉬웠다.


최신버전이 5.5로 알고 있는데 최신버전이 필요 없다면 이방법도 해보길 바란다. 쉽다!!

Posted by Z700zZz
Linux2012. 6. 4. 16:44

Linux터미널에서 프로세스를 백그라운드로 실행 시키는 방법.


./프로세스명령어 &


빨간 글씨의 &기호가 핵심이다.


프로세스를 실행 시킨뒤 터미널을 못쓰는 프로그램(?)들이 있는데..


이렇게 실행을 시키면 백그라운드에서 실행이 되기때문에 터미널에서 추가적인 작업(?)을 더 가능하게 해준다.


그럼 다시 백그라운드 해제 시키는 명령어는.


우선 jobs 명령어로 백그라운드에서 실행 되는 프로세스의 번호를 확인한다음.


fg %프로세스번호


위의 명령어를 실행 시키면 백그라운드에서 실행 되던 프로세스가 포어그라운드로 원상 복구 되는걸 볼 수 있다.


Posted by Z700zZz