최근 몇몇 프로젝트를 진행하면서, (실질적으로는) 혼자하는 프로젝트이기에, 소스 버전 관리에 대해서 별다른 생각을 하지 않고 지냈었다.

하지만, 프로젝트를 진행하면서 항상 느끼지만, '마음이 급해질 수록' 그 기능이 빛을 발하는 버전 관리툴.

늦었지만, 사후 약방문이지만, 오래간만에 subversion을 서버에 설치하였다. (아, 리눅스에서 설치하는 건 처음이다. 항상 윈도에서만 설치해서...)
사실, 정말 좋은 포스팅을 구글링중에 발견, 간지러운 부분들을 긁어가면서 빠르게 작업할 수 있었다.

간단히 소개를 하면, (다들 알다시피) 안녕 리눅스는 패키지 시스템이라 별다른 무리없이

pkgadd subversion <- 서브 버전 클라이언트 설치
pkgadd subversion-server <- 서브 버전 서버 설치 ( 안녕리눅스 공홈 qna를 보면, 서버과 클라이언트를 분리했다고 한다.)

두 명령어를 root 권한에서 입력해주면 된다.

그 다음, 레포지토리로 사용할 기본 폴더를 만들어주고,

mkdir /home/svn

그 안에 필요한 레포지토리를 생성하고,

cd /home/svn
svnadmin create --fs-type fsfs sample
(sample이라는 레포지 토리를 svn 안에서 생성함.)

레포지토리 내의 config 파일을 수정한다.

vi /home/svn/conf/svnserve.conf

수정 후, passwd 에 계정과 비번을 추가한다.

vi /home/svn/conf/passwd

그리고, 서버 구동.


#svnserve -d -r /home/svn

svn은 3690 포트를 사용하므로, 외부에서 접근이 안되면 oops-firewall 의 TCP_ALLOWPORT에 3690을 추가한다.

이정도면 된다. :)

자세한 포스팅은 원글 링크 참조.

워낙 원글이 잘 되어 있어서... (이 글의 요약본은 혹시나 몰라서!)

소스 관리부터 시작!

-코나-
Posted by 코나
정말 오래간만의 좌충우돌 서버관리.

s-ftp를 이용한 업로드, 테스팅 작업에 지친(?) 나는 결국 맥과 리눅스 서버를 samba로 연결하기로 결정한다. :)

먼저, samba(이하 삼바) 패키지를 확인해 보았다.

pkginfo -v -l samba

패키지 존재를 확인, 즉시 패키지 추가 작업을 하였다.

pkgadd samba

의존성 패키지 설치 후, 설정으로~

삼바 설정은 /etc/samba/smb.conf 파일에서 한다.

편의를 위해, 필요한 디렉토리만 연결할 생각이었기에...

[porfin]
comment = PorFin Public html
path = /경로
valid users = 사용자아이디
read only = No


간단히 설명을 하면,
첫줄 대 괄호는 윈도에서 볼 수 있는 공유 폴더명,
코멘트는 말그대로 코멘트,
패스는 공유할 경로,
벨리드 유저는 접근할 사용자 아이디
읽기 전용 여부. :)

이 작업이후 바로 되는게 아니라... 계정을 추가해야 한다.
(삼바 3 버전을 기준으로 설명.)

문서에 보면 smbuseradd 명령어와 smbpasswd를 이용하라고 하였는데,
문제는 smbuseradd 가 없다는 것.

바뀌었단다.

smbuseradd -> smbpasswd -a 사용자아이디

자연스럽게 사용자 아이디 및 비번 정의 이후, 서비스 재시작.

service smb restart


맥에서의 접근은, Finder 선택 후, command + K

smb://아이피

그 이후 로그인 작업을 진행하면 된다! :)

고고씽!

-코나-
Posted by 코나
네트워크 사용량을 알기 위해서 개발 서버에 nTOP  서비스를 설치하였다.

안녕 리눅스이기에, 당연히 기본 명령은

>> pkgadd -v ntop

재미있는 점은 ntop 이 기존에 init.d 에 포함되도록 패키지 설치가 이루어졌지만,

httpd Service 가 동작하지 않는 경우가 발생하여 수동으로 돌려줘야 한다. :)

