본문 바로가기

study

Centos foever

2013년 11월 12일 화요일

[CentOS] Node Forever

 


서버가 죽어도 프로그램을 재시작하는 Forever를 설치하고 실행해 봅시다.

npm install forever -g 로 설치합니다.

forever start /경로/실행시킬 서버 자바스크립트파일
forever stop /경로/실행시킬 서버 자바스크립트파일

forever list 를 치면 [0]등 번호가 나옵니다.

그 번호를 이용해서

forever stop 0 은 멈춤

forever logs 0 은 로그를 볼 수 있습니다.

작성자: SecureKim 시간: 오전 1:46 댓글 2개: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: Centos, Forever, Node.js

 

 

2013년 11월 2일 토요일

[CentOS] Security (보안 설정)

 

CentOS 6.x 기준

SSH 로그인
vi /etc/ssh/sshd_config

#루트권한 로그인을 막으려면 파일을 열어 다음을 추가한다.
PermitRootLogin no

#패스워드 없는 계정으로 로그인이 불가능 하도록 한다.
PermitEmptyPaswords no

TCP Wrapper
vi /etc/hosts.allow
#Wrapper를 이용하여 방화벽 역할을 하게 한다.
#ftp 데몬을 들어오는것 중 211.189 대역 허용
in.ftpd:211.189.0.0/255.255.0.0

vi /etc/hosts.deny
#인가 되지 않은 것은 모두 막는다.
ALL:ALL

sshguard 설치

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

wget http://sourceforge.net/projects/sshguard/files/sshguard/sshguard-1.5/sshguard-1.5.tar.bz2/download

bunzip2 sshguard-1.5.tar.bz2

tar -xvf sshguard-1.5.tar

cd sshguard-1.5

sudo yum install gcc make

sudo ./configure --with-firewall=iptables

sudo make && sudo make install

 

chkrootkit 설치

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install chkrootkit

#실행시킨다

chkrootkit 

 

 

 

보안은 양날의 칼입니다. 보안을 강화하면 불편해지고 느려지죠

 

편리하고 빠르면서도 강한 보안을 갖게 할 수는 없을까요?...

 

다음은 방화벽에 대해 포스팅 해 보도록 하겠습니다.

 

작성자: SecureKim 시간: 오전 6:04 댓글 없음: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: 보안, 설치, Centos, chkrootkit, install, Security, sshguard, TCP Wrapper

 

 

2013년 10월 27일 일요일

[CentOS] 삼바(SAMBA) 서비스가 실행이 안된다.

 

보안설정 50개 정도를 하고나서 갑자기 삼바가 실행이 안되었습니다.

 

온갖 삽질 다해보고 보안설정 이것 저것 풀어도 보고.. 삭제하고 설치하기만 몇번 했는지.

/usr/local/samba/bin/testparm /etc/samba/smb.conf 를 해봐도 이상 없고

다 지운 후 직접 컴파일도 해봤습니다.
(교훈 : 왠만하면 직접 설치는 하지말자...
지우기도 까다롭고 이 파일 저 파일 종속성도 높다)

yum -y install python-devel
mkdir /usr/local/samba
wget http://us1.samba.org/samba/ftp/samba-latest.tar.gz
tar xvfz samba-latest.tar.gz

#버젼으로 이동
cd samba-4.1.0/
./configure –prefix=/usr/local/samba –with-automount –with-pam_smbpass –with-syslog –with-utmp
make;make install
chkconfig --add smbd
cd /usr/local/samba/sbin/
cp * /sbin/

vi /usr/local/samba/etc/smb.conf
열어서 /usr/local/samba/lib 적어줌

링크도 만들어줌
# ln -s /usr/local/samba/lib/libtalloc.so.1 libtalloc.so.1
# ln -s /usr/local/samba/lib/libtdb.so.1 libtdb.so.1
# ln -s /usr/local/samba/lib/libwbclient.so.0 libwbclient.so.0


테스트 팜 실행해서 오류없나 살펴봄
/usr/local/samba/bin/testparm 

cd ..
cd bin
./smbpasswd -a root
service smbd start

그래도 안됨.

그러고보니 var/log/samba 에 로그가 쌓이죠.

cat log.smbd

로그내용
[2013/10/27 02:01:47.638162,  0] auth/auth_util.c:707(get_guest_info3)
  SamInfo3_for_guest: Unable to locate guest account [nobody]!

 


[2013/10/27 02:01:47.638307,  0] smbd/server.c:1205(main)
  ERROR: failed to setup guest info.

 

에헤헤헤헤헤헤헤헤헤헤헤헤

보안 설정 한다고 노바디 계정을 지워서 그랬어 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

vi /etc/passwd

ㅋㅋㅋㅋㅋ

작성자: SecureKim 시간: 오후 7:57 댓글 없음: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: 삼바 보안 실행 안됨, 삼바 실행 안됨, Centos, run, SAMBA, smb, smb security

 

2013년 9월 1일 일요일

[CentOS 6.x] 각종 서버 설치하기

 

**기본

 

yum -y update

yum -y groupinstall "Development Tools"

 

 

