OS/LINUX2009. 3. 13. 14:49
반응형

Linux 성능 조정

서버의 성능을 향상시키기 위해 Linux 시스템을 사용자 정의해야 할 수 있습니다. 구성을 조정하는 데 필요한 팁이 아래에 나와 있습니다. 이러한 시스템이 변경되어 다음 제안을 사용하지 못하게 될 수 있으며 결과가 다를 수 있습니다.

성능 향상을 위해 변경사항을 작성하기 전에 현재 성능을 측정했는지 확인하십시오. 트랜잭션 비율, 응답 시간, 최대 동시 사용자 수 또는 몇몇 기타 성능 기준에 관심이 있는지 여부에 관계없이 변경사항 작성 전후에 성능 조정 매개변수 변경으로 인해 차이가 발생했는지 여부를 알 수 있을 정도로 정확하게 측정해야 합니다.

timeout_timewait 매개변수

timeout_timewait 값은 TCP/IP가 닫힌 연결을 해제하여 자원을 다시 사용하기 전에 경과되어야 하는 시간을 결정합니다. 닫기와 해제 사이의 이 간격은 TIME_WAIT 상태 또는 최대 세그먼트 지속 시간의 두배(2MSL) 상태로 알려져 있습니다. 이 시간 동안 클라이언트 및 서버로의 연결을 다시 여는 것이 새 연결을 설정하는 것보다 비용이 적게 듭니다. 이 항목의 값을 줄이면 TCP/IP는 닫힌 연결을 더욱 빨리 해제할 수 있으며 새 연결에 더 많은 자원을 제공합니다. TIME_WAIT 상태에 있는 여러 연결로 인해 발생한 낮은 처리량 때문에 실행 중인 응용프로그램에 빠른 해제, 새 연결 작성 또는 조정이 필요할 경우 이 매개변수를 조정하십시오.

기본값은 240초(4분)입니다.

최소 권장 값은 30초입니다. 다음 프로시저를 사용하여 값을 보거나 사용자 정의하십시오.

echo X > /proc/sys/net/ipv4/tcp_fin_timeout

여기서 X는 필요한 시간(초)으로 바뀝니다.

연결 백로그

수신 연결 요청의 버스트를 승인하기 위해 연결 백로그 값을 늘려야 할 수 있습니다. 동시에 많은 연결 요청이 수신될 경우 더 큰 값을 사용하면 지원될 수 있는 보류 연결 수가 증가되어 연결 장애를 줄일 수 있습니다.

다음 프로시저를 사용하여 값을 보거나 사용자 정의하십시오.

echo X > /proc/sys/net/core/netdev_max_backlog
echo X > /proc/sys/net/core/somaxconn

여기서 X는 버스트에서 예상되는 연결 요청 수보다 큽니다.

tcp_keepalive_time

tcp_keepalive_time 값은 TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도를 제어합니다. 이 시간 동안 활동이 없었을 경우 활성화 상태 지속 전송이 제출됩니다. 네트워크가 원래 상태를 유지하며 상대가 활성 상태일 경우 상대가 응답합니다. 손실된 상대에 대해 민감하게 되려는 경우(즉, 상대가 손실되었음을 더 빨리 인식해야할 경우) 이 값을 줄여 보십시오. 오랜 기간 동안 비활성 상태를 유지하는 연결은 공통이고 손실된 상대는 공통이 아닐 경우 이 값을 늘려 오버헤드를 줄여도 됩니다.

7,200초(2시간) 동안 대기 연결이 비활성 상태일 경우 Linux에서는 활성화 상태 지속 메시지를 전송하는 것이 기본값입니다. 종종 값에 1,800초를 선택하여 반쯤 닫힌 연결을 30분마다 감지합니다.

다음 프로시저를 사용하여 값을 보거나 사용자 정의하십시오.

echo X > /proc/sys/net/ipv4/tcp_keepalive_time

여기서 X는 필요한 시간(초)으로 바뀝니다.

tcp_keepalive_intvl 값

tcp_keepalive_intvl 값은 상대로부터 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도를 결정합니다. 응답이 없는 연속적인 활성화 상태 지속 전송 수가 tcp_keepalive_probes의 값을 초과할 경우 연결이 중단됩니다. 응답 시간이 길 것으로 예상될 경우 이 값을 늘려 오버헤드를 줄여야 할 수 있습니다. 상대가 손실되었는지 확인하는 데 소비되는 시간을 줄여야 할 경우 이 값 또는 tcp_keepalive_probes 값을 줄여 보십시오.

Linux에서는 활성화 상태 지속 메시지를 재전송하기 전에 75초 동안 활성화 상태 지속 응답을 대기하는 것이 기본값입니다. 종종 값에 15초를 선택하여 손실된 상대를 더 빨리 감지합니다.

다음 프로시저를 사용하여 값을 보거나 사용자 정의하십시오.

echo X > /proc/sys/net/ipv4/tcp_keepalive_intvl

여기서 X는 필요한 시간(초)으로 바뀝니다.

tcp_keepalive_probes 값

