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에 공유
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)
'study' 카테고리의 다른 글
[JAVA] List 에서 Map 값 가져오기 / List<Map<String, Object>> (0) | 2021.12.15 |
---|---|
정부프레임워크 프로젝트 로딩안됨 (0) | 2021.10.29 |
mysqlnd PHP를 활성화하려면? (0) | 2019.11.08 |
리눅스 문자열 검색 명령어 [ grep ] (0) | 2019.11.07 |
tar로 압축하기, 압축풀기 (0) | 2019.11.07 |