**NginX


#wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
#rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
#yum install nginx
#service nginx start

Nginx는 /etc/nginx/nginx.conf 요 파일이 /etc/nginx/conf.d/default.conf 파일을 인클루드 하고 있습니다.
두 파일은 혹시나 모르니 cp 명령어로 백업 해놓으시고

worker_processes 부분에는 하드웨어 코어 개수만큼 숫자를 적어 줍니다.

#vi /etc/nginx/nginx.conf

user              nginx;
worker_processes  4;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  30;
    server {
        listen       80;
        server_name  _;
        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }
        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
        location ~* \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO $fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}



#vi /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  _;
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

service nginx restart 

**Apache 

전 리버스 프록시를 이용해 PHP 요청은 아파치가 처리하도록 했기 때문에 설치했는데
Nginx만 쓰면 굳이 설치할 필요는 없습니다.

#yum -y install httpd

구동하는 포트넘버가 80으로 되어있는데 Nginx랑 겹치니까 다른걸로 바꿔주면 됩니다.

service httpd restart

**Mysql

#yum -y install mysql mysql-server
#mysqladmin -u root password 비밀번호

패스워드 설정해줍니다.

참고로 자료 백업 및 복구할 때(전체)
백업 : mysqldump -u root -p --all-databases > 파일명.sql
복구 : mysql -u root -p < 파일명.sql

특정 테이블만 하는거면 저기 -p 뒤에 테이블 명 쓰면 됩니다.

그리고 처음에 원격접속 허용하려면 service mysqld start 로 시작한 후

 mysql -u root -p 로 로그인하고,

use mysql; 한 다음 host 컬럼을 %로 바꾸면 원격으로도 접속이 가능합니다.

UPDATE `mysql`.`user`
SET `Host`='%'
WHERE `Host`='localhost' AND `User`='root';

 

service mysqld restart


**REDIS

#cd /usr/local/src
#wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
#tar xvfz redis-2.6.14.tar.gz
#cd redis-2.6.14
#make -j4 && make install  -j4

redis-server&

 

 

 

**Node

#yum -y update

#yum -y groupinstall "Development Tools"

 

#wget http://nodejs.org/dist/v0.10.17/node-v0.10.17.tar.gz

#tar zxf node-v0.10.17.tar.gz

#cd node-v0.10.17

#./configure

#make

#make install

 

 

모듈들 설치는

 

#npm -g install 설치할모듈

 

실행은

 

#node 실행할파일

 

**PHP

#yum -y install
php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-fpm

php.ini 파일 수정해서
short_open_tag = On 해줍니다.

우린 PHP-FPM 사용할거니까

service php-fpm restart

*Predis (PHP 와 Redis 연결)

#pear channel-discover pear.nrk.io
#pear install nrk/Predis



**Samba

이건 다 아시겠지만 윈도우처럼 파일 공유하는 서비스입니다.

 

yum install samba
smbpasswd -a 사용자명      // 패스워드설정
service smb start

아무리 권한을 추가해도 권한 문제가 생긴다면

vi /etc/selinux/config
Set
//SELINUX=enforcing 이걸
SELINUX=disabled //요렇게 고치면 됩니다.


vi /etc/samba/smb.conf 

를 열어서 여러가지 수정을 해줍니다.

server string = Server name
hosts allow = lo eth0 11.22.33.   // 11.22.33 대역 접속 허용 설정
[share]
    comment = hi
    path = /usr/share/nginx
    writable = yes
    valid user = by

이것은 by라는 사용자에게 /usr/share/nginx 디렉토리를 공유할 수 있도록 한 것입니다.

권한 문제가 있다면 user의 디렉토리와 /etc/passwd 의 디렉토리를 같게 해주고

chmod 755 등으로 해당 디렉토리에 권한을 줘봅니다.

/sbin/service smb restart 


***6시간짜리 팁

이렇게 하고 Nginx와 PHP-FPM 이 연동이 안됬습니다.

php -v , php-fpm -v 로 버젼을 확인해보니 5.3

혹시나해서 5.5로 업데이트 해보았습니다.

#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

 



#yum --enablerepo=remi,remi-test install httpd mysql mysql-server php php-common

#yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

그래도 안되서 권한부터 시작해서 온갖 걸 다 해봤습니다.

/var/log/nginx/error.log 파일을 열어보면 에러로그들이 있죠

계속해서 살펴보던 중 시스템 시각과 현재 시각이 맞지 않다는 것을 알게 되었고

시간이나 맞춰야지 하고

rdate -s time.bora.net

...

갑자기 잘됨

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ???????????????????



작성자: SecureKim 시간: 오전 1:54 댓글 없음: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: 서버 설치, 설정, 설치, 파일공유 설치, apache 설치, Centos, install, mysql, Nginx 설치, Node 설치, PHP 설치, Predis 설치, Redis 설치, samba 설치

 

[CentOS 6.x] 설치

 

 

CentOS 기본


지금 부터 다음 몇 회 까지는 기본적인 것을 다루려고 합니다.

