서버관리2013. 12. 3. 22:46
300x250




리눅스 서버에서 트래픽을 제한하고자 할 때,

웹서비스의 사이트별 트래픽 제어는 mod_cband ( apache 1.x 에서는 mod_throttle ) 등을 많이 사용한다. 

그러나, 이는 웹서비스에 대한 트래픽만 제어가 가능한다. 


서버 시스템 자체의 트래픽을 제한할 필요가 있다.  

ftp 서비스나 백업 트래픽, 시스템 크랙으로 인한 트래픽 과다 발생 등등의 이유에서다. 


tc 라는 명령어로 랜카드( 보통 eth0 )의 트래픽 제어가 가능하다. 

명령어가 생소하여 복잡하게 보일 수 있는데, 아래 스크립트를 이용하면 손쉽게 사용할 수 있다. 


출처 : http://www.topwebhosts.org/tools/traffic-control.php


#!/bin/bash
#
#  tc uses the following units when passed as a parameter.
#  kbps: Kilobytes per second 
#  mbps: Megabytes per second
#  kbit: Kilobits per second
#  mbit: Megabits per second
#  bps: Bytes per second 
#       Amounts of data can be specified in:
#       kb or k: Kilobytes
#       mb or m: Megabytes
#       mbit: Megabits
#       kbit: Kilobits
#  To get the byte figure from bits, divide the number by 8 bit
#

#
# Name of the traffic control command.
TC=/sbin/tc

# The network interface we're planning on limiting bandwidth.
IF=eth0             # Interface

# Download limit (in mega bits)
DNLD=1mbit          # DOWNLOAD Limit

# Upload limit (in mega bits)
UPLD=1mbit          # UPLOAD Limit

# IP address of the machine we are controlling
IP=216.3.128.12     # Host IP

# Filter options for limiting the intended interface.
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"

start() {

# We'll use Hierarchical Token Bucket (HTB) to shape bandwidth.
# For detailed configuration options, please consult Linux man
# page.

    $TC qdisc add dev $IF root handle 1: htb default 30
    $TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
    $TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
    $U32 match ip dst $IP/32 flowid 1:1
    $U32 match ip src $IP/32 flowid 1:2

# The first line creates the root qdisc, and the next two lines
# create two child qdisc that are to be used to shape download 
# and upload bandwidth.
#
# The 4th and 5th line creates the filter to match the interface.
# The 'dst' IP address is used to limit download speed, and the 
# 'src' IP address is used to limit upload speed.

}

stop() {

# Stop the bandwidth shaping.
    $TC qdisc del dev $IF root

}

restart() {

# Self-explanatory.
    stop
    sleep 1
    start

}

show() {

# Display status of traffic control status.
    $TC -s qdisc ls dev $IF

}

case "$1" in

  start)

    echo -n "Starting bandwidth shaping: "
    start
    echo "done"
    ;;

  stop)

    echo -n "Stopping bandwidth shaping: "
    stop
    echo "done"
    ;;

  restart)

    echo -n "Restarting bandwidth shaping: "
    restart
    echo "done"
    ;;

  show)

    echo "Bandwidth shaping status for $IF:"
    show
    echo ""
    ;;

  *)

    pwd=$(pwd)
    echo "Usage: tc.bash {start|stop|restart|show}"
    ;;

esac

exit 0


주요 설정 부분은

IF : 랜카드 지정 ex) eth0

DNLD : 다운로드 제한 트래픽

UPLD : 업로드 제한 트래픽

IP : IF에 설정된 IP 주소


실행방법 - 위 스크립트를 tc.sh 로 저장하고 실행권한을 준 후에

# tc.sh start

# tc.sh stop

# tc.sh restart


위 스크립트의 자세한 설명과 사용법, 그리고 실제 제한되고 있는 mrtg 그래프 이미지는, 아래 사이트에서 잘 설명되어 있다.

http://www.xelloss.pe.kr/258



** 참고

http://www.topwebhosts.org/tools/traffic-control.php

http://www.xelloss.pe.kr/258



** 추가

잘 몰랐던 것이기도 하고, 한가지 재미있는 것은 .. 

tc 로는 서버에서 나가는 트래픽만 제한이 가능하고 서버로 들어가는 트래픽은 제어하지 않는 다는 것이다. 헐~

https://kldp.org/node/59454


그럼 저 위의 스크립트에 있는 DNLD, UPLD 변수는 무슨 의미일까나? ㅡㅡ


테스트를 해 보니, UPLD 변수 값이 서버에서 나가는 트래픽 제한 값이다.

비트이기 때문에 바이트 값은 8 로 나누면 된다. 



300x250
Posted by 마스타
서버관리2013. 12. 3. 18:29
300x250

