시스템/Linux2016. 4. 28. 17:49

Sendmail 설정



vi /etc/mail/sendmail.mc


===== 변경전(원본) =====

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

...

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl



위 라인을 아래와 같이 수정 


===== 변경 후 =====

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

...

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

 


m4 tool을 이용하여 sendmail.cf 파일을 재생성해 준다.


m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf



vi /etc/mail/sendmail.cf 


#Dj$w.Foo.COM


위 항목을 아래와 같이 수정한다. 저 상태로 두면 localhost.localdomain.com 으로 메일이 발송되므로 수신측 차단됨


Dj[도메인명]


저장 후 sendmail 서비스를 재시작 한다.


# vi /etc/mail/local-host-names

[domain name]  RELAY

 

해당 파일에 추가한 도메인으로 메일이 오면 서버내의 로컬계정의 메일박스로 메일이 수신됨

 

외부에서 서버의 sendmail을 통하여 메일 발송시 아무나 보낼 수 없도록 설정


# vi /etc/mail/access

[domain name] [option]

 

- Option

RELAY - host 에서 지정된 메일 허용

REJECT - host 에서 지정된 메일 거부

DISCARD - 메일을 받은후에 폐기, 발신자는 메일이 발신된것으로 알게됨

OK - host 에서 지정된 메일의 모든것을 허용


access 파일을 수정 후 적용하기 위해서 아래의 명령어를 실행해야 함


# makemap hash /etc/mail/access < /etc/mail/access

 

서버에 존재하지 않은 계정으로 온 메일을 서버내의 로컬계정의 메일박스로 전달해준다.


# vi /etc/mail/virtusertable

[mail address] [user name]






dovecot 설치 & 설정


http://dovecot.org/ 

위 사이트에서 알맞은 버전의 소스를 다운받는다.

# wget http://dovecot.org/releases/1.1/dovecot-1.1.2.tar.gz
# tar xvfz dovecot-1.1.2.tar.gz
# cd dovecot-1.1.2
# ./configure --prefix=/usr/local/dovecot --localstatedir=/var --with-pam --with-gssapi --with-mysql
# make
# make install
# groupadd -g 97 dovecot
# useradd -u 97 -g 97 -d /usr/libexec/dovecot -s /sbin/nologin dovecot

아래와 같은 내용으로 설정파일을 작성(imap 만 사용할 경우)

# vi /usr/local/dovecot/etc/dovecot.conf

protocols = imap
disable_plaintext_auth = no
ssl_disable = yes
protocol imap {
}
auth default {
mechanisms = plain
passdb passwd {
}
passdb shadow {
}
userdb passwd {
}
user = root
}
plugin {
}
mail_privileged_group = mail


아래와 같이 서비스 실행 파일을 만든다.


# vi /etc/rc.d/init.d/dovecot



#!/bin/bash

#

#   /etc/rc.d/init.d/dovecot

#

# Starts the dovecot daemon

#

# chkconfig: - 65 35

# description: Dovecot Imap Server

# processname: dovecot

# Source function library.

. /etc/init.d/functions


test -x /usr/local/dovecot/sbin/dovecot || exit 0


RETVAL=0

prog="Dovecot Imap"


start() {

        echo -n $"Starting $prog: "

    daemon /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot

    echo

}


stop() {

    echo -n $"Stopping $prog: "

    killproc /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot

    echo

}


#

#   See how we were called.

#

case "$1" in

  start)

    start

    ;;

  stop)

    stop

    ;;

  reload|restart)

    stop

    start

    RETVAL=$?

    ;;

  condrestart)

    if [ -f /var/lock/subsys/dovecot ]; then

        stop

        start

    fi

    ;;

  status)

    status /usr/local/dovecot/sbin/dovecot

    RETVAL=$?

    ;;

  *)

    echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"

    exit 1

esac


exit $RETVAL



# chmod 700 /etc/init.d/dovecot
# chkconfig dovecot on

# /etc/init.d/dovecot start


Posted by 소울하트
시스템/Linux2016. 3. 29. 16:50

. # yum -y install yum-priorities

 

2. 자기 시스템에 맞게 위의 rpm을 다운받는다. 다운주소  http://pkgs.repoforge.org/rpmforge-release/ 

여기서는CentOS 6 i386버전으로 설명한다.

 

--CentOS 4 버전용 rpm-------------------------------------------------------------------------------
i386 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.i386.rpm

x86_64 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.x86_64.rpm

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

 

--CentOS 5 버전용 rpm-------------------------------------------------------------------------------
i386 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

x86_64 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

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

 

--CentOS 6 버전용 rpm-------------------------------------------------------------------------------
i386 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

x86_64 : http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
----------------------------------------------------------------------------------------------------

# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm


3. # yum -y install kernel-headers kernel-devel

 

4. # yum --enablerepo=rpmforge install fuse fuse-ntfs-3g dkms dkms-fuse


5. # fdisk -l
------------------------------------------------------------------
/dev/sda1 22193 38914 1341243543 7 HPFS/NTFS
------------------------------------------------------------------
추가로 장착한 하드의 용량과 파일타입 그리고 장치명을 확인한다. 여기서는 예로 장치명이 /dev/sda1 이다.
그리고 /mnt/windows 디렉토리에 마운트 할것이다.

 

6. # ntfs-3g /dev/sda1 /mnt/windows 

 

또는 # mount -t ntfs-3g /dev/sda1 /mnt/windows

      

 

7. # vi /etc/fstab         : 부팅시 자동으로 마운트 올리기

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

/dev/sda1 /mnt/windows ntfs-3g defaults 0 0

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

 

출처 : http://blog.naver.com/nforce7050/140141157931


Posted by 소울하트
시스템/Linux2014. 12. 3. 10:35

VSFTP 한글 설정(UTF-8, EUCKR 포함) - CentOS 기준

 

보통 yum 으로 vsftp 를 설치시 자동으로 RPM으로 설치가 되며, 버전은 2.0.5 가 설치가 됩니다.(2014.12 기준)

 

설치 후 FTP를 이용하는데 지장은 없지만 한글 파일을 업로드 하면, 파일이름이 깨져서 다시한번 수정을 해줘야 되거나,

FTP 로그를 확인해도 ??? 와 같이 표시가 되서 어떠한 데이터를 업/다운 하였는지 확인이 안됩니다.

 

이 문제를 해결하기 위해서 vsftp 를 소스 컴파일 하였고, 문제점을 해결하였습니다.

 

우선 서버의 언어셋을 확인 합니다.

 

[root@localhost /]# echo $LANG
ko_KR.UTF-8
[root@localhost /]#

 

제 서버의 경우 언어셋은 UTF-8 입니다.

