만약에 eth0가 half duplex로 구성이 되어 있을 때
ethtool을 이용하여 full dulex로 변경하는 것은 가능하지만 재부팅을 하면 다시 half duplex가 된다.

이런 경우에는 ifcfg-eth0 파일에 아래와 같이 추가하면 된다.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ETHTOOL_OPTS="speed 100 duplex full autoneg off"


이제 서버가 재부팅 되더라도 eth0는 full duplex로 동작하게 된다.


블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





서버에 리눅스를 설치 하다보면 array controller가 없어서 설치를 하지 못하는 경우가 있다.
설치를 하려는 리눅스의 OS 버전이 낮거나, 새로 나온 신규 장치를 연결 할 때 드라이버를 인식하지 못하는 경우가 있는데 이 때 드라이버를 설치하는 방법은 간단하다.

CentOS의 경우(RHEL 역시 마찬가지)

CD나 DVD 이미지를 넣고 부팅을 하면
boot :
라는 커맨드창이 나올 때 <Enter>나 linux text<Enter>를 입력하여 GUI 혹은 CLI로 설치를 진행하는데
이 때 linux dd<Enter> 또는 linux dd text<Enter>를 입력하면 된다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





# getconf LONG_BIT
32

이렇게 나오면 32비트 운영체제




# getconf LONG_BIT
64

이렇게 나오면 64비트 운영체제
블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





# export ko_KR.eucKR 라고 치면 한글로 설정되는데 한글로 설치를 했어야 할 것이고, 한글로 설정하면 깨지는 경우가 발생하곤 한다. 이럴때는 아래와 같이

# export LANG=C 라고 쳐서 영문으로 설정하면 된다.
블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





1. 본딩(bonding)이란?

여러개의 NIC을 논리적으로 묶어서 한개의 NIC으로 묶어서 NIC의 갯수 만큼 대역폭을 확장하는 기술이다. 100M의 NIC을 2개를 묶어서 200M의 NIC으로 구성 할 수도 있으며, 2개의 NIC을 한개의 NIC으로 묶어서 active와 stand by로 구성을 할 수도 있다.(Fault Tolerance의 역할을 한다)

아래에서는 뒤에 언급한 active와 stand by를 구성 할 것이다.
VMware에서 테스트를 하였으며, OS는 CentOS 5.5 i386 버전을 사용하였다.


2. 본딩을 하기 위해서 네트워크 환경을 변경한다.

[root@CentOS ~]#
[root@CentOS ~]# cd /etc/sysconfig/network-scripts/
[root@CentOS network-scripts]# vi ifcfg-bond0     # ifcfg-bond0 파일은 생성해야 하며, 아래 값을 넣으면 된다.
DEVICE=bond0                                                  # 네트워크의 주소 부분은 설치 환경에 맞게 적용한다.
BOOTPROTO=static
IPADDR=192.168.133.130
NETMASK=255.255.255.0
NETWORK=192.168.133.0
ONBOOT=yes
DHCP_HOSTNAME=CentOS




[root@CentOS network-scripts]# vi ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
DHCP_HOSTNAME=CentOS

아래와 같이 변경한다.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
USERCTL=no
MASTER=bond0                                             # root 계정이 아닌 일반계정이 해당 인터페이스를 비활성화 가능여부
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
DHCP_HOSTNAME=CentOS



[root@CentOS network-scripts]# vi ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
DHCP_HOSTNAME=CentOS

아래와 같이 변경한다.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
USERCTL=no
MASTER=bond0                                             # root 계정이 아닌 일반계정이 해당 인터페이스를 비활성화 가능여부
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
DHCP_HOSTNAME=CentOS



[root@CentOS network-scripts]# cd /etc/sysconfig/
[root@CentOS sysconfig]# vi network  # 기존 내용에 GATEDEV 항목을 추가하여 호스트네임 및 게이트웨이 주소를 설정한다.
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=CentOS


아래와 같이 변경한다.

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=CentOS
GATEWAY=192.168.133.2
GATEDEV=bond0

 




3. 모듈을 구성한다.
 

  [Bonding 모드 종류]

     0 : balance-round robine ( 2개의 NIC 통한 분배 +  Fault Tolerance )

        1 : active-standby ( Active상태의 NIC에 문제 발생시 Fault Tolerance )

     2 : balance-xor ( 0 비슷하지만 xor연산을 이용한 목적지 Mac 근원지 Mac 이용한

                 분배 +    Fault tolerance)

    3 : broadcast ( 2개의 NIC 어떤 규칙 없이 데이터 통신 +  Fault Tolerace)

       4 : 802.3ad (link aggregation) – switch aggregation 그룹생성이 필요


 



[root@CentOS sysconfig]# cd /etc/
[root@CentOS etc]# vi modprobe.conf
alias eth0 vmnics
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias snd-card-0 snd-ens1371
options snd-card-0 index=0
options snd-ens1371 index=0
remove snd-ens1371 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371
# Added by VMware Tools
install pciehp /sbin/modprobe -q --ignore-install acpiphp; /bin/true
install pcnet32 (/sbin/modprobe -q --ignore-install vmxnet || /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS);/bin/true


아래와 같이 변경한다.

alias bond0 bonding
options bonding mode=1
options bond0 miimon=100

alias eth0 vmnics
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias snd-card-0 snd-ens1371
options snd-card-0 index=0
options snd-ens1371 index=0
remove snd-ens1371 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-ens1371
# Added by VMware Tools
install pciehp /sbin/modprobe -q --ignore-install acpiphp; /bin/true
install pcnet32 (/sbin/modprobe -q --ignore-install vmxnet || /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS);/bin/true