tcp_keepalive_probes 값은 TCP/IP가 기존 연결에 대한 수신확인되지 않은 활성화 상태 지속 메시지를 재전송하는 횟수를 결정합니다. 네트워크 품질이 낮을 경우 이 값을 늘려 효과적인 통신을 유지해야 할 수 있습니다. 네트워크 품질이 높을 경우 이 값을 줄여 상대가 손실되었는지 확인하는 데 걸리는 시간을 줄여도 됩니다.

Linux에서는 연결 중단을 결정하기 전에 9개의 수신확인되지 않은 활성화 상태 지속 메시지를 전송하는 것이 기본값입니다. 종종 값에 5를 선택하여 손실된 상대를 더 빨리 감지합니다.

다음 프로시저를 사용하여 값을 보거나 사용자 정의하십시오.

echo X > /proc/sys/net/ipv4/tcp_keepalive_probes

여기서 X는 필요한 수신확인되지 않은 활성화 상태 지속 재전송 수로 바뀝니다.

대용량 페이지 지원

가 상 기억장치를 관리하기 위해 대용량 페이지 지원을 사용하면 JVM(Java Virtual Machine)에서 대용량 힙을 관리하는 CPU 오버헤드를 줄일 수 있습니다. 이 지원을 사용하려면 대용량 페이지를 사용 가능하도록 시스템을 구성하고 가상 시스템을 시작할 때 -Xlp JVM 옵션을 지정해야 합니다.

대용량 페이지 지원을 사용 가능하게 하는 단계는 사용하는 Linux 분배에 따라 다릅니다. 일반적으로 sysctl.conf 파일을 편집하여 다음을 수행합니다.

  • 최대 Java 힙을 보유하는 데 필요한 대용량 페이지의 수 설정
  • 최대 Java 힙을 보유하도록 최대 공유 세그먼트 설정
  • 최대 Java 힙을 보유하도록 공유 메모리 총량 설정

그런 다음 프로그램을 낮은 가상 메모리 주소로 재배치하여 더 큰 힙에 더 많은 주소 공간을 제공하십시오.

대용량 페이지에 대한 지원 구성에 대한 자세한 정보는 Linux 문서를 참조하십시오.

반응형

'OS > LINUX' 카테고리의 다른 글

RedHat Linux Network 설정하기  (0) 2009.10.29
LINUX SWAP파일 추가하기  (0) 2009.09.07
RHEL 4 에 YUM 설치  (0) 2009.02.10
LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
RPM src install  (0) 2008.06.24
Posted by [PineTree]
OS/LINUX2009. 2. 10. 16:06
반응형
1.yum 패키지 설치

다음은 RHEL4에 yum을 설치할때 필요한 패키지들이고, 순서대로 설치하면 된다.
   1. libsqlite-3.2.1-1.i386.rpm
   2. python-elementtree-1.2.6-7.el4.rf.i386.rpm
   3. python-sqlite-0.5.0-1.2.el4.rf.i386.rpm
   4. python-urlgrabber-2.9.6-1.2.el4.rf.noarch.rpm
   5. yum-2.4.2-0.4.el4.rf.noarch.rpm

cd /etc/yum.repos.d/

vi RedHat-Base.repo

[base]
name=RedHat-$releasever - Base
baseurl=http://ftp.daum.net/centos/4.7/os/x86_64/
gpgcheck=1

#released updates
[update]
name=RedHat-$releasever - Updates
baseurl=http://ftp.daum.net/centos/4.7/updates/x86_64/
gpgcheck=1


==================================================
vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=1

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




안될 때

rpm --import http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-4

yum list

반응형

'OS > LINUX' 카테고리의 다른 글

LINUX SWAP파일 추가하기  (0) 2009.09.07
Linux 성능 조정 - tcp  (0) 2009.03.13
LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
RPM src install  (0) 2008.06.24
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
Posted by [PineTree]
OS/LINUX2008. 11. 17. 01:03
반응형
1. 해커가 침투했다면 부팅관련 init를 변경했을 위험이 있다.
    만약 변경되었다면 부팅이 되지 않는다.

/etc/rc.d 에 보면 init가 있다.

서버 전원넣으면 바이오스에서 하드웨어 감지하고, 마스터 하드로 점핑해주죠.
마스터 하드(부팅관련)점핑되면 lilo에서 해당 커널을 올려줘요
그러면 해당 커널로 로딩되면서 /etc/init.d/에 있는 런레벨 스크립트를 실행하죠
만약 init가 엉망이면 부팅 실패되면 컴퓨터 멈춰버리죠

이럴 경우는 복원모드로 들어가서 작업해줘야 되죠

                복원모드는 linux rescue

** 참고

파티션 구성하는 부분에서 중요데이터가 있는 파티션을 제외한 나머지는 새로 잡아줘서 재설치해주면 되요.
그래서 리눅스 셋팅시 파티션 계획이 아주 중요하죠.(이것도 내공은 약하지만 정리해서 공개할께요)
/database, /log, /home 등은 독립파티션으로~
위의 중요파티션을 제외하고 나머지는 새로 파티션 잡고 설치한 후 취약한 부분 패치해주고 이런식이죠