(언어셋 설정 참조 : http://mindpower.kr/53 )

 

따라서 UTF-8 기준으로 설정을 해야합니다. (물론 EUC-KR 도 본문 내용에 설명하겠습니다.)

 

다음으로 기존에 설치되어 있는 vsftpd 를 확인, 삭제합니다.

(rpm 으로 삭제시 설정파일은 자동으로 백업은 되지만 기타 chroot_list 등의 파일들은 백업이 필요합니다.)

 

[root@localhost ~]# rpm -qa | grep vsftpd
vsftpd-2.0.5-28.el5
[root@localhost ~]#

[root@localhost ~]# service vsftpd stop

[root@localhost ~]#
[root@localhost ~]# rpm -e vsftpd-2.0.5-28.el5
warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave
[root@localhost ~]#

 

삭제 후 vsftp 를 다운 받고, 압축을 풉니다. 

(홈페이지 : https://security.appspot.com)

 

[root@localhost ~]# wget https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz

[root@localhost ~]# tar xvzf vsftpd-3.0.2.tar.gz

[root@localhost ~]# cd vsftpd-3.0.2

[root@localhost vsftpd-3.0.2]#

 

다음 각 아래의 파일들을 열어 내용을 수정해 줍니다.

 

※ 서버 설정이 EUC-KR(UTF-8 환경은 그냥 두시면 됩니다.) 환경이라면 아래의 파일을 수정해줍니다. (굵은색 표시가 주석처리 할 부분입니다.)

 

파일명 : opts.c

 

[root@localhost vsftpd-3.0.2]# vi opts.c

 

 

/*
 * Part of Very Secure FTPd
 * Licence: GPL v2
 * Author: Chris Evans
 * opts.c
 *
 * Routines to handle OPTS.
 */

#include "ftpcodes.h"
#include "ftpcmdio.h"
#include "session.h"

void
handle_opts(struct vsf_session* p_sess)
{
  str_upper(&p_sess->ftp_arg_str);
  /* if (str_equal_text(&p_sess->ftp_arg_str, "UTF8 ON"))
  {
    vsf_cmdio_write(p_sess, FTP_OPTSOK, "Always in UTF8 mode.");
  }
  else
  {
    vsf_cmdio_write(p_sess, FTP_BADOPTS, "Option not understood.");
  } */

 

파일명 : logging.c

  

[root@localhost vsftpd-3.0.2]# vi logging.c

 

(vsftpd 3.0.2 기준 171 번 라인 주석처리)

 

str_replace_unprintable(p_str, '?');   ->     /*  str_replace_unprintable(p_str, '?'); */

파일명 : postlogin.c
  

[root@localhost vsftpd-3.0.2]# vi postlogin.c


(vsftpd 3.0.2 기준 136 번 라인 주석처리)


str_replace_unprintable(&proctitle_str, '?');    ->    /* str_replace_unprintable(&proctitle_str, '?'); */


파일명 : builddefs.h
  

[root@localhost vsftpd-3.0.2]# vi builddefs.h

 

(vsftpd 3.0.2 기준 4 번 라인 수정하여 TCP_WRAPPERS 기능 활성)

 

#undef VSF_BUILD_TCPWRAPPERS    ->    #define VSF_BUILD_TCPWRAPPERS

 

※ OS가 64비트 환경이라면 아래의 파일도 수정해 줍니다.

 

파일명 : vsf_findlibs.sh

 

[root@localhost vsftpd-3.0.2]# vi vsf_findlibs.sh

 

(vsftpd 3.0.2 기준 16 번, 52번 라인 수정)

 

- 16번 라인

locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";    ->   locate_library /lib/libpam.so.0 && echo "/lib64/libpam.so.0";

 

- 52번 라인

  echo "/lib/libcap.so.1";    ->      echo "/lib64/libcap.so.1";

 

 

man 파일이 설치될 폴더를 생성해주고 make 와 make install 을 진행합니다.

 

[root@localhost vsftpd-3.0.2]# mkdir -p /usr/local/man/man8

[root@localhost vsftpd-3.0.2]# make

[root@localhost vsftpd-3.0.2]# make install

 

그 후 아래 처럼 vsftpd 설정 파일과 서비스 실행파일, pam 파일등을 복사하고 내용을 수정합니다.

 

[root@localhost vsftpd-3.0.2]# cp vsftpd.conf /etc/vsftpd/vsftpd.conf              (/etc/vsftpd 폴더가 없을경우 만들어줍니다.)

[root@localhost vsftpd-3.0.2]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd

[root@localhost vsftpd-3.0.2]#

[root@localhost vsftpd-3.0.2]# vi /etc/pam.d/vsftpd

 

(2번째 라인의 ftpusers 파일 위치 수정)

auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth       required     /lib/security/pam_unix.so shadow nullok
auth       required     /lib/security/pam_shells.so
account    required     /lib/security/pam_unix.so
session    required     /lib/security/pam_unix.so

 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

auth       required     /lib64/security/pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth       required     /lib64/security/pam_unix.so shadow nullok
auth       required     /lib64/security/pam_shells.so
account    required     /lib64/security/pam_unix.so
session    required     /lib64/security/pam_unix.so

 

[root@localhost vsftpd-3.0.2]# echo "root" >  /etc/vsftpd/ftpusers               (root 와 같은 시스템권한의 유저는 로그인을 불가하도록 추가합니다.)

[root@localhost vsftpd-3.0.2]# chmod 600 /etc/vsftpd/*

[root@localhost vsftpd-3.0.2]# touch /etc/init.d/vsftpd 

[root@localhost vsftpd-3.0.2]# chmod 755 /etc/init.d/vsftpd

 

서비스 실행파일에 내용을 추가해줍니다.

 

[root@localhost vsftpd-3.0.2]# vi /etc/init.d/vsftpd

 

 

 

 

#!/bin/bash
#
# vsftpd      This shell script takes care of starting and stopping
#             standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
#              that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/local/sbin/vsftpd ] || exit 0

RETVAL=0
prog="vsftpd"

start() {
        # Start daemons.

        if [ -d /etc/vsftpd ] ; then
                for i in `ls /etc/vsftpd/*.conf`; do
                        site=`basename $i .conf`
                        echo -n $"Starting $prog for $site: "
                        /usr/local/sbin/vsftpd $i &
                        RETVAL=$?
                        [ $RETVAL -eq 0 ] && {
                           touch /var/lock/subsys/$prog
                           success $"$prog $site"
                        }
                        echo
                done
        else
                RETVAL=1
        fi
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 1
esac

exit $RETVAL

 

 

 

[root@localhost vsftpd-3.0.2]# chkconfig vsftpd on                (자동 실행 되도록 합니다.)

 

아래는 vsftpd.conf 의 파일입니다.

(임의로 필요한 옵션들만 정리해서 수정하였습니다.)

 

[root@localhost vsftpd-3.0.2]# 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/vsftpd.log
xferlog_std_format=NO
data_connection_timeout=120
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES

pam_service_name=vsftpd
tcp_wrappers=YES

max_clients=20
max_per_ip=5
local_max_rate=10000000
use_localtime=YES
connect_timeout=600
accept_timeout=60
ftp_data_port=20
listen_port=21000
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
file_open_mode=0644
async_abor_enable=NO

dirlist_enable=YES
session_support=YES

 

 

 

이제 서비스를 시작하고 접속하여 한글파일이 깨지는지 로그에서 정상적으로 출력되는지 확인합니다.

(iptables 과 같은 방화벽에 FTP listen 포트를 허용하는건 기본입니다. 위에 설정한 passive 모드 포트 포함)

 

[root@localhost vsftpd-3.0.2]# service vsftpd start
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]
[root@localhost vsftpd-3.0.2]#

 

[root@localhost vsftpd-3.0.2]# tail --f /var/log/vsftpd.log

Wed Dec  3 10:28:24 2014 [pid 14163] [webadmin] OK MKDIR: Client "192.168.0.222", "/새 폴더"

Wed Dec  3 10:28:25 2014 [pid 14163] [webadmin] OK MKDIR: Client "192.168.0.222", "/새 폴더1"

 

※ 위와 같이 정상적으로소스컴파일 하고 했음에도 로그파일에 한글이 정상적으료 표현되지 않는다면, 로그파일의 인코딩이 EUCKR 이라 그럴수 있습니다.

    아래처럼 인코딩을 변경해 주면 정상적으로 확인이 가능합니다.

 

[root@localhost vsftpd-3.0.2]# mv vsftpd.log vsftpd.log.bak

[root@localhost vsftpd-3.0.2]# iconv -c -f euckr -t utf8 vsftpd.log.bak > vsftpd.log

 

 

 

 

 

 

Posted by 소울하트
시스템/Linux2013. 12. 20. 08:35

안녕하세요.

 

리눅스 설치 후 콘솔작업 할때에는 문제가 없으나, SSH접속프로그램인 Putty 나 SecurCRT 등을 사용할때에

화면 및 한글깨짐으로 작업에 어려움이 발생할 수 있습니다.

(한글설정 이 되지않아 불편할 때가 많죠.)

 

또한 일본식 한자나 한문 같은 경우에도 정확하게 표현해 주지 못할 경우에 UTF-8 유니코드 가 사용됩니다.

 

UTF-8 은 가변길이 인자 인코딩 방식으로 1비트부터 4비트까지 가변적으로 바뀌기에 모든 외국어 및 한글을

표현하기에 시스템의 언어설정은 UTF-8로 하시길 권장드립니다.

(EUC-KR 의 경우 8비트 인코딩 방식으로 한글만 표현하기에는 적합합니다.)

 

그럼 우선 시스템에 UTF-8 설정하는 방법입니다.

 

아래의 방법처럼 /etc/sysconfig/i18n 이 파일에 UTF-8 관련 내용을 추가합니다.

/etc/sysconfig/i18n 파일이 리눅스의 언어설정 파일입니다.(한글설정 포함)

 

vi 편집기로 /etc/sysconfig/i18n 파일을 수정해줍니다.

개발된 웹소스의 언어 설정에 따라 맞는 설정을 사용하시면 될듯합니다. vi 로 리눅스 Shell 상에서 보기 위해서 입니다.

보통 UTF-8 로 저장된 문서를 시스템의 LANG 설정이 맞지 않으면 꺠져서 보이기에 Shell 에서 작업할때에

알아보기가 힘듭니다..

 

#UTF-8 설정 시

 

vi ⁄etc⁄sysconfig⁄i18n
LANG="ko_KR.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="8859-15"
vi ⁄etc⁄profile
export LC_ALL="ko_KR.UTF-8"
export LANG="ko_KR.UTF-8"

 

 


#EUC-KR 설정 시

LANG="ko_KR.EUC-KR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"

 

위처럼 작업 후 쉘에서 source 명령으로 /etc/sysconfig/i18n 파일과 /etc/profile 파일을 적용해 주면 됩니다.

source ⁄etc⁄sysconfig⁄i18n
source ⁄etc⁄profile 


마지막으로 어떤파일은 euckr 로 저장이 되고, 어떤파일은 utf8 로 저장이 되었을때 iconv 로 변환해서 보면 되지만

일일이 작업하려면 매우 번거롭습니다..

 

그럴 경우 SSH 로 접속한 계정의 홈디렉토리 아래에 .vimrc 파일을 생성 후 vi 옵션을 설정해 주면

utf8 과 euckr 을 동시에 사용할 수 있습니다.

 

cd ~ 
vi .vimrc


#아래내용 추가

set ts=4
set fileencodings=utf-8,euc-kr

추가 후 재 로그인 하면 로그인 시 .vimrc 파일을 불러오면서 적용이 됩니다.

 

 

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스 감사^^

Posted by 소울하트
시스템/Linux2013. 11. 15. 18:07

php 5.2.1 make 시 mysqli 오류가 발생할 수 있습니다.

 

 

⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c: In function 'zm_startup_mysqli':
⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c:625: error: 'MYSQL_RPL_MASTER' undeclared (first use in this function)
⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c:625: error: (Each undeclared identifier is reported only once
⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c:625: error: for each function it appears in.)
⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c:626: error: 'MYSQL_RPL_SLAVE' undeclared (first use in this function)
⁄usr⁄local⁄php⁄ext⁄mysqli⁄mysqli.c:627: error: 'MYSQL_RPL_ADMIN' undeclared (first use in this function)
make: *** [ext⁄mysqli⁄mysqli.lo] 오류 1

 

그럴경우 mysql.h 파일을 find 로 찾아서 enum mysql_protocol_type 밑에 아래처럼 추가합니다.

enum mysql_protocol_type
{
MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
};


enum mysql_rpl_type
{
MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
};

 

enum mysql_rpl_type 저 내용을 추가해 주면 됩니다.

 

저 같은 경우는 mysql.h 파일이 /usr/local/mysql/include/mysql.h 여기에 있군요.

추가후에 다시 make 하면 잘 되는군요.ㅎㅎ

Posted by 소울하트
시스템/Linux2013. 11. 7. 19:17

요즘 워드프레스로 홈페이지를 구축하고 이용하는것이 많이 보편화 되었는데요,

 

구글플러스에서 글 등록할때 포스트를 보낼때 curl 을 사용합니다.

 

curl 을 사용했을때 https 로 접근시 오류가 발생할 때가 있습니다.

 

저 같은 경우는 지메일에서 받은편지함을 불러올때 오류가 나더군요..

 

error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none

 

위와 같은 오류가 나와서 구글링과 별의 별 작업을 해본결과.. 허무하게 /etc/pki/tls/certs/ca-bundle.crt 이 파일에 대해서 일반유저 읽기 권한이 없는것을

확인!! 황당함과 동시에 권한을 주니 문제가 없더라구요.ㅜㅜ

 

 

$cURL = curl_init(); ⁄⁄ cURL 초기화
curl_setopt($cURL, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($cURL, CURLOPT_USERPWD, "지메일 아이디:비밀번호");
curl_setopt($cURL, CURLOPT_SSLVERSION, 3);
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cURL, CURLOPT_URL, "https:⁄⁄mail.google.com⁄mail⁄feed⁄atom");
$chResult = curl_exec($cURL); ⁄⁄ cURL 실행 
curl_close($cURL); ⁄⁄ cURL 종료
echo $chResult; 

 

 

 

 

Posted by 소울하트
시스템/Linux2013. 10. 24. 22:43

 

 

./configure

 

하기 전에

 

export CFLAGS="-fPIC"
export CC="gcc"

 

또는

 

export CC="gcc -m64 -fPIC"
export CXX="g++ -m64 -fPIC"
export F77="g77 -m64 -fPIC"
export FC="g77 -m64 -fPIC"

 

입력후  설치

Posted by 소울하트
시스템/Linux2013. 5. 31. 15:23

Linux Streaming Red5 Setup

(리눅스 스트리밍 Red5 설치)

 

오늘은 리눅스에서도 스트리밍을 할 수 있는 Red5 설치에 대해 포스팅 하고자 합니다.

 

Red5 는 오픈소스 이며, 자바로 개발이 되고 있습니다.

 

공식사이트(http://www.red5.org)에서 다운로드나 자세한 정보를 얻을 수 있습니다.

 

테스트를 위하여 CentOS 5.8 (32bit) 에서 진행하였습니다.

 

- JAVA 설치

 : Red5는 자바로 개발이 되고 있기에 우선 자바를 설치 합니다.(http://www.oarcle.com 에서 다운)

   저는 jdk-7u17-linux-i586.tar.gz 를 설치하였습니다.

   (wget 으로 다운이 안되어 별도의 FTP 서버에 파일을 업로드 후 서버에서 다운받았습니다.)

 

[root@b ⁄]# cd ⁄usr⁄local⁄
[root@b local]# ls -al jdk-7u17-linux-i586.tar.gz
-rw-r--r-- 1 root root 97488905 Apr  9  2013 jdk-7u17-linux-i586.tar.gz
[root@b local]# tar xvzf jdk-7u17-linux-i586.tar.gz 
[root@b local]# mv jdk1.7.0_17⁄ jdk1.7
[root@b local]# echo 'export JAVA_HOME=⁄usr⁄local⁄jdk1.7' >> ⁄etc⁄profile
[root@b local]# echo 'export PATH=$PATH:$JAVA_HOME⁄bin' >> ⁄etc⁄profile
[root@b local]# echo 'export CLASSPATH="."' >> ⁄etc⁄profile
[root@b local]# source ⁄etc⁄profile
[root@b local]# java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode)

 

 

- Apache ant 설치

: apache ant 는 make 와 같은 build용 도구 이며, red5 0.9버전 이하는 ant 로 build를 해야하기때문에 설치가 필요합니다.

  하지만 red5 1.0 부터는 ant 로 build를 할 필요가 없기에 0.9 이하의 버전을 설치한다면 ant 를 설치해야 합니다.

  전 1.0.1 최신버전을 설치하도록 하겠습니다.

  (red5 1.0 이상의 버전을 설치하려면 ant 설치는 무시하셔도 됩니다.)

 

 - http://ant.apache.org/bindownload.cgi   <- Apache Ant Project 홈페이지

 

[root@b ~]# wget http://apache.mirror.cdnetworks.com//ant/binaries/apache-ant-1.9.0-bin.tar.gz

[root@b ~]# tar xvzf apache-ant-1.9.0-bin.tar.gz

[root@b ~]# mv apache-ant-1.9.0 /usr/local/ant

[root@b ~]# echo 'export ANT_HOME=/usr/local/ant' >> /etc/profile
[root@b ~]# echo 'export PATH=$PATH:$ANT_HOME/bin' >> /etc/profile

[root@b ~]# source /etc/profile

[root@b ~]# ant -v
Apache Ant(TM) version 1.9.0 compiled on March 5 2013
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed

 

 

- RED5 설치

 : RED5 0.9 이하버전은 ant 로 빌드를 새로 해줘야 합니다. 하지만 1.0 이상 버전은 별도로 빌드를 할 필요가 없습니다.

   RED5 0.9 이하버전을 설치하신다면 아래 1번의 방법으로 설치를 하시고, 1.0 이상인 경우 2번의 방법으로 진행하면 됩니다.

  

   RED5 공식 사이트 > http://www.red5.org

 

1번

[root@b ~] # cd /usr/local
[root@b local] # yum install subversion
[root@b local] # svn co http://red5.googlecode.com/svn/java/server/trunk red5
[root@b local] # cd /usr/local/red5/
[root@b red5] # ant prepare
[root@b red5] # ant build

 ※ ant build 오류 발생시

[root@b red5] # ant

 또는

[root@b red5] # ant -f build.xml

[root@b local]# cd red5/dist/conf/

[root@b conf]# vi red5.properties (host ip 를 수정합니다.)

 또는 find 명령으로 한번에 수정
[root@b conf]# find . -name red5.properties -exec vi "-c" "%s/host=0.0.0.0/host=192.168.146.130/g" "-c" "wq" {} \;

[root@b red5] # ./red5.sh &            (백그라운드로 실행시켜줘야 합니다.)

2번

[root@b local]# wget http://red5.org/downloads/red5/1_0_1/red5-1.0.1.tar.gz
[root@b local]# tar xvzf red5-1.0.1.tar.gz

[root@b local]# mv red5-server-1.0 red5

[root@b local]# cd red5/conf/
[root@b conf]# vi red5.properties                    (host ip 를 수정합니다.)

 또는 find 명령으로 한번에 수정
[root@b conf]# find . -name red5.properties -exec vi "-c" "%s/host=0.0.0.0/host=192.168.146.130/g" "-c" "wq" {} \;

 

- RED5 INIT Script 생성

 : ./red5.sh & 명령으로 백그라운드로 실행시켜도 되지만 좀 더 편하게 관리하고자 INIT Script 를 생성합니다.

 

본 포스팅에 첨부된 파일(red5.txt)을 받아 아래의 파일에 복사&붙여넣기 합니다.

 

 

red5.txt  <- 이파일

(파일 내용중 RED5_HOME 라는 부분을 실제 설치 경로로 적어주시면 됩니다.)

 

[root@b conf]# vi /etc/init.d/red5

[root@b conf]# chmod 755 /etc/init.d/red5

[root@b conf]# chkconfig --add red5
[root@b conf]# chkconfig red5 on
[root@b conf]# /etc/init.d/red5 start
Starting red5:                                             [  OK  ]
[root@b conf]# /etc/init.d/red5 stop
Shutting down red5:                                        [  OK  ]

[root@b conf]# /etc/init.d/red5 start
Starting red5:                                             [  OK  ]

[root@b conf]# service red5 restart

  혹 위 service 명령으로 red5 서비스 컨트롤이 안될경우

[root@b conf]# echo "#RED5 Start" >> /etc/rc.local
[root@b conf]# echo "/etc/init.d/red5 start" >> /etc/rc.local

 

- RED5 방화벽 허용

: 외부 서비스 및 테스트를 위하여 방화벽에서 Red5 서비스 포트를 오픈합니다.

 (OPEN Port : 1935, 1936, 3690, 5080, 8088 )

 

[root@b conf]# vi /etc/sysconfig/iptables

 

아래 내용 추가

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1936 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5080 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT

 

[root@b conf]# service iptables restart

 

- RED5 테스트를 위하여 관리페이지 접속

 : http://192.168.146.130:5080 접속

 : 하단의 Install 클릭 하여 데모 설치

 

 

 : 3개 전부 Install 을 클릭하여 설치합니다.  

 

- JW Player 에서 확인

 2. Choose a preset 에서 “RTMP Stream” 클릭
 3. 하단 File 입력란에 스트리밍주소 입력
  (예 : rtmp://192.168.146.130/oflaDemo/미디어파일.flv )
 4. 화면을 클릭하여 재생 테스트

  ※ RED5 를 설치한 서버의 IP 가 사설IP 인 경우 JW Player 에서 접근을 할 수 없기에 재생이 불가능합니다. 

 

 

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스 감사^^

 

Posted by 소울하트
시스템/Linux2013. 5. 24. 10:05

안녕하세요.

 

오늘은.. Fedora Core5 Yum 되는 사이트 입니다.

오랜만에 회사에서 운영하는 이전 장비에 RPM 을 설치하다보니 YUM 이 말썽을 일으키는군요..

 

상당히 오래된 OS 버전이기도 하고 OS를 재설치 하자니.. 당장 급하게 처리해야되고..

 

그래서 찾은 2013/05/24 현재 Fedora core5 에서 yum 이 잘되는 사이트와 설정파일 정보를 올려봅니다.

 

vi /etc/yum.repos.d/fedora-파일명 에 수정하면 됩니다.

=================

fedora-core.repo
-----------------
[core]
name=Fedora Core $releasever - $basearch
#baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄$releasever⁄$basearch⁄os⁄
baseurl=http:⁄⁄ftp.riken.jp⁄Linux⁄fedora⁄core⁄5⁄i386⁄os
mirrorlist=http:⁄⁄ftp.kaist.ac.kr⁄pub⁄fedora⁄linux⁄core⁄$releasesever⁄$basearch⁄os
mirrorlist=http:⁄⁄fedora.redhat.com⁄download⁄mirrors⁄fedora-core-$releasever
enabled=1
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY


[core-debuginfo]
name=Fedora Core $releasever - $basearch - Debug
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄$releasever⁄$basearch⁄debug⁄
enabled=0
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY

[core-source]
name=Fedora Core $releasever - Source
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄$releasever⁄source⁄SRPMS⁄
enabled=0
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY




===================
fedora-updates.repo
-------------------
[updates]
name=Fedora Core $releasever - $basearch - Updates
#baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄updates⁄$releasever⁄$basearch⁄
baseurl=http:⁄⁄ftp.riken.jp⁄Linux⁄fedora⁄core⁄updates⁄5⁄i386⁄
mirrorlist=http:⁄⁄ftp.kaist.ac.kr⁄pub⁄fedora⁄linux⁄core⁄updates⁄$releasesever⁄$basearch
mirrorlist=http:⁄⁄fedora.redhat.com⁄download⁄mirrors⁄updates-released-fc$releasever
enabled=1
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora


[updates-debuginfo]
name=Fedora Core $releasever - $basearch - Updates - Debug
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄updates⁄$releasever⁄$basearch⁄debug⁄
enabled=0
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora


[updates-source]
name=Fedora Core $releasever - Updates Source
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄core⁄updates⁄$releasever⁄SRPMS⁄
enabled=0
gpgcheck=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora


=================
fedora-extra.repo
-----------------
[extras]
name=Fedora Extras $releasever - $basearch
#baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄extras⁄$releasever⁄$basearch⁄
baseurl=http:⁄⁄ftp.riken.jp⁄Linux⁄fedora⁄extras⁄5⁄i386⁄
mirrorlist=http:⁄⁄ftp.kaist.ac.kr⁄pub⁄fedora⁄linux⁄core⁄updates⁄fedora-extras-$releasesever
mirrorlist=http:⁄⁄fedora.redhat.com⁄download⁄mirrors⁄fedora-extras-$releasever
enabled=1
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora-extras
gpgcheck=1


[extras-debuginfo]
name=Fedora Extras $releasever - $basearch - Debug
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄extras⁄$releasever⁄$basearch⁄debug⁄
enabled=0
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora-extras
gpgcheck=1


[extras-source]
name=Fedora Extras $releasever - Source
baseurl=http:⁄⁄download.fedora.redhat.com⁄pub⁄fedora⁄linux⁄extras⁄$releasever⁄SRPMS⁄
enabled=0
gpgkey=file:⁄⁄⁄etc⁄pki⁄rpm-gpg⁄RPM-GPG-KEY-fedora-extras
gpgcheck=1

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스는 매우 감사ㅠ_ㅠ
Posted by 소울하트
시스템/Linux2013. 5. 14. 11:32

 

불필요한 SNMP 로그 삭제

 

SNMP 를 설정시 /var/log/messages 에 아래와 snmp 관련 로그가 남습니다.

하지만 로그가 꾸준히 남기에.. 크게 효율은 없다고 생각됩니다.

May 13 16:45:34 mindpower.kr snmpd[25607]: Connection from UDP: [192.168.0.20]:42509 May 13 16:45:34 mindpower.kr snmpd[25607]: Received SNMP packet(s) from UDP: [192.168.0.20]:42509 May 13 16:45:34 mindpower.kr snmpd[25607]: Connection from UDP: [192.168.0.20]:40426 May 13 16:45:34 mindpower.kr snmpd[25607]: Received SNMP packet(s) from UDP: [192.168.0.20]:40426 May 13 16:45:34 mindpower.kr snmpd[25607]: Connection from UDP: [222.231.47.36]:48124 May 13 16:45:34 mindpower.kr snmpd[25607]: Received SNMP packet(s) from UDP: [192.168.0.20]:48124 May 13 16:45:34 mindpower.kr snmpd[25607]: Connection from UDP: [192.168.0.20]:37321 May 13 16:45:34 mindpower.kr snmpd[25607]: Received SNMP packet(s) from UDP: [192.168.0.20]:37321

 

 

위 로그가 더이상 남지 않게 하기 위해서는 snmpd 프로세스 실행 스크립트를 약간 수정해주면 됩니다.

 

[root@b ~]# vi ⁄etc⁄init.d⁄snmpd

#!⁄bin⁄bash
# ucd-snmp init file for snmpd
#
# chkconfig: - 50 50
# description: Simple Network Management Protocol (SNMP) Daemon
#
# processname: ⁄usr⁄sbin⁄snmpd
# config: ⁄etc⁄snmp⁄snmpd.conf
# config: ⁄usr⁄share⁄snmp⁄snmpd.conf
# pidfile: ⁄var⁄run⁄snmpd

# source function library
. ⁄etc⁄init.d⁄functions

OPTIONS="-Lsd -Lf ⁄dev⁄null -p ⁄var⁄run⁄snmpd.pid -a"
if [ -e ⁄etc⁄sysconfig⁄snmpd.options ]; then
  . ⁄etc⁄sysconfig⁄snmpd.options
fi

RETVAL=0
prog="snmpd"

start() {
        echo -n $"Starting $prog: "
        if [ $UID -ne 0 ]; then
                RETVAL=1
                failure
        else
                daemon ⁄usr⁄sbin⁄snmpd $OPTIONS
                RETVAL=$?
                [ $RETVAL -eq 0 ] && touch ⁄var⁄lock⁄subsys⁄snmpd
        fi;
        echo
        return $RETVAL
}
………… 중략 …………

위 에서 5번째 라인의 OPTIONS="-Lsd -Lf ⁄dev⁄null -p ⁄var⁄run⁄snmpd.pid -a" 부분을 아래처럼 수정해 주면 됩니다.

 

 

OPTIONS="-LS 2 d -Lf ⁄dev⁄null -p ⁄var⁄run⁄snmpd.pid -a"

 

그리고 서비스 재시작 하면 더이상 로그는 쌓이지 않게 됩니다.

이상입니다.^^

 

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스는 매우 감사ㅠ_ㅠ

Posted by 소울하트
시스템/Linux2013. 3. 13. 09:40

리눅스에서 윈도우 공유폴더 Mount

 

오늘은 윈도우에서 공유한 폴더를 리눅스에서 mount 하는 방법을 포스팅 하겠습니다.

 

리눅스에서 윈도우 공유폴더 Mount 하기 위해서는 당연한 이야기 이지만 두 서버간 방화벽등의 보안장비에서 공유포트 또는

 IP단위로 허용이 되어있어야 합니다.

 

1. Windows 공유(WindowsServer2008)

 - 리눅스에서 윈도우 폴더를 Mount 하기 위하여 Windows서버에 공유를 추가합니다.

   (제 서버는 Windows Server 2008 입니다.)

 

 

- 기본으로 Administrator 계정이 설정되지만 로컬에 있는 다른 계정을 추가하여 소유자로 설정할 수 있습니다.

 

 

- 권한은 사용 목적에 따라서 설정합니다. (전 테스트용으로 모든 권한 허용)

 

 

2. Linux 에서 Mount 하기

 - Linux 에서 Windows 공유폴더를 마운트 하기 위해 사전에 공유가 되어있는 폴더를 확인 합니다.

   확인하기 위하여 Linux Server 에 smbclient 명령어로 확인 합니다.

   (smbclient 로 굳이 확인하지 않아도 되며, 해당 명령어가 없을경우 yum install samba-client 로 설치합니다.)

 

[root@b ~]# smbclient -L 192.168.0.250 -U administrator Password: Domain=[WIN-8HTL0M86Y6M] OS=[Windows Server (R) 2008 Standard 6002 Service Pack 2] Server=[Windows Server (R) 2008 Standard 6.0] Sharename Type Comment --------- ---- ------- ADMIN$ Disk 硅 ? C$ Disk 0?? D$ Disk 0?? Downloads Disk IPC$ IPC 硅 IPC Test Disk Users Disk

 

위 처럼 smbclient -L [Windows공유서버IP] -U [공유폴더에 접근가능한 계정] 명령어로 확인하면 위에 공유한 TEST 라는

공유 폴더를 확인할 수 있습니다.

 

 

 

[root@b ~]# mount -t cifs ⁄⁄192.168.0.250⁄TEST ⁄TEST -o username="administrator",password="test1234"

 

mount -t cifs //[Windows공유서버IP]/[공유폴더이름] /[공유할 폴더명] -o username="[공유계정]",password="[암호]"

 

mount 명령어로 위와 같이 윈도우 공유폴더를 리눅스상에서 확인할 수 있습니다.

mount 의 type 은 cifs 로 설정하고, username 과 password 를 입력해두면 시스템이 부팅될때 자동으로 Mount 할 수 있습니다.

 

 

[root@b ~]# vi ⁄etc⁄rc.local

#!⁄bin⁄sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch ⁄var⁄lock⁄subsys⁄local

⁄bin⁄mount -t cifs ⁄⁄192.168.0.250⁄TEST ⁄TEST -o username="administrator",password="test1234"




[root@b ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
⁄dev⁄rd⁄c0d0p3         31G   13G   17G  44% ⁄
⁄dev⁄rd⁄c0d0p1        190M   17M  164M  10% ⁄boot
tmpfs                 760M     0  760M   0% ⁄dev⁄shm
⁄⁄192.168.0.250⁄TEST
                       69G  2.7G   66G   4% ⁄TEST

정상적으로 Mount가 완료되었습니다. 이제 Linux 에서 파일을 생성하여 Windows 서버에서 확인해보겠습니다.

 

[root@b TEST]# echo "test 완료" >> test.txt
[root@b TEST]#
[root@b TEST]# ls -al
total 9
drwxrwxrwx  1 root root    0 May 21 12:30 .
drwxr-xr-x 25 root root 4096 May 21 11:57 ..
-rwxrwSrwx  1 root root   10 May 21 12:30 test.txt

 

 

궁금하신 사항은 댓글 주세요.^^

 

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스는 매우 감사ㅠ_ㅠ

 

 

 

Posted by 소울하트
시스템/Linux2013. 3. 12. 14:04

안녕하세요.

 

64 비트 OS 에서 php 설치시 libpng 를 설치했음에도 아래처럼 오류가 발생할 경우가 있습니다.

 

configure: error: Problem with libpng.(a|so) or libz.(a|so). Please check config.log for more information.

 

이럴때는.. libpng 를 재설치를 해주면 됩니다.

libpng 소스 경로로 이동하셔서 make clean

cp scripts⁄makefile.nommx makefile


덮어쓰고 다시 make 하고 make install 한 후에

 

다시 php 설치하시면 문제가 없이 설치가 됩니다.

 

 

▽도움이 되셨다면 아래의 손가락광고배너 한번 클릭해주는 센스는 매우 감사ㅠ_ㅠ

'시스템 > Linux' 카테고리의 다른 글

Linux 스트리밍 - Red5  (0) 2013.05.31
Fedora Core5 Yum 사이트  (0) 2013.05.24
리눅스 SNMP 로그설정  (0) 2013.05.14
리눅스에서 윈도우 공유폴더 Mount 하기  (0) 2013.03.13
SSH 암호없이 접속(SSH-KEYGEN)  (0) 2012.11.13
리눅스 명령어 - ac  (0) 2012.07.11
리눅스 명령어 - ab  (0) 2012.07.05
리눅스 명령어 - a2p  (0) 2012.07.04
Posted by 소울하트
시스템/Linux2012. 11. 13. 06:40

SSH 암호없이 접속(SSH-KEYGEN)

 

오늘은 DNS 서버 관리를 위한 스크립트를 만들기에 앞서 우선 서버간 인증 암호없이 접속하는 방법을

간단하게 정리하도록 하겠습니다.

 

SSH를 인증없이 접속하는 방법은 SSH-KEYGEN 명령어를 사용하면 됩니다.

 

SSH 암호없이 접속하기 위하여 간단한 작업절차를 설명하겠습니다.

 

 클라이언트 키생성 -> 클라이언트 키 를 서버에 복사 -> sshd.conf 에서 옵션설정 -> sshd 재시작 -> 접속테스트 성공

 

위처럼 아주 간단합니다.

 

아래는 ssh-keygen 의 간단한 안내페이지 입니다. (자세한 내용은 man ssh-keygen 에서 확인할 수 있습니다.)

 

 

우선 차례대로 해보겠습니다.

1. 클라이언트 에서 ssh-keygen 으로 키 파일을 생성합니다.

  - ssh-keygen -t rsa   명령으로 키를 생성합니다.

    (RSA 와 DSA 의 차이에 대해서 간단하게 보실려면 아래의 더보기를 하시면 됩니다..!)

 

  - 엔터 3번을 누르면 생성이 완료됩니다. (처음 엔터는 키생성 위치, 두번째는 키파일의 암호 입력, 세번째는 암호확인)

  - 인증없이 편하게 접속하기 위한 작업이니 암호는 생략하도록 하겠습니다.

  - 파일 2개가 생성됩니다. id_rsa , id_rsa.pub 각각 키파일과 공개키파일입니다.

 

       클라이언트 화면에서 작업한 화면

 

2. 생성된 키파일을 scp 명령어를 통해 서버 로 전송합니다.

 - 파일 2개중 공개 키파일인 id_rsa.pub 을 서버에 복사합니다.

 - scp 전송할파일명 접속할계정@서버주소:복사할경로(또는 파일명)

   (scp 옵션의 사용방법은 대략 이렇습니다.)

 - 아래의 그림과 같이 전송을 완료하였습니다. (보안상 IP 는 지웠습니다.!)

 

       클라이언트에서 작업한 화면

 

3. 서버로 전송한 키파일을 ssh키 폴더에 authorized_keys 의 이름으로 mv 나 rename 명령으로 변경해줍니다.

 - mv id_rsa.pub .ssh/authorized_keys

   (authorized_keys 라는 이름으로 변경해준 이유는  서버의 sshd.conf 에 

    AuthorizedKeysFile 항목에서 사용할 키파일의 파일명을 지정해놨기 때문입니다.)

      

       서버에서 작업한 화면

 

4. 서버에서 sshd.conf 파일을 수정해줍니다.

 - vi /etc/ssh/sshd.conf

 - sshd.conf 파일안에 AuthorizedKeysFile 항목이 주석처리가 되어있으면 주석해제를 해주고 위에서 별도의 이름으로 키파일을

    변경하였다면 임의로 지정한 파일명으로 변경해주면 됩니다.

   (예 - AuthorizedKeysFile      .ssh/test_keys)

 - sshd.conf 수정 후 sshd 서비스를 재시작 합니다.    service sshd restart   또는  /etc/init.d/sshd restart

    

 

5. 이제 마지막으로 클라이언트에서 서버로 암호없이 접속이 되는지 확인합니다.

 - ssh 접속할계정@접속할서버IP(또는 도메인)

 

※ 설정상의 문제가 없다면 오류 없이 접속이 잘 됩니다.

    다만, .ssh 폴더를 ssh-keygen 으로 생성한게 아니라 단순 mkdir 로 생성한경우 .ssh 폴더의 퍼미션을 rwx------ 로

    변경해줘야 합니다. 또한 authorized_keys 파일의 경우 rw-r--r-- 으로 해야됩니다.

    그 외에도 접속이 안될경우 /var/log/secure 나 /var/log/message 를 참고하면 원인을 파악하여 문제해결이 가능합니다.

 

 

 

Posted by 소울하트
시스템/Linux2012. 7. 11. 17:34

[ 리눅스 명령어 - ac ]

 

안녕하세요. 오늘은 리눅스 명령어 ac 에 대해서 작성하고자 합니다.

 

ac 명령어는 해당 유저가 접속한 시간을 확인하는 명령어 입니다.

기타 옵션을 사용하면 추가적인 정보까지 확인할 수 있습니다.

 

우선 사용법 입니다.

 

ac  [옵션] [계정명 또는 옵션에 관련된 텍스트값]

 

옵션 :

 

[ -d | --daily-totals ] [ -y | --print-year ]
[ -p | --individual-totals ] [ people ]
[ -f | --file filename ] [ -a | --all-days ]
[ --complain ] [ --reboots ] [ --supplants ]
[ --timewarps ] [ --compatibility ]
[ --tw-leniency num ] [ --tw-suspicious num ]
[ -z | --print-zeros ] [ --debug ]
[ -V | --version ] [ -h | --help ]

 

이러한 옵션들이 있습니다.

옵션에 대해서 간단히(?) 설명을 해보겠습니다.

 

-d,  --daily-totals

 : 접속한 시간의 총 합계를 일단위로 표시합니다.

   [옵션만 입력시 모든 계정에 대하여 출력, User 입력시 해당 User 에 대해서만 출력합니다.]

-p, --individual-totals

 : 지금까지 접속한 각 사용자의 시간 합계를 표시합니다.

   [옵션만 입력시 모든 계정에 대하여 출력, User 입력시 해당 User 에 대해서만 출력합니다.]

-f , --file filename

 : 옵션 후 파일을 지정하면 해당 파일의 내용을 읽어들여 총 접속시간을 출력합니다.

  [ 예를 들자면 /var/log/wtmp 파일을 읽어 들이면 총 접속 시간이 출력됩니다.

    -f /var/log/wtmp User

  위 명령은 해당 유저의 접속정보가 wtmp 파일에 기록이 되므로 해당 User 의 접속시간이 출력됩니다.

   /var/log/secure 파일과 같이 시간이 기록되는 파일의 경우 총 시간을 ac -f 명령어로 확인할 수 있습니다. ]

--complain

 : wtmp 파일에 문제가 있는 경우 해당 오류를 출력합니다.

--reboots

 :

--supplants

 :

--timewarps

 :

--compatibility

 :

--a, --all-days

 : 옵션 뒤 user 를 입력하면 해당 유저의 총 접속시간을 출력, 옵션만 입력하면 전체 user 의 접속시간 출력

--tw-leniency num

 :

--tw-suspicious num

 : 

-y, --print-year

 :

-z, --print-zeros

 :

--debug

 :

-V, --version

 : ac 명령어의 버전 확인

-h, --help

 : 도움말 표시.

 

우선 확실시 되는 옵션만 테스트 후 작성하였습니다..

(나머지도 테스트를 해봐야 하는데.. 정확하지 않다고 생각되는 내용은 기록하지 않았습니다. 혹시라도 정보가 있으시면

 공유 좀 해주시면 도움이 되겠습니다. ㅜㅜ)

 

이상입니다.

 

 

Posted by 소울하트
시스템/Linux2012. 7. 5. 17:20

[ 리눅스 명령어 - ab ]

 

오늘은 리눅스 명령어 ab 에 대하여 작성하고자 합니다.

 

우선 ab 명령어는 Apache HTTP server benchmarking tool 의 약자로 Apache 서버의 응답속도를 측정하는

벤치마킹 툴 입니다.

 

우선 사용법은.. 항상 URL 뒤에는 / 로 끝나야합니다.

 

 ab  [ 옵션 ]   [http://]hostname[:port]/path

 

사용에 관하여 여러가지 옵션들이 있습니다.

 

 -A auth-username:password

   : 웹페이지에서 인증(apache 인증 등)을 걸어놓은경우 유저네임과 패스워드를 입력하는 옵션입니다.(구분은 콜론(:))

-c concurrency

   : 동시에 다중 세션을 요청하는 수 입니다. (아무래도 여러번시도하게 되니 신뢰성이 높습니다.)

 -C cookie-name=value

   : 쿠키와 함께 벤치마킹을 가능하게 하는 옵션입니다.

 -d

   :  

 -e csv-file

  :

 -g gnuplot-file

  :
 -h

  :  사용정보를 표시합니다.

 -H custom-header

  : 일반적으로 유용한 형태의 헤더정보를 추가하여 테스트 합니다. 필드구분은 콜론(:)입니다.

    (예: "Accept-Encoding: zip/zop;8bit" )

 -i

  :  

 -k 

  : Keepalive를 활성화하여 테스트 합니다.

 -n requests

  : 몇번의 요청을 할건지 정하는 옵션입니다.
 -p POST-file

  : POST 할 파일을 지정하여 테스트 합니다.
 -P proxy-auth-username:password

  : 프록시 방식의 인증모드 정보를 입력하여 테스트 합니다. (구분자 콜론(:))

 -q

  : 150 이상의 요청을 수행할 때에 진행사항을 표시합니다. 10% 또는 100 요청 등등으로 표시합니다.

 -s

  : https 로 요청을 처리합니다.

 -S

  :

 -t timelimit

  : 허용되는 최대시간을 초단위로 설정하는 옵션입니다. (최대값 : 5000초)

 -T content-type

  : POST 하는 데이터에 Content-type Header 를 사용합니다.

 -v verbosity

  : 테스트 결과 내에서 헤드 정보를 포함하도록 하는 옵션입니다. 좀 더 자세한 결과를 확인할 수 있습니다.
 -V 

  : ab 의 버전정보를 표시합니다.

 -w 

  : 응답속도를 HTML 포맷으로 출력합니다.

 -x <table>-attributes

  : <table> 속성에 대하여 사용할 문자열입니다. (예: <table 이곳에 들어갈 속성값>

 -X proxy[:port]

  : 프록시 방식으로 요청할 경우 사용되는 옵션입니다.

 -y <tr>-attributes

  : <tr> 속성에 대하여 사용할 문자열입니다. 즉, <tr 이곳에 들어갈 속성값>

 -z <td>-attributes

  : <td> 속성에 대하여 사용할 문자열입니다.  

 

정리해보자면 이렇습니다. 몇가지 빠진 옵션은 내용이 이해가 되질 않아.. 테스트 후 기록해야할듯 합니다 .ㅜ.ㅜ

 

아래는 결과값 입니다.

 

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.mindpower.kr (be patient).....done


Server Software:        Apache                                                          : 웹서버의 종류 입니다.  
Server Hostname:        www.mindpower.kr                                        : 테스트한 도메인 이름입니다.
Server Port:            80                                                                     : 웹서비스를 하는 Port 번호입니다.

Document Path:          /
Document Length:        185526 bytes                                                 : 요청된 웹페이지의 용량입니다.

Concurrency Level:      1                                                                 : 동시에 요청된 Client 수 입니다.
Time taken for tests:   0.523612 seconds                                            : 측정에 걸린 시간입니다.
Complete requests:      1                                                                 : 요청에 대한 성공 수 입니다.
Failed requests:        0                                                                    : 실패한 요청수 입니다.
Write errors:           0
Total transferred:      185908 bytes                                            : 전체 전송용량입니다.(차이가 있을수 있습니다.)
HTML transferred:       185526 bytes                                          : html 전송용량 입니다.
Requests per second:    1.91 [#/sec] (mean)                           : 초당 요청된 수 입니다.
Time per request:       523.612 [ms] (mean)                               : 요청당 걸린 시간 입니다.
Time per request:       523.612 [ms] (mean, across all concurrent requests)
Transfer rate:          345.68 [Kbytes/sec] received                     : 전송 속도 입니다.

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        3    3   0.0      3       3
Processing:   520  520   0.0    520     520
Waiting:      487  487   0.0    487     487
Total:        523  523   0.0    523     523

 

이상입니다.  질문 사항이 있으시면 댓글을 달아주세요.^^;

Posted by 소울하트