암튼, 일단 패키지는 설치가 되었고...

nTop의 디렉토리 구조를 잠시 이야기하면,

첫 설치 이후, 앞으로 수집될 사용량 저장 공간 및 admin 비밀번호 생성 위치는

/usr/share/ntop

이 된다.
- etc/ntop/ntop.conf 참고

자, 이제 admin 비밀번호를 생성해야 한다.

>>ntop -P /usr/share/ntop -A

 비밀번호 입력해 준뒤,

/etc/ntop/ntop.conf  파일을 수정해준다. 입맛에 맛도록 - 사실 거의 수정할거 없어보임

수정이후, 첫기동.

>>ntop @/etc/ntop/ntop.conf &

&붙여야 백그라운드로 돌아가므로. :)

그럼 확인은?

http://주소:3000 <- 기본설정에서 웹포트는 3000 이므로.

-코나-

ps1. 한가지 마음에 걸리는 -m 옵션, 즉 내부 네트워크 선언을 좀 깔끔하게 못하고 아예 설정을 안했다는 거..
ps2. 아직 사이트를 사용하지 않는 관계로, 사실 수집에 대한 별의미가 없다.
ps3. 근데, oops firewall 에서 3000 포트 열어야 하지 않을까? :( - 당근 열어야 한다.


Posted by 코나
주소를 샀고, 이제는 가물가물한 네트워크 구성도에 대해서 끙끙하기를 이틀,

결국 대략 방향을 잡긴 잡았다.

현재, 안녕 리눅스에 bind 를 이용한 dns 세팅중...

레퍼런스를 남겨놓고, 내일 마무리를.. 쩝쩝..

1. 제 1 차 레퍼-.-런스,.
http://kin.naver.com/db/detail.php?d1id=1&dir_id=10202&eid=ae+naDAxcNGjSytmLVtjjpwXL5CFCHZD


2. 제 2 차 레퍼런스.. 뷁;

http://kin.naver.com/db/detail.php?d1id=1&dir_id=10202&eid=23K3a+X7PA3Deov2ySC/hZt7Mh5x5Tbr

3. 원인 파악 레퍼런스... 흑흑흑..

http://kin.naver.com/db/detail.php?d1id=1&dir_id=10202&eid=tS1E1hR8cV4ZijA38nML2rKiyLAQHPHR&qb=vsiz57iutKq9uiBiaW5kILyzwaQ=

결론은, 호스트설정을 통해서 미리 세팅해둔 dns 서버에 연동을 해야 한다는 거..

일단은 여기까지.

자세한 세팅 내용은 서버 세팅이 완료된 이후에 컨티뉴...

-코나-

덧. 덤으로 업데이트 사건;;도 컨티뉴... =.=;;

Posted by 코나
최근들어서 CentOS 기반의 서버 하나를 작업하게 되었다.

임대형 서버인데, 그럭저럭...

일단, 서비스 업체에서 세팅해준 상태로, ssh 를 이용 로그인 성공.

공부한대로 내 계정을 추가 했다. ^^v

자, 이젠 내 계정으로 접속해서 작업을....

어 근데, 안되네.. -.-;;

>> 요녀석을 반대로 이용해 본다. <<

원본 링크 : http://cafe.naver.com/ssyangcal.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=2262

openssh가 설치되어 있는 환경에서 일반 사용자의 SSH접속 막기

일반적으로 사용자들은 CUI기반의 인터페이스 사용을 기피한다.
따라서 이러한 불필요로 인해서 사용하지 않는 SSH접속을 막기위해서
openssh는 우수한 키워드를 제공하고 있다.

# man sshd

  참고키워드 : AllowGroups, AllowUsers, DenyGroups, DenyUsers

  ! 기본적으로 openssh는 모든 사용자의 ssh접속을 허용한다.

  키워드
      AllowGroups : 해당 그룹에 속한 사용자만 접속할 수 있다.
      AllowUsers   : 열거한 사용자만 접속할 수 있다.
      DenyGroups : 전체 사용자의 접속을 허용하고 명시된 그룹은 접속에서 제외된다.
      DenyUsers   : 전체 사용자의 접속을 허용하고 명시된 유저의 접속은 제외된다.
      해당 그룹, 유저는 space로 구분한다.

  적용
      /etc/ssh/sshd_config 파일에 키워드를 명시하고 그룹 또는 유저명을 기입한다.

     예) 시스템관리용으로 생성한 maintain, master 이라는 유저만 접속을 허용
             --->  /etc/ssh/sshd_config 파일에
                     AllowUsers      maintain master    (space bar로 구분)

     예) 모든 유저의 접속을 허락하고 windog 라는 유저의 접속을 막는다.
             --->  /etc/ssh/sshd_config 파일에
                     DenyUsers      windog

    이상을 적용하기 위해서는 sshd를 재실행해야 한다.