CentOS 설치부터 시작해 보겠습니다. (가상머신 위에 띄우는거 아니고 로컬에 설치하는 겁니다.)

일단 저는 제대로 된 이미지 파일 찾기에서 부터 힘들었습니다.

어렵게 구해서 설치하면 설치가 안되고...(너무 오래전이라 지금은 어디서 받았는지 기억이 안나네요)

어쨌든 제대로 된 이미지 파일을 구하셨다면, iso2usb 같은 usb구워주는 프로그램을 다운받아서

USB를 부팅 USB로 만듭니다.

설치시 중요한건 부트로더 설치 위치입니다.

USB에 부트로더를 설치하면 나중에 USB를 제거했을 때 부팅이 되지 않습니다.

(물론 원인을 알고나면 쉽게 재설치 할 수 있지만 그동안 멘탈이 손상될 수 있습니다.)

저장장치 선택 에서 다 오른쪽으로 밀어버리고 기존의 하드디스크만 선택해서 파티션을 잡습니다.

Network 설정[고정아이피]

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0              
BOOTPROTO=static          
HWADDR=맥주소인데 알아서 들어가 있음
IPADDR=원하는 아이피 주소
NETMASK=255.255.255.0
NETWORK=기본게이트웨이 보통 끝에 1
BROADCAST=끝에 255
ONBOOT=yes                    // 시스템 부팅시 해당 이더넷 활성화

service network restart 으로 재시작하면 끝

방화벽, 아이피설정 같은것은 setup 명령어를 통해 간편하게 할 수 있습니다.

다음은 CentOS 위에 각종 서버를 설치 해 보겠습니다.



작성자: SecureKim 시간: 오전 1:12 댓글 없음: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: Centos, CentOS 6.4, CentOS 설치

 

2013년 7월 12일 금요일

[Nginx] apache를 nginx로 window를 CentOS 로 !

 




최근에 Window 7, Apache ,Node , Mysql , Redis 로 구성된 서버에

Stress Test를 하게되었습니다.

첫 페이지에서 PHP로 MySQL 로 로그인 하고,

여러 과정을 지나 Node에서 서비스를 해주는 것이었습니다.

사람들 60여명 정도에게 테스트를 했는데

정말 생각지도 못하게 로그인 페이지 부터 막혔습니다.

Win7 + Apache가 그 정도일 줄이야...


그날 바로 서버를 완전히 백업하고

Centos 를 설치한 후

Apahce를 Nginx 로 바꾸고 다른 것들도 올려 보았습니다.

그 사이에 있었던 (지금 생각해보면 어처구니 없는, 하나당 몇시간동안 고생했던)

잊지 말아야 할 것들을 적어 봅니다.

####################################################
# USB로 Centos 설치할 때는 부트로더가 USB에 설치되지 않도록 주의한다.
(이 상황에서 재부팅시 부트로더 뻥난것처럼 검은화면에 커서만 깜빡거립니다.)
이 경우, 재설치 하지말고 설치한 USB로 다시 부트로더를 잡아주면 됩니다.

# PHP Session을 이용하려면 최신버젼을 설치해야 한다.

# Nginx 에서 해야할 설정들
PHP , 특히 Websocket을 이용하기 위한 설정들

# 방화벽 설정을 잘 해준다. 열어야 할 포트를 열어준다.

# Mysql 백업했던거 복원할 때 < ,  > 절대 헷갈리지 말것.

# 현재 디렉토리부터 하위디렉토리 까지 문자열 /SL/ 을 /sl/로 바꾸어야 할 때
# 단, 신중하게 사용하여야 합니다. 반드시 바꿀 폴더에 들어가서 작업 하세요.
# 잘못사용했다가 서버가 날아갔습니다.
find ./ -type f -exec sed -i 's#/SL/#/sl/#' {} \;


#삼바 폴더 권한 설정을 해도 권한 문제로 안될 때
vi /etc/selinux/config
Set
//SELINUX=enforcing
SELINUX=disabled

 

#whereis , ps -e | grep "찾을 프로세스" 로 잘 설치되었고 실행되는지 확인한다.

 

# 더 있었던것 같은데 기억이 안나는 관계로...

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

 

 

 

CentOS 와 Nginx 로 바꾼 다음 , 신세계가 펼쳐졌습니다. 정말 확실히 느껴지는 속도차이!

 

 

여담으로..CentOS에 대해서

 

"누가 센트 오에스라고 읽냐 센토스라고 읽어야지" 라는 분도 계시고

 

Cent + OS(Operating System) 이기 때문에

 

센트 오에스 라고 읽어야 된다고 하는 분도 계십니다.

 

뭐가 맞는 건지는 잘 모르겠지만 전 그냥 센트오에스 라고 읽으렵니다 ㅋㅋ

 

 

작성자: SecureKim 시간: 오후 6:14 댓글 2개: 

이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유Pinterest에 공유

라벨: 검은화면, 센토스, 센트 오에스, 아파치, 엔진엑스, 윈도우, 커서 깜빡임, apache, Centos, nginx, window

 

이전 게시물

피드 구독하기: 글 (Atom)