[root@CentOS etc]# modprobe bonding
[root@CentOS etc]# lsmod | grep bonding
bonding                96873  0
ipv6                  270305  20 bonding,ip6t_REJECT
[root@CentOS etc]# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]
[root@CentOS etc]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B 
          inet addr:192.168.133.130  Bcast:192.168.133.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe19:6a0b/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:375748 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66381 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:521476866 (497.3 MiB)  TX bytes:3808569 (3.6 MiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:374350 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66273 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:521326235 (497.1 MiB)  TX bytes:3792400 (3.6 MiB)
          Interrupt:67 Base address:0x2024
eth1      Link encap:Ethernet  HWaddr 00:0C:29:19:6A:0B 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1403 errors:0 dropped:0 overruns:0 frame:0
          TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:150931 (147.3 KiB)  TX bytes:17551 (17.1 KiB)
          Interrupt:67 Base address:0x2424
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2860 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2860 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5845622 (5.5 MiB)  TX bytes:5845622 (5.5 MiB)
[root@CentOS etc]#



4. 구성 상태 확인 및 구성 상태 검증

[root@CentOS etc]# cd /proc/net/bonding/
[root@CentOS bonding]# cat bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)   # bonding의 버전 정보
Bonding Mode: fault-tolerance (active-backup)                 # 구성된 bonding의 모드 관련 정보
Primary Slave: None
Currently Active Slave: eth0                                            # 현재 Active 상태의 인터페이스 정보
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:19:6a:0b
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:19:6a:15
[root@CentOS bonding]#



블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,






1. 리눅스에 있는 방화벽을 이용하여 특정 IP로만 SSH 접근이 가능하게 변경이 가능하다.

[root@localhost ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


아래와 같이 변경한다.

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.226.10 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT




2. 리눅스의 방화벽을 새로 시작한다.

[root@localhost ~]# /etc/rc.d/init.d/iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]
[root@localhost ~]#

이제 SSH로 192.168.226.10 IP 만이 이 서버에 SSH로 접근이 가능하다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





1. hosts.allow 에 접근 가능한 IP를 삽입한다.

[root@localhost ~]# vi /etc/hosts.allow
#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#

sshd:192.168.226.10

위와 같이 추가하면 192.168.226.10 의 IP 만 서버에 SSH로 접근이 가능하다.



2. hosts.deny 에 allow 에서 추가한 IP를 제외하고 접근을 못하는 문구를 삽입한다.

[root@localhost ~]# vi /etc/hosts.deny
#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!

sshd:ALL

위와 같이 sshd:ALL 의 문구를 삽입한다.



3. 네트워크 서비스를 재시작하여, 설정을 변경하게 적용시킨다.

[root@localhost ~]# /etc/rc.d/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0: 
Determining IP information for eth0... done.
                                                           [  OK  ]
[root@localhost ~]#




블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





이 방법은 CentOS를 그래픽 모드로 설치를 하고, 부팅을 하는데 X윈도우에 들어가는 순간부터 마우스 포인터만 보이고 진행이 안 되는 현상에서 사용하는 방법이다.

Text 모드의 경우에는 커널모드로 사용 할 수 있지만, 로컬에서 X윈도우를 사용 할 때 위와 같은 증상으로 사용 할 수 없다면 아래와 같은 방법을 통하여 사용 하도록 한다.




X윈도 해상도 설정

X윈도의 해상도 설정 파일은 /etc/X11/xorg.conf 에 위치한다.

centos# vi /etc/X11/xorg.conf
# Xorg configuration created by pyxf86config

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection


Screen 섹션을 보면 mode라는 명령어가 없는데 아래와 같이 추가 하면 된가.

# Xorg configuration created by pyxf86config

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes "1280x1024" "1024x768" "800x600"
        EndSubSection
EndSection






X윈도 주파수 설정

CRT 모니터의 경우에는 주파수 문제가 자주 나오지 않지만, LCD 모니터의 경우에는 모니터에서 주파수를 지원하지 못하여 나오지 않을 수 있다.

LCD 모니터의 주파수를 허용하는 범위를 검색하여 맞추는 것이 좋으며, 아래 값과 같이 기본적으로 65에 맞추면 나오게 된다.

centos# vi /etc/X11/xorg.conf
# Xorg configuration created by pyxf86config

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Section "Monitor"
        Identifier "Generic Monitor"
        Option    "DPMS"
        HorizSync   30-65
        VertRefresh 50-65
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,






# vi /etc/inittab


#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <
miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
"/etc/inittab" 53L, 1666C


위에서 3으로 된 부분을 아래와 같이 5로 바꿔준다.

#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <
miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
"/etc/inittab" 53L, 1666C



이후에 재부팅을하면 X윈도로 뜨게 된다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





레드햇 계열의 리눅스는 ssh를 이용하여 root로 접속을 할 수 있다.
레드햇 계열 리눅스로는 레드햇, 페도라, 센트오에스 이렇게 세가지가 있다.

레드햇 계열 리눅스는 ssh를 이용하여 접속 할 때 기본적으로 root 계정 접근이 가능하다.
이러한 권한을 없애고 일반 유저로 접속하여 su 명령어로 슈퍼유저 권한을 받아 사용하게 할 수 있다.

이 때 변경 사항은 아래와 같다.

[root@test ~]# vi /etc/ssh/sshd_config
.......... 생략 ...........
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6


아래와 같이 변경한다.

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6



이제 변경 된 사항을 적용하기 위해서 sshd를 재시작 한다.

[root@test ~]# /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

[root@test ~]#


이 설정을 한 이후부터는 ssh 접속 할 때 root 계정으로 접근이 불가능 하며, 일반 계정으로 로그인 한 후 su 명령어를 이용하여 슈퍼유저 권한 명령어를 실행 할 수 있다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,