# /etc/init.d/sshd restart

>> <<

역시, 설정을 확인해보니, root 권한에 가까운 사람 하나에게만 허용이 되어있었다.

즉시 내 계정-.-을 추가. ssh 재시작. 오오 된다!

근데 이번엔 su - 가 안먹히네.. 루트가 필요하건만.. ToT


역시 인터넷의 힘을 빌려!...


>>  [Gentoo] SU 명령이 안될 때(permission denied)  리눅스 관련(일반) <<


원본링크 : http://blog.naver.com/keep2smile/80042291026

★ 원인

    1. /etc/group에 wheel 부분에 현재 su 명령어를 수행하려고 하는 계정이 등록되어있지 않아서 이런 현상이 나타난다.

★ 해결

    1. vi 편집기로 /etc/group을 연다.

            root::0:root
            bin::1:root,bin,daemon
            daemon::2:root,bin,daemon           
            sys::3:root,bin,adm 
                     ....

            wheel::10:root,gentoo

                     ....
            keep2smile:x:1000:

    2. 위 wheel 부분에 wheel::10:root,gentoo,”추가 할 사용자계정” 작성 하면 된다.

            root::0:root
            bin::1:root,bin,daemon
            daemon::2:root,bin,daemon
            sys::3:root,bin,adm
                     ....

            wheel::10:root,gentoo,keep2smile  

                     ....
            keep2smile:x:1000:

    3. 다 수정 하였으면 저장하고 닫자.(:wq)

※ group 수정은 root 계정으로 수정하여야 한다. 혹시나 하는 노파심에서.;;;

 >> 라고 한다.. <<

아, 수정 이후 추가된 계정은 재로그인 해야 한다. 그러면 된다. ^^

이젠 계정별로 아파치를 사용할 수 있게 해줘야 한다.. =3=3=3

To be continued..

-코나-


    



Posted by 코나
간만에 올리는 관리 이야기.

그동안 좀 소홀하긴 했는데...

어쨌던, 오늘은 mysql.

일단, 신규 디비를 추가해야 하기에, 먼저 로긴..

0. 기본 작업

root 로 들어간 뒤,

mysql -u root -p

1. 신규 db 생성.

create database db명;

2. 계정 추가.
 - 대세;인 grant 를 이용해보면..

GRANT ALL PRIVILEGES ON DB명.* TO 유저id@localhost IDENTIFIED BY 'mysql비번' WITH GRANT OPTION;

이 된다. :)

확인은 당근...

3. 확인하기

use mysql;  <- mysql을 사용하게 한 뒤,

select * from user;

하면 입력된 계정이 나온다. :) (당연한건가..)

옵션에서 보이듯, 현재 localhost 로만 접속이 허용되도록 된 상태이다. :)

......

설정을 끝낸 뒤, (본 서버에 하기 전에 항상 가상 서버에 먼저 작업한다..)

myphpadmin 을 적용해보았다.

그런데, 약간의 문제 발생.

원인 분석결과, 현재 웹서버 파일 인식 순서가

<DirectoryIndex>
index.php index.html index.htm index.jsp ... 로 되어있던 것.
</DirectoryIndex>

잽싸게, index.php 를 index.jsp 앞으로 이동, httpd restart :)

결과는 성공. :D

이제 제대로된 사이트 주소만 있으면 정말 Launch이구나...

일단, 개발 고고씽!!

-코나-

Posted by 코나

지난 목요일 오후 5시 30분.