https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=11062


300x250
Posted by 마스타
서버관리2013. 12. 3. 15:34
300x250


** 참고 사이트

https://www.linux.co.kr/home/lecture/?leccode=10588

http://blog.cafe24.com/2127



300x250
Posted by 마스타
서버관리2013. 12. 3. 15:32
300x250


ㅁ plugin-container 란?


plugin-container 는 종종 문제가 되기도 하는 플러그인에 영향을 받지 않기 위해 격리시켜서 적재하기 위한 Firefox 의 프로세스인데, 많은 사람들이 plugin-container 사용하지 않고 disable 시키길 원한다. 

 


ㅁ plugin-container 를 disable 시키는 방법



1. 오래된 버전의 Firefox 에서는 


    - 주소창에 about:config 입력한다.

    - dom.ipc.plugins.enabled 를 찾거나 없으면 새로 만든다.

    - 값에 false 를 설정한다.

 


2. 새로운 버전의 Firefox 에서는 위 방법이 안먹는 듯 하고, 윈도 환경변수를 세팅해야 된다. 윈도7 기준..


    - 바탕화면의 내컴퓨터 오른쪽 클릭해서 속성

    - 고급 시스템 설정 선택

    - 환경변수 버튼 클릭

    - 새로만들기 버튼 클릭, 모든이에게 적용하려면 시스템변수에 로그인된 사용자만 적용하려면 사용자변수에 추가

    - 변수명에 MOZ_DISABLE_OOP_PLUGINS 라 하고 값에 1 을 넣는다. 

 


 그리고, Firefox 를 닫고 다시 시작한다. 



** 참고 : http://www.fluxbytes.com/software-tips/how-to-disable-plugin-container-exe/

300x250
Posted by 마스타
서버관리2013. 12. 3. 12:09
300x250

센토스 5.x 대에서 iptables 의 설정파일은 

/etc/sysconfig/iptables 파일이다. 


위 파일 수정후 적용시키는 방법은 데몬을 다시시작해 주면 된다. 재시작하는 방법은 두가지 정도가 있는데,  

# service iptables restart     => 첫번째 방법

# /etc/rc.d/init.d/iptables restart     => 두번째 방법


설정파일 수정방법

/etc/sysconfig/iptables 파일은 iptables 전체 문장에서 앞의 명령어를 뺀 뒷부분으로 된 구문들이 나열되어 있다. 

여기에 추가 수정하면 된다. 


참고로, 센토스 5.x 에서는 국가별 제한으로 많이 쓰는 모듈 옵션인 -m geoip 가 기본적으로 안먹는다. 

설치하는 방법은 많이 있으나, 커널이나 iptables 를 다시 빌드하지 않은 방법으로 김정균 님이 만들어 놓은 것이 간편한 듯하다. 

http://my.oops.org/117

http://www.lug.or.kr/m/bbs/view.php?bo_table=download&wr_id=505&page=6

안타깝게도 위 방법은 오래된 정보여서 잘 안되는 것 같다. 그냥, 참고만 하면 될 듯 하다. 


주요 설정 내용


## brute forse ssh attack defense   http://la-samhna.de/library/brutessh.html

-N SSH_WHITELIST

-A SSH_WHITELIST -s TRUSTED_HOST_IP -m recent --remove --name SSH -j ACCEPT

-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

-A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST

-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update \

 --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force

-A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update \

 --seconds 60 --hitcount 4 --rttl --name SSH -j DROP


## DNS Amplification Attacks    http://www.cryptonizer.com/dnsamp.html

-A INPUT -p udp --dport 53 -m recent --set

-A INPUT -p udp --dport 53 -m recent --update --seconds 20 --hitcount 20 -j DROP




300x250
Posted by 마스타
서버관리2013. 12. 3. 11:58
300x250

** 출처 : http://twoseven.kr/linux2/bbs/board.php?bo_table=qna&wr_id=349


-m 옵션은 iptable에서 확장모듈을 로드하기 위한 옵션입니다. 
확장모듈은 리눅스 배포판에 따라서 경로가 다를수 있는데 centos 라면 /lib/iptables 안에 있을겁니다. 

-m state 는  /lib/iptables/libipt_state.so  <== 이 모듈을 로드하기위한것입니다. 
예를 들면 테스트를 위해서 아래처럼 없는 모듈을 옵션뒤에 넣어보면 쉽게 알수 있을것입니다. 

[root@centos1 iptables]# iptables -m test 
iptables v1.3.5: Couldn't load match `test':/lib/iptables/libipt_test.so: cannot open shared object file: No such file or directory 

그리고 로드된 모듈은 /proc/net/ip_tables_matches  이파일에서 볼수 있습니다. 