2. 변경되어있는 명령어 있나 확인

lsattr /bin/* | more 해서 변경되어있는 명령어 있나 확인

lsattr /sbin/* | more

만약에 변경되어 있다면,
rpm -qf 변경된명령어  하면 변경된명령어가 포함된 패키지명이 나온다

이것을 강제로 재설치해주면 되는데, 이것이 해킹당한 명령어 복원해주는 기술이다.

예를들어서 /bin/su 명령어가 변경되었을 경우,

[root@ecweb-7 tmp]# rpm -qf /bin/su 해보면

coreutils-4.5.3-19.0.2  패키지명이 출력되죠

이것을 재설치해주면 된다.

참고사이트 http://www.blocus-zone.com/modules/news/print.php?storyid=639


3. 백도어 찾기

find /dev -type f 해서

MAKEDEV 요것만 나오면 정상이고, 다른거 나오면 100% 백도어임


4. 프로세서 검색

netstat -tnapu |grep LISTEN 해서 이상한 프로세서 띄워져 있으면,

프로세스 PID 값을 복사하여 커멘드라인에서 ls -al /proc/pic값 주면
스크립트 돌아가고 있는 디렉토리 위치 보여짐

여기에서 rm -rf 명령을 이용하여 삭제

** PID값이란?
프로세스가 시작될 때 커널에서 부여해주는 값으로, 참고로 PID값은 모두 다르다.

예를들어서,

ps -aux 했을 때 아래의 프로세스가 악성일 경우

nobody  13338  0.3  0.8 17084 9272 ?        S    13:06  1:13 /usr/local/apache/bin/httpd

ls -al /proc/13338 해보면

lrwxrwxrwx    1 root    1001            0  9월 17 18:17 exe -> /usr/local/apache/bin/httpd
식으로 경로추적되요

대부분 nobody 사용자로 불법접근해서 루트 따먹기 위해 악성코드 돌리는데

exe -> 위치가 /var/tmp 혹은 /tmp 이에요

요런건 바로 삭제해줘야죠

이제 어설픈 해커나 크래커들에게 당하고 울지 않기를~~~
부타카케~~ 부타카케~~ 상처받지 않기를~~~

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

find /dev -type f 해서
/dev/.udev.tdb
출력이 되는데요.

이는 백도어가 아니라고 합니다. 참조링크

http://linux-sarang.net/board/?p=read&table=qa&no=211741

http://linuxfromscratch.org/pipermail/lfs-dev/2004-September/049089.html

http://wiki.kldp.org/wiki.php/BooyoLiveCD/RcdotSysinit?action=raw
반응형

'OS > LINUX' 카테고리의 다른 글

Linux 성능 조정 - tcp  (0) 2009.03.13
RHEL 4 에 YUM 설치  (0) 2009.02.10
RPM src install  (0) 2008.06.24
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
linux bonding  (0) 2008.04.19
Posted by [PineTree]
OS/LINUX2008. 6. 24. 03:01
반응형
1. 소스 풀기
]# rpm -Fhv sendmail-8.11.6-23.72.src.rpm
]# cd /usr/src/redhat/SPEC
"sendmail.spec" 화일이 생성.

2. rebuild하기
]# rpmbuild -bb sendmail.spec
서버 환경에 맞게 sendmail이 재 설치됩니다.

3. rpm 화일 생성된 것 확인
]# ls -asl /usr/src/redaht/RPMS/i386
 
4. sendmail 일단 정지
]#  /etc/rc.d/init.d/sendmail stop
  
5. 패키지 업데이트 시작
]#  rpm -Fvh sendmail-8.11.6-23.72.i386.rpm
반응형

'OS > LINUX' 카테고리의 다른 글

RHEL 4 에 YUM 설치  (0) 2009.02.10
LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
Posted by [PineTree]
OS/LINUX2008. 5. 31. 18:46
반응형

The following "rpm" command can be used to distinguish between a 32-bit or 64-bit package:

    # rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep <RPM_name>

For example:

    # rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep glibc-devel

    glibc-devel-2.3.4-2.13 (i386)
반응형

'OS > LINUX' 카테고리의 다른 글

LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
RPM src install  (0) 2008.06.24
linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
Posted by [PineTree]
OS/LINUX2008. 4. 19. 02:16
반응형

channel bonding

 

채널 본딩이란 하나의 노드에 여러개의 network card를 하나의 IP로 묶어서 사용하는 방법을 말한다.

여기에는 두가지의 이점이 있다.

 

1. fault Fault tolerence

여러개 중 하나의 네트워크 카드가 고장이 났을때 나머지 끊어짐이 없이 이용이 가능하다.

 

2, load balance

여러개의 네트워크 카드를 이용하여 로드 밸런싱을 할 수 있다.

 

/etc/sysconfig/network-scripts/ifcfg-bond0 을 만들고 아래에 맞게 작성

DEVICE=bond0
USERCTL=no

ONBOOT=yes

IPADDR=*.*.*.*
BROADCAST=*.*.*.*

NETWORK=*.*.*.*
NETMASK=*.*.*.*

 

/etc/sysconfig/network-scripts/ifcfg-ethX (X는 랜카드 번호를 의미)

DEVICE=ethX
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

BOOTPROTO=none

 

/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=testserver
GATEWAY=11.14.92.1

GATEDEV=bond0            <- 기본 GATEWAY DEVICE를 bond0으로 잡아준다.(만약을 위해 해주자!)

 

모듈올리기

# insmod /lib/modules/'uname -r'/kernel/drivers/net/bonding/bonding.ko miimon=1000 mode=6

혹은

# modprobe bonding miimon=1000 mode=6

 

insmod와 modprobe의 차이는 insmod 같은 경우에는 직접 모듈을 찾아 올려줘야하는 것이고

modprobe는 그와 달리 알아서(의존성이 걸린 모듈까지 전부) 찾아서 올려주는  명령어다.

 

확인

# lsmod

Module                  Size  Used by

bonding                65896  0

위와 같이 bonding이라는 모듈이 올라와 있으면 성공!

 

이후 자동(재부팅 시)으로 모듈을 올릴때

vi /etc/modprobe.conf

alias bond0 bonding
options bonding miimon=1000 mode=6

 

옵션

miimon

MII 링크 감시가 발생할 때 밀리(milli) 초 단위로 주파수를 기술한다. MII 링크 감시를 사용하지 않으려면 0 값을 준다. 100이 최초 시작할 때 적절한 값이 된다. 추가 정보를 위해서 고 가용성(High Availability) 부분을 참조하라. 기본값은 0 이다.

 

 

mode (기본값은 round-robin)

0

Round-robin 정책: 첫 번째 가능한 슬레이브부터 마지막까지 순차적으로 전송한다. 이 모드는 부하분산과 장애 감내를 제공한다.

 

1

Active-backup 정책: bond에서 하나의 슬레이브만 활성화된다. 다른 슬레이브는 활성화된 슬레이브가 fail된 경우에만 활성화 된다.

 

2

XOR 정책: [(출발지 MAC 주소와 도착지 MAC 주소의 XOR) modula 슬레이브 개수] 에 기초하여 전송한다. 이것은 각 도착지 MAC 주소에 대해서 동일한 슬레이브를 선택하게 된다. 이 모드는 부하분산과 장애감내를 제공한다.

 

3

Broadcast 정책: 모든 슬레이브 인터페이스에 모든 것을 전송한다. 이것은 장애감내를 제공한다.

 

5

transmit load 밸런스로써 보내는 패킷만 밸런스 한다.

 

4

802.3ad (link aggregation) – switch aggregation 그룹생성이 필요하다.

 

6

receive와 transmit 패킷을 밸런스 한다. 이때 5,6은 하나의 스위치에 있을때만 동작한다.

 

 

본딩이 잘 되고 있는지 확인 하는 방법

# cat /proc/net/bonding/bond0 

Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005) -> Bonding 버전

 

Bonding Mode: adaptive load balancing                         -> Bonding 모드
Primary Slave: None
Currently Active Slave: eth0                                     -> Active상태인 NIC
MII Status: up                                                       -> link 상태
MII Polling Interval (ms): 1000                                    -> fail시 전환
Up Delay (ms): 0
Down Delay (ms): 0

 

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b0:88

 

Slave Interface: eth1
MII Status: down
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b3:5e

 

위 결과를 보면 eth0은 살아있고, eth1은 죽어있는 상태임을 알 수 있다.

 

# ifconfig

 

bond0   Link encap:Ethernet  HWaddr 00:50:8B:B3:B0:88 
          inet addr:11.14.92.86  Bcast:11.14.92.55  Mask:255.255.255.0
          inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:191496 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118615 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:147344011 (140.5 MiB)  TX bytes:8709361 (8.3 MiB)

 

eth0    Link encap:Ethernet  HWaddr 00:50:8B:B3:B0:88 
          inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:191497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118617 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:147344071 (140.5 MiB)  TX bytes:8709541 (8.3 MiB)

 

eth1    Link encap:Ethernet  HWaddr 00:50:8B:B3:B3:5E 
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[출처] linux bonding|작성자 우주곰

반응형

'OS > LINUX' 카테고리의 다른 글

RPM src install  (0) 2008.06.24
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
Posted by [PineTree]
OS/LINUX2008. 3. 12. 02:34
반응형

Download e http://www  .kernel.org/pub/linux/kernel/v2.4/

Download e http://www.netfilter.org/files/

Download e http://www.oltenia.ro/download/pub/linux/bridge/

[root@sunny SRPM]# rpmbuild --rebuild kernel-2.4.20-8.src.rpm

[root@sunny i386]# rpm -Uvh kernel-source-2.4.20-8.i386.rpm

[root@sunny i386]# rpm -Uvh kernel-BOOT-2.4.20-8.i386.rpm

[root@sunny i386]# rpm -Uvh kernel-doc-2.4.20-8.i386.rpm

[root@sunny tmp]# tar zxvf linux-2.6.5.tar.gz -C /usr/src/

[root@sunny src]# cd linux-2.6.5/

풀린 리눅스 커널 소스 디렉토리를 linux로 심볼릭 링크 합니다

[root@sunny src]# ln -s linux-2.6.5 linux

[root@sunny src]# cd /usr/src/linux

Patch 파일을 이용하여 커널을 Patch 합니다

[root@sunny linux]# patch -p1 < /usr/local/src/bridge-nf-0.0.8-against-2.6.5.ddff

[root@sunny linux]# make mrproper

Kernel Option 을 설정한다.

만약 콘솔모드에서 설정한다면 다음 명령을 이용한다.

[root@sunny linux]# make menuconfig

그리고 x-windows 모드에서 설정한다면 다음 명령을 이용하면 된다.

[root@sunny linux]# make xconfig


 

여기에서 변경해야 할 주요 항목은 Networking optionsNetwork device support 이다.

y는 커널에 포함시키는 항목이며, m module로 분리하며, n은 커널이나, module로 포함하지 않는 의미한다.

. Packet socket, Network packet filter (replace ipchains)+ Socket Filtering, + Unix domain sockets, + TCP/IP networking, IP: multicasting 이 부분을 내 시스템 보안과 네트워크 상태에 다라서 변경해 주어야 한다.

그리고 설정 내용을 저장해 주고 나온다.


 

컴파일을 위한 의존성 관계를 설정합니다

[root@sunny linux]# make dep

만약 이전에 커널 컴파일을 진행하였다면 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일(*.[oas]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제합

[root@sunny linux]# make clean

압축된 커널 이미지를 만듭니다. I(아이)를 대문자로 써야합니다.

[root@sunny linux]# make bzImage

Root device is (3, 6)

Boot sector 512 bytes.

Setup is 4991 bytes.

System is 1126 kB

Kernel: arch/i386/boot/bzImage is ready

기존의 module을 삭제합니다.

[root@sunny linux]# rm -rf /lib/modules/2.4.20-8/

[root@sunny linux]# make modules

[root@sunny linux]# make modules_install

모듈 사이의 의존성을 검사하여 /lib/modules 디렉토리 아래 modules.dep 파일을 만듭니다.

[root@sunny linux]# depmod -a 2.4.19

새로운 부트 이미지와 map 파일을 복사합니다.

[root@sunny linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.5.6

[root@sunny linux]# cp System.map /boot/System.map-2.5.6.map

부팅 하드 디스크가 SCSI 이라면 initrd 이미지도 새롭게 만들어야 합니다.

[root@sunny boot]# mkinitrd /boot/initrd-2.5.6.img 2.5.6

boot 디렉토리로 이동 후 기존의 심볼릭 링크된 부트이미지와 map 파일을 삭제합니다

[root@sunny linux]# cd /boot

[root@sunny boot]# rm -rf vmlinuz

[root@sunny boot]# rm -rf System.map

새로운 부트이미지와 map 파일로 심볼릭 링크를 합니다.

[root@sunny boot]# ln -s vmlinuz-2.5.6 vmlinuz

[root@sunny boot]# ln -s System.map-2.5.6 System.map

lilo 설정 파일을 수정합니다.

[root@sunny boot]# vi /etc/lilo.conf

prompt

timeout=50

default=linux   e default=linux-2.5.6

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

message=/boot/message

lba32

 

image=/boot/vmlinuz-2.4.20-8

        label=linux

        initrd=/boot/initrd-2.4.20-8.img

        read-only

        append="hdc=ide-scsi root=LABEL=/"

e 다음 내용을 추가

image=/boot/vmlinuz-2.5.6

           label=linux-2.5.6

           initrd=/boot/initrd-2.5.6.img

           read-only

           append="hdc=ide-scsi root=LABEL=/"

lilo를 실행하여 수정한 lilo.conf 설정파일의 설정을 적용시킨다.

[root@sunny boot]# lilo

Bridge Utils 설치

[root@linuxclub tmp]# rpmbuild --rebuild bridge-utils-0.9.3-8.src.rpm..rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-0.9.3-8.i386.rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-devel-0.9.3-8.i386.rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-debuginfo-0.9.3-8.i386.rpm

[root@sunny tmp]# tar xvfz bridge-utils-1.0.tar.gz

[root@sunny tmp]# cd bridge-utils-1.0

[root@sunny bridge-utils-1.0]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man

[root@sunny bridge-utils-1.0]# make

[root@sunny bridge-utils-1.0]# make install

iptables 설치

[root@linuxclub tmp]# rpmbuild --rebuild  iptables-1.2.7a-2.src.rpm..rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-1.2.7a-2.i386.rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-debuginfo-1.2.7a-2.i386.rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-ipv6-1.2.7a-2.i386.rpm

[root@linuxclub iptables-1.1.2]# make

[root@linuxclub iptables-1.1.2]# make install
반응형

'OS > LINUX' 카테고리의 다른 글

rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
linux bonding  (0) 2008.04.19
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
OpenVPN 사용하기  (0) 2008.03.03
Posted by [PineTree]
OS/LINUX2008. 3. 12. 02:32
반응형

http://cafe.naver.com/dgembedded4/288

 

kernel-2.6.17-1.2462.fc6.src.rpm 은 fedora에서 패치들을 쉽게 설치할 수 있도록 rpm으로 패키징해서 제공하는 것이다.
다운 로드 받을 수 있는 곳은 
http://download.fedora.redhat.com/pub/fedora/linux/core/development/source/SRPMS/
에서 최신 버전을 받을 수 있고,
http://download.fedora.redhat.com/pub/fedora/linux/core/
에서 원하는 fedora 버전에 따라 디렉토리를 찾아가 받으면 된다.

xxx.src.rpm형태의 파일은 xxx.rpm 파일처럼  # rpm -ivh(또는 -Uvh) xxx.rpm  명령어로는 간단히 설치 할 수가 없다.
rpm 개발자가 사용자들이 자신의 시스템에 맞게 리빌드 해서  사용 할 수 있도록  rpm 파일을 만드는데 사용된 소스를
함께 제공하는 형태다.  따라서 xxx.src.rpm은  자신의 시스템에 맞게 리빌드 해서 xxx.rpm 형태로 바꾼 후 설치를 해주
면 된다. 리빌드 방법에는 두가지가 있는데

1. 소스를 수정하지 않고 리빌드 해서 설치하기
2. 소스를 수정한 후 리빌드 해서 설치하기

첫번째 방법은 아주 간단하다. spec 파일이나 rpm 빌드 방법에 대해서 몰라도 다음 명령어들만 쳐주면 된다.
먼저 kernel-2.6.17-1.2462.fc6.src.rpm을 다운로드 받은 디렉토리도 이동한 후

# rpmbuild --rebuild kernel-2.6.17-1.2462.fc.6.src.rpm --target=i686 

명령을 실행시키면 i686 시스템에 맞는 RPM을 Redhat 리눅스 일경우  /usr/src/redhat/RPMS/i686 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일명으로 만들어 준다. 그리고 이 디렉토리로 이동해서

# rpm  -ivh kernel-2.6.17-1.2462.i686.rpm

을 실행해주면 설치가 된다.  재부팅을 해보면 커널 선택 매뉴에 추가된것을 확인 할 수 있을 것이다.

두번째 방법은 조금 복잡한데 자세한 내용은 참고 문서와 책을 참고하기 바란다.   먼저

# rpm -ivh  kernel-2.6.17-1.fc6.src.rpm


  명령을 실행해 압축을 풀면(설치한다고도 한다) Redhat 리눅스 일경우  /usr/src/redhat/ 아래 SPECS와 SOURCES
디렉토리에 kernel.2.6.spec 파일과 소스파일들이 생성된 것을 확인 할 수 있다.
이렇게 했는데.. 디렉토리가 없니 어쩌니 라고 나오면.. 패키지를 하나 더 설치해야 한다. 우선 src.rpm이 설치 되야 하는
디렉토리가 있어야 하는데 없을경우 다른 곳에서 찾아야 한다. 그 필요한 디렉토리를 만들어주는 패키지가 rpm-build
패키지이다.  가지고 있는 시디에서 rpm-build 로 시작하는 패키지를 찾아서 설치하거나 인터넷에서 찾아서 설치하면 된다.
그런 후에 다시 다운로드 받은 src.rpm 을 설치하고
/usr/src/redhat/ 아래 SPECS와 SOURCES에 가보면 파일들을 볼 수 있다.
자기가 필요한 패치를 추가하거나 필요없는 것은 뺀 다음  spec파일을 수정해주었으면 SPECS 디렉토리로 이동해 다음
명령어로  rpm을 빌드해준다.

# rmpbuild -ba  kernel-2.6.spec --target=i686

빌드가 정상적으로 끝나면 ./RPMS/i686/ 과  ./SRPMS 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일과 kernel-2.6.17-1.2462.i686.src.rpm  파일이 만들어 진것을 볼 수 있을 것이다.
첫번째 방법과 같이 ./RPMS/i686/이동해서 설치해주면 된다. 끝.


반응형

'OS > LINUX' 카테고리의 다른 글

linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
OpenVPN 사용하기  (0) 2008.03.03
REDHAT 9 설치후 기본 셋팅  (0) 2008.02.27
Posted by [PineTree]
OS/LINUX2008. 3. 10. 21:55
반응형

XDMCP 설정

 

1. 리눅스 기본 설정 변경

/etc/inittab 파일에서 runlevel을 5로 설정합니다.
id:5:initdefault:

 

gdm 환경 설정

/etc/X11/gdm/gdm.conf 파일 수정

DisallowTCP=false

Enable=1

 

2. iptables 설정 변경

/etc/sysconfig/iptables 파일의 앞부분에 다음 문장을 추가시켜 주시기 바랍니다.
-A RH-Firewall-1-INPUT -p udp -m udp --dport 177 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7100 -j ACCEPT


 

3. 리부팅

리부팅안하면.. xbrowser 에서 안잡힙니다.. -_-;

 

출처 http://blog.naver.com/blueruby?Redirect=Log&logNo=60027801391


반응형

'OS > LINUX' 카테고리의 다른 글

RPM Kernel 설치와 패치 방법  (0) 2008.03.12
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
OpenVPN 사용하기  (0) 2008.03.03
REDHAT 9 설치후 기본 셋팅  (0) 2008.02.27
redhat 9.0 에서 한글이 깨질때..조치  (0) 2008.02.27
Posted by [PineTree]
OS/LINUX2008. 3. 3. 20:01
반응형

1. 개요

   얼마 전에 누가 OpenVPN을 사용해 보라고 해서, 셋팅을 해서 사용해 해본 결과 쓸만 하고 또

   GPL 라이센스라 무료로 사용할 수 있고 한번도 뚤리적이 없을 정도로 안전하다고 합니다.

   사용법도 간단하여 원격 작업을 위한 터널을 만들어도 좋을 것 같아 여러분들과 공유 하고 싶어

   간단하게 사용법을 정리 하였습니다.

   원론적인 것 보다 실제로 사용 하는데 필요한 부분만 간단하게 정리 하였구요, 많이 활용하시기

   바랍니다.

 

   OpenVPN 사이트 ( http://openvpn.net )

 

 

 2. 설치

   1) FreeBSD

      -  커널 빌드 할때 아래의 옵션을 넣어 주세요. (Generic 커널에는 들어 있을 것 같음)

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

         device          tun
         device          tap

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

      - Ports를 이용 하여 설치

         /usr/ports/security/openvpn 에서 make install

      - 설치후 생성 되는 디렉토리/파일

        /usr/local/bin/openvpn  --> 실행파일

        /usr/local/share/doc/openvpn/easy-rsa  --> 키 생성을 하기 위한 디렉토리

        /usr/local/etc/rc.d/openvpn.sh  --> openvpn 구동을 위한 파일

 

   2) Linux (Fedora Core 3 에서 테스트)

     - 다운로드

        http://dag.wieers.com/packages/openvpn/
        --> openvpn-2.0.2-1.1.fc3.rf.i386.rpm (버전에 맞는 것을 다운 받음)

     - 설치

        rpm -Uvh openvpn-2.0.2-1.1.fc3.rf.i386.rpm

     - 설치후 생성 되는 디렉토리/파일

       /usr/sbin/openvpn

       /usr/share/doc/openvpn/easy-rsa

 

   3) Windows

      - 다운로드

        http://openvpn.net  에서  openvpn-2.0.5-install.exe 다운로드

        윈도우에서 사용 할 때는 그냥 openvpn 을 사용 하는 것 보다 OpenVPN-GUI 를 사용

        하면 구동 하기가 더 편리 합니다.

        (홈페이지에 Graphical User Interface 에 들어가면 다양한 종료가 있습니다.)

      - 설치

        일반적인 위도우 응용프로그램과 같이 설치 하면 됩니다.

      - 설치후 생성 되는 것

        TAP-Win32 Adapter 가 생깁니다. (바탕화면의 "내 네트워크 환경" 에서 속성 보면 됨)

        C:\Program Files\OpenVPN --> OpenVPN관련 파일 생성됨

     

 

   4) 기타

       디렉토리 구조만 조금씩 다른 뿐이지 어떤 OS 이던 똑 같은 구조로 동작 합니다.

       기타 다른 OS에서도 특별한 문제 없이 사용 할 수 있을 것입니다.

       http://openvpn.net/install.html   (여기를 참조 하시기 바랍니다.)

 

    *  특별히 다른 것은 없지만 이해를 돕기 위해 다음의 환경 셋팅 등에서도 3개의

       OS 위주로 설명을 합니다.

      

 

3. 환경 셋팅

  1) 설정 파일

     a. FreeBSD

        - 설정파일과 키값이 저장될 디렉토리 생성 

          # mkdir /usr/local/etc/openvpn

          # mkdir /usr/local/etc/openvpn/keys

        - /usr/local/etc/openvpn/openvpn.conf   (설정파일)

           다른 OS도 동일하게 생성 하므로 아래의 키생성에서 같이 설명함

           서버와 클라이언트에 따라서 다르게 설정함

      

        - 구동을 위한 환경 설정

          /etc/rc.conf 에 다음을 추가

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

            openvpn_enable="YES"
            openvpn_if="tap"
            openvpn_configfile="/usr/local/etc/openvpn/openvpn.conf"
            openvpn_dir="/usr/local/etc/openvpn"

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

 

        -  실행방법

           # cd /usr/loal/etc/rc.d

           # ./openvpn.sh start

 

    b. Linux

        - 설정파일과 키값이 저장될 디렉토리 생성 

          # mkdir /etc/openvpn

          # mkdir /etc/openvpn/keys

 

        - 구동을 위한 환경 설정

          # chkconfig --list | grep openvpn  --> 확인한 후

          # chkconfig --level 3 openvpn on

 

        - 실행

          # /etc/init.d/openvpn start

 

    c. Windows

       - 디렉토리 생성

         C:\Program Files\OpenVPN\config

         C:\Program Files\OpenVPN\config\keys

 

      -  실행 (cmd  쉘에서 실행)

         cmd> openvpn --config openvpn.conf

         * OpenVPN-GNU 를 설치 하면 트레이에서 시작하고 종료 할 수 있습니다.

            (OpenVPN 홈페이지에서 좌측에 "Graphical User Interface" 로 들어가서 받으세요.)

 

  2) 설정 파일 생성

     - 서버용 (openvpn.conf)

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

       dev tap
       proto tcp-server
       ifconfig 192.168.0.1 255.255.255.0   --> 서버의 vpn  주소
       verb 1
       mode server
       tls-server
      ca              keys/ca.crt
      cert            keys/server.crt
      key             keys/server.key
      dh              keys/dh1024.pem
      ifconfig-pool   192.168.0.101   192.168.0.200   --> 클라언트로 DHCP로 받을때 IP범위
      user    root
      group   wheel
      #inactive       600
      client-to-client

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

 

 

    - 클라이언트용 (openvpn.conf)

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

       remote 100.100.100.1     --> openvpn 서버 주소
       dev tap                       --> 사용 장치명
       proto tcp-client
       ifconfig 192.168.0.10 255.255.255.0     --> IP를 고정 할때 사용,

       verb 2                                                 없으면 DHCP방식으로 서버에서 받음
       tls-client
       ca      keys/ca.crt        --> 아래의 3개는 서버에서 생성 된 것을 받아와야
       cert    keys/client.crt
       key     keys/client.key    

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

 

 

  3) 키 생성

     - 아래의 디렉토리로 이동

        # cd /usr/local/share/doc/openvpn/easy-rsa  (FreeBSD)

        # cd /usr/share/doc/openvpn/easy-rsa (Linux)

 

     - vars 수정 (아래와 같이 적당히 수정, 중요한 것은 동일한 값을 가져야 한다는 것임)

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

        export KEY_DIR=/usr/local/etc/openvpn/keys
        export KEY_COUNTRY=KO
        export KEY_PROVINCE=NA
        export KEY_CITY=SEOUL
        export KEY_ORG="VPN-TEST"
        export KEY_EMAIL="vpn-admin@vpn-test.com"

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

 

     - 서버측의 키 생성 (bash 쉘에서 실행 하기 바람)

       # . vars

       # ./clean-all  --> index 생성을 위해서 함
       # ./build-ca   --> 변경 되면 모든 인증서가 파기되어야 함으로 최초 한 번만 실행
       # ./build-dh   --> 랜덤암호화를 위해 생성
       # ./build-key-server server     


      - 클라이언트 용 key 생성

        # . vars
        # ./build-req <사용자ID>   --> 키 생성
        # ./sign-req <사용자ID>    --> 키에 대하여 서명

 

      - build-req 실행 예

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

         # ./build-req client

        Country Name (2 letter code) [KO]:
        State or Province Name (full name) [NA]:
        Locality Name (eg, city) [SEOUL]:
        Organization Name (eg, company) [VPN-TEST]:
        Organizational Unit Name (eg, section) []:
        Common Name (eg, your name or your server's hostname) []:client-test
        Email Address [vpn-admin@vpn-test.com]:

        Please enter the following 'extra' attributes
        to be sent with your certificate request
        A challenge password []:
        An optional company name []:

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

      주의 사항 : 

          Common Name 은 로그 분석시 구별 되는 값 임으로 알 수 있는 이름으로 설정함

          Organizational Unit Name 까지 동일한 값으로 해야 인증키가 먹음

          challenge password 는 PPP인증등에서 사용 됨으로 설정 하지 않음

       

      -  키를 클라이언트로 복사 (client 라는 이름으로 생성 했을때)

        /usr/local/etc/openvpn/key 아래에 생성된 3개의 파일을 복사

        ca.crt ,      client.crt ,      client.key 

        * 사용자 키는 서버에서 생성해서 클라이언트로 복사해야 함, 따라서 모든 키생성은

           서버에서 해야 함.

 

 

4. 전체 구성

 

                   

 

 

  - 서버로 접속을 하여 키 인증등을 거쳐서 상호 VPN 터널을 완성 시킴

  - VPN서버가 방화벽 내부에 있다면 TCP1194로의 연결 만큼을 허용해 주어야 함

 

 

5. 기타 참고 사항

   - 물리적인 서버를 바꾸려면

     /usr/local/etc/openvpn/keys 키가 들어 있는 디렉토리를 통체로 옮겨서 사용 하면

     클라이언트의 키를 다시 발급 하지 않고 사용 할 수 있음

   - 기타 다양한 활용에 대해서는 openvpn.net 을 보면 많이 도움이 됩니다.

 

작성 : 마그마(필명) putter@naver

반응형

'OS > LINUX' 카테고리의 다른 글

rpm으로 커널 업그레이드 하기  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
REDHAT 9 설치후 기본 셋팅  (0) 2008.02.27
redhat 9.0 에서 한글이 깨질때..조치  (0) 2008.02.27
[LINUX] rpmbuild  (0) 2008.02.11
Posted by [PineTree]