사무실에서 서둘러 출발, 역삼동의 엔터프라이즈 네트웍스 로 차를 몰았다.
......

15일 오후에 걸려온 전화 한통.

다음주로 예정되어 있던 서버 작업 일정이 목요일로 바뀌었다는 진우형의 목소리. :)

반가운 마음에 아침 출근때 서버, 랜선등을 챙긴뒤, 일단 회사로.

회사에서 나름 잽싸게(?) 일을 처리한 뒤, 부장님께 양해를 구하고 평소보다

조금 일찍 (사실 계약서 상에는 정시퇴근이다. -.-v) 회사를 나왔다.

맵상에서는 30분이면 도착할 역삼동.

하지만, 예상을 꺠고 무려 한시간 반이나 걸렸으니... -.-;;

......

도착한 IDC 센터에서 형을 만났다.

다행스럽게도(?) 아직 형쪽의 작업이 끝나지 않았단다.. ^^;;

HIT IDC 센터와는 규모면에서 적잖은 차이가 있었지만, 강남 한복판에 멋지게 만들어놓은

IDC 센터.

HIT IDC 센터와, KCDC 전산실을 제외하고는 처음 가보는 곳이었기에 신기한 마음 만발. :)

......

이런 저런 작업 끝에 센터에 드디어 1U Linux Server 입주 성공!

미리 시뮬레이션(?) 했던대로, 작업을 진행하였고, 한번 IP 충돌이 있었던 점을 제외하고는

한큐에 술술 풀렸다. :)

IDC 센터에서 나온 시간은 저녁 9시가 조금 넘은 때,

마침 아직 퇴근을 안한 현철이와 집에 있던 선우를 꼬득여서 10시쯤 한강에 집결. :)

......

서버 정식 런칭 전야제(?)를 여의도쪽에서 재밌게 보낸 뒤, 집으로 돌아온 시각은 새벽 2시.

참새가 방앗간을 지나칠 수 있나,

웹브라우저를 켜서 즉시 IP 접속 시도. :)

......

어, 근데 이게 뭐야... 왜 안뜨는거지? 허걱.. -.-;;;;

긴장감에 SSH2 로 연결을 시도.

어라, 되네. -.-;;

왜 안될까.. 흠... 라고 고민을 하다가...

잠들었다. -.-;;;;;;;

.......

그리고 오늘,

좀전에 혹시나.. 해서 살펴보니.. 역시나... -.-;;

혹시나 했던 방화벽 관련 문서를 읽어보면서 문제점을 알게 되었다.

바보.. 세팅을 잘 했어야지.. -.-;;;;


............ 서론(?) 끝, 본론 시작...........


Oops-Firewall 설치 관련.

처음 AnnyungLinux 가 설치되면, 자동으로 Oops-Firewall 이 설치된다.

Oops-Firewall 은 초기 설치 이후, 22번 - SSH 를 제외한 모든 포트를 막게 되는데,

이번에는 웹 서비스를 위한 80번 포트를 열어주는 작업이 필요하다.

간단히 적으면 TCP configuration 에서, TCP_ALLOWPORT 에  웹서비스에 필요한 80번

포트를 추가하는 작업이 필요하다는 거.. ^^;;

작업을 끝낸 뒤, 서비스 재시작.

service oops-firewall restart

재시작과 함께, 브라우저 접속 시도.

반가운 메시지가 화면을 채운다. :)

Apache test page on AnNyung LInux

이제 남은 건, 아직 성공 못한 nTop 과, 계정별 virtual host  설정.

고고씽! :)

-코나-

덧 : 사이트는 조만간 공개합니다. ;)

Posted by 코나
자, 드디어 계정도 만들고, ssh2 로 연결도 되게 되었다.

- 이제 할 일은, 커널 업데이트. (난 최신 커널이 좋더라.. :) )

안녕리눅스의 경우 커널 업데이트를 비롯한 각종 서비스들이, 패키지 시스템을 통해서 제공이 된다.

즉, 자체 패키지 명령어 만으로 손쉽게 설치, 제거, 버전업이 가능하다는 건데..

커널 업데이트 역시 그렇게 어렵지 않다.

커널 업데이트 메뉴얼 보기