300x250
Posted by 마스타
개발2013. 11. 23. 16:58
300x250

구글 크롬은 

웹사이트가 한 화면안에 다 들어오고 세로 스크롤이 필요 없을 경우에,

세로 스크롤바가 차지하고 있는 자리 자체를 없애 버린다. 


이로 인해서 새로고침 등으로 웹페이지가 로딩될 때, 

페이지 자체가 좌에서 우로 약간 이동하는 현상이 발생한다. 그래서, 좌우로 흔들리는 것처럼 보인다.


크롬에서 세로 스크롤 바를 항상 자리차지하고 있게 하려면, 


css 에

html {overflow-y:scroll;}

를 추가하면 된다. 


300x250
Posted by 마스타
그누보드2013. 11. 12. 12:14
300x250

그누보드5 에서,


관리자 페이지에서 테이블 신규 추가시에 생성되는 테이블의 charset 이 latin-~ 어쩌고 저쩌고 로 생성되는 경우가 있다. 

리눅스 서버 시스템의 문자셋이 UTF-8 인 경우인 데도 말이다. 

생성되는 테이블의 필드의 문자셋도 latin~ 어쩌고 저쩌로 생성되어서, 한글 입력시 한글이 깨져 보인다. 


이경우, 테이블 생성시 디폴트 문자셋을 지정해 줄 수 있다. 


// DB 테이블 생성

if(!sql_query(" DESCRIBE `{$g5['qa_config_table']}` ", false)) {

sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['qa_config_table']}` (

........

) CHARSET=utf8 ", true);


이렇게 테이블 생성시에 CHARSET=utf8 을 추가하면, utf-8 로 테이블을 생성하고, 필드들도 utf-8 로 생성된다. 

주의할 것은 utf-8 이 아니고, utf8 이다. ^^


300x250
Posted by 마스타
서버관리2013. 11. 11. 13:03
300x250




http://api.hostinger.kr/redir/2317253


리눅스 무료 웹호스팅 서비스다. 

2GB 저장공간과 100GB 대역폭을 제공해 준다. 

PHP 와 MySQL 을 제공해 주고, 웹사이트빌더도 제공한다. 


가입 추천인 제도가 있는데, 위 링크를 통해서 가입하시면, 추천인에게 도움을 준다고 한다. ^^

외국계라 회원가입시, 이름, 이메일, 비번 만 입력하면 된다. 


특히, 자동설치기라는 메뉴에서 보면, 

워드프레스나 줌라 드루팔 등, 설치형 블로그나 CMS 시스템의 대부분을 버튼 몇번 클릭으로 자동으로 설치해 준다. 헐~

테스트용이나 개인용으로 사용해 보면 좋을 듯 하다. 


제공 기능 중 재미있는 것 중의 하나는, php 의 버전을 한정적이긴 하지만 선택할 수 있다. ^^



안타깝게 MySQL 의 버전은 선택 기능이 없다. 


제약사항은 용량이 2G 인 점과 디비를 2개까지 밖에 생성할 수 없다. 

그리고, 제공되는 기능중 SSH 접속 등 일부 기능을 사용할 수 가 없다. 유료 서비스는 가능한 듯 하다. 


사용해 본 소감으로는, 무료 서비스 치고는 제약이 별로 없고 쓸만하다. 

보통 내가 올린 동영상을 그대로 링크를 제공해 주는 곳은 없는데, 여기서는 wmv 등 동영상 파일을 올리고 링크 걸면 된다. ^^

하나의 계정으로 호스팅을 여러개를 생성시킬 수 있기 때문에 용량과 트래픽 등은 분산이 가능하다.


문제는?? 속도다. ㅠㅠ



참고, 프리미엄 계정 사용 후기

http://www.i-swear.com/923







300x250
Posted by 마스타
서버관리2013. 11. 11. 12:36
300x250



http://www.chiark.greenend.org.uk/~sgtatham/putty/


서버 박스의 char set 이 EUC-KR 인 리눅스 시스템이 있는데, 

putty 0.62 까지는 터미널 상에서 한글이 잘 나왔으나, 0.63 버전에서 접속시 한글이 깨지는 현상이 생겼다. 


살펴 보니, 0.63 에서의 문자셋 세팅 기본 값이 UTF-8 이 된 모양이다. 

그래서 EUC-KR 서버에 접속시 터미널 창에서 한글이 잘 안나온다. 


이전 버전을 열어서 보니, 값이 Use font encoding 이다. 

0.63 에서 이 값으로 설정을 변경하니, 한글이 잘 나온다. 


참고로, 서버의 문자셋이 UTF-8 인 것은 그냥 별 문제없다. 


300x250
Posted by 마스타