메뉴얼을 보면 알겠지만, pkgkernel 명령을 이용해서, 인터넷을 통해서 파일을 받아와 작업하게 된다.


- 그런데, ip 세팅을 바꾸고 싶다면?

 커널 업데이트가 이루어진 다음, 필요한 것이 무엇인가 생각해보니, 당장 리눅스의 ip 주소를 바꿀줄
모른다는 점-.-이었다.

하지만, 명령어가 있다는 거.. :)

setup

콘솔모드에서 루트 권한 (su - )을 얻은 다음, setup 을 입력하면 기본적인 설정을 할 수 있다.

항목중 Network Configuration 을 선택하면, IP 등의 네트워크 설정을 쉽게 손볼 수 있다. :)


- 자.. 드디어 APM 셋업이다.

 알다시피 APM 은 Apache, Php, Mysql 콤비네이션으로, 무상으로 강력한 웹서버를 구축할 수 있는
패키지 이다.

안녕 서버에서는 이 서비스들을 위에서 언급했던대로 '서비스 업데이트' 형태로 설치를 할 수 있다.

APM 설치방법 보기

패키지 설치 이후, 필요한 작업은 역시 apache 설정.

- Apache Virtual Host 설정

특히, Virtual Host 를 세팅하여야 하는 상황이어서 apche 를 설정하여야 했다.
(물론 쉽다. :) )

Apache 의 Virtual Host 설정 방법 보기

위 메뉴얼에서 조금 수정되야 할 내용은, Annyung에 설치된 아파치 (2.xx) 의 경우,

Virtual Host 설정파일이 httpd.conf 파일이 아닌,

/etc/httpd/conf/conf.d/virtual.conf

파일에 따로 되어있다는 점이다.
(위 메뉴얼에서는 httpd.conf 의 제 3절에 있다고 나와있음.)

오늘의 추가 팁 : 현재 경로 보기

pwd

비밀번호가 아닌듯.. - 음 오히려 외우기 쉬운가.. :)

- APM 설치 이후 주의 사항.

설명서 본문에도 나오지만, 사용자 계정 디렉토리(이경우 /home/계정디렉토리)에 권한을 최소한

701 은 되도록 설정하여야 한다는 점이다.

 : userDir : ~user 요청을 받았을 때 사용자의 홈 디렉토리 뒤에 추가할 디렉토리 이름.
 엔드 유저의 계정의 public_html 디렉토리는 웹 서버의 userid 로 접근이 가능해야만 한다.
이것은 ~userid 의 퍼미션이 701은 되어야 한다는 의미이다.
~userid/public_html 과 문서들은 최소한 모든 사용자에게 '읽기 권한'은 있어야 한다
그렇지 않으면 403 Forbidden 메시지를 만나게 될 것이다.

http://httpd.apache.org/docs/misc/FAQ.html#forbidden 을 참고하라.

( from /etc/httpd/httpd.conf 에서 발췌)


여기까지 작업이 이루어졌다면, 기본적인 작업은 거의 다 끝난 셈이다.

(만약 기본 루틴 세팅을 바꾸지 않았다면,)

 기본 홈페이지는 ip를 입력하거나 하면 접근이 가능하고, 각 사용자별 홈페이지는

http://주소/~아이디  

라고 주소창에 입력하면  사용자 계정 디렉토리 내의 public_html 디렉토리 안의 내용이

잘 해석되서(?) 브라우저에 뜨게 될 것이다. :)

만약 제대로 안된다면? - 바로 세팅부터 확인해보아야 한다.

......

자 이제 반정도 달려온 것 같다.

앞으로 남은 작업은 ssh2 File Transfer 혹은 FTP 를 다른 포트를 통해서 오픈하는 것과,

실제 IDC 센터로 입주하는 일.

입주는 다음주로 예정되어 있다. (Thanks to 진우형 :) )

물론 그 전에 도메인도 해결해야 하고 그러지만.. 그런건 천천히. ^^;

자, 삽질은 계속되어야 한다, 쭈욱!

-코나-


ps. vi 에서 검색은?
      답 : 위에서 아래로 검색은 / 검색어 를 이용, 아래서 위는 ? 검색어 를 이용.

Posted by 코나