LINUX(리눅스) - 해당되는 글 65건

Centos5.3 네임서버 설정 -실제도메인 적용-

Centos5.3 에서 실제 도메인을 사서 적용하는 과정을 순서대로 기록한 내용입니다.
참고하시길 바랍니다.

1. 도메인 구입처에서 도메인을 따고 네임서버을 등록한다
도메인명 : a.co.kr
IP : 221.X.X.X (네임서버사용할 IP 즉 BIND가 설치될 서버의 IP)
=>  참고로 1차 네임서버만 지정했습니다.

2. Centos에서 bind 설치확인 (caching-nameserver 설치요망)
[test]# rpm -qa | grep bind
ypbind-1.19-11.el5
bind-libs-9.3.4-10.P1.el5_3.1
bind-9.3.4-10.P1.el5_3.1
bind-utils-9.3.4-10.P1.el5_3.1
bind-chroot-9.3.4-10.P1.el5_3.1

[mail]# rpm -qa | grep nameserver
caching-nameserver-9.3.4-10.P1.el5_3.1 => 없으면 yum 으로 설치한다.
yum install caching-nameserver

3. conf 설정 /etc/named.caching-nameserver.conf 수정

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        // Those options should be used carefully because they disable port
        // randomization
        query-source    port 53;
       
query-source-v6 port 53;

        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      { any; };
       match-destinations { any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};


4. zone파일 설정은 /etc/named.rfc1912.zones 추가 =>a.co.kr에 대한 존파일 설정(a.zone)

  zone "a.co.kr" IN {
          type master;
          file "a.zone";
          allow-update { none; };
  };

5. /var/named/chroot/var/named 에 zone파일 생성 (a.zone)

$TTL    43200
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS             ns.a.co.kr.
                IN MX 10        mail.a.co.kr.
                IN A               221.X.X.X
mail          IN A               221.X.X.X
ns            IN A               221.X.X.X
www        IN A               221.X.X.X
ftp            IN A               221.X.X.X

*심볼릭 링크 안걸려도 작동 확인


6. named 재시작
*chown root.named a.zone 존파일 권한 설정

7. PC nslookup 으로 도메인 질의 => 찾는다.


|

SELINUX 미국국가 안보국에서 개발한 오픈소스로 리눅스에 보단 향상된 기능을 제공하지만 복잡하고

일부서비스가 제한되기 때문에 혹시 설정되어 있다면 해제하는 방법입니다.(2.6커널부터 지원)


/etc/selinux/config 열면

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

SELINUX=disabled 수정하시후
재부팅 하시면 됩니다.


|

CentOS에서 간단 명령인 badblocks로 하드디스트의 배드를 체크하는 방법입니다.
발생하면 정상적 운영중에 다운이 발생하고 정상적으로 부팅이 되지 않아 심각한 상황이 발생 할 수
있습니다.

명령어
badblocks -b 블럭크기 -o 출력파일 -v 장치명
ex) badblocks -v /dev/sdb
ex) badblocks -v -o sdb_bad.txt /dev/sdb
옵션
-b :블럭을 바이트 단위로 표시
-o : 출력파일 설정
-v : 상세 정보를 출력한다.
-w : 쓰기모드 테스트 한다. 시간이 많이 걸리고 데이타삭제되니 주의한다.

[TEST]# badblocks -v /dev/sdb
Checking blocks 0 to 35916548
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.

=>다행히 Bad가 발견되지 않았습니다. 36GB 읽기 테스트로 15분정도 걸린듯 합니다.

|

OS는 CentOS 5.3 입니다.
추가될 하드디스크를 시스템에 장착 합니다.

1. [TEST]# fdisk /dev/sdb
=> 추가될 두번째 하드를 FDISK로 불러 들인다.

2. Command (m for help): p
=>P를 쳐서 하드 정보를 본다.
Disk /dev/sdb: 36.7 GB, 36778545152 bytes
255 heads, 63 sectors/track, 4471 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System

3. Command (m for help): n
=>n명령어로 새로하드를 추가한다. 
(p는 프라이머리 파티션, e는 익스텐드 파티션이다. 익스텐드 파티션은 로직컬 드라이브 잡아야한다.) 

  4. Command (m for help): w
=>w로 정보를 저장한후 Fdsik 로 빠져나온다.
The partition table has been altered!
Calling ioctl() to re-read partition table.

5. 파일시스템을 포맷한다.
 mkfs -t ext2 /dev/sdb1 =>EXT2 포맷
 mke2fs -j /dev/sdb1   =>EXT3 포맷

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: =>포맷완료

6. [TEST]# mount -t ext3 /dev/sdb1 /sdb

자동인식되겠끔 fstab에 잡아준다.
/dev/sdb1               /sdb                    ext3    defaults        0 0

부팅 후 정보확인
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              34G  177M   32G   1% /sdb

|

CentOS 5.0 기준

아파치 2.2.3
실행 : /etc/init.d OR service httpd start
설정파일 : /etc/httpd/conf
 - 747라인 AddDefaultCharset UTF-8
 - 391라인 디렉토리 인덱스 확인

AddType application/x-httpd-php .php .htm .php3 .html
AddType application/x-httpd-php-source .phps

UserDir public_html (362)

<Directory /home/*/public_html> (370-381)

홈폴더 : /var/www/html
기본 index.html

Mysql 5.0.45
실행 : /etc/init.d OR service mysqld start
DB파일위치 : /var/lib/mysql
소켓위치 : /var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
기타관련 파일 위치 : /usr/bin
mysqladmin도 여기에 위치함

[root@firewall bin]# service mysqld start
MySQL 데이타베이스를 초기화하는 중:  Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h firewall password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL (을)를 시작 중:                            [  OK  ]

=>처음 데몬을 실행하면 DB을 초기한다.

[root@firewall bin]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> quit
=>초기는 root 암호없이도 접속가능

[root@firewall ~]# mysqladmin -u root password '암호'   => 암호설정
[root@firewall ~]# mysql -u root -p => 연결
Enter password:


PHP 5.1.6
설정파일 : /etc/php.ini


참고로 최신 CentOS 5.5 버전은
PHP 5.1.6
mysql 5.0.77
아파치 2.2.3


출처:본인글

|

리눅스서버가 이상하게 속도안나와서 살펴보니 링크 문제 였습니다. 스위치쪽은 강제 100Mb FULL인데

서버는 오토 ON설정이라 100Mb Half로 설정이 되어 버렸습니다.


사용자 삽입 이미지

[]  ethtool -s eth0 speed 100 duplex full autoneg off 

Advertised link modes:  Not reported
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full


|

#iptable의 브릿지 방화벽 보안룰 적용 자신의 환경에 맞게 수정하세요!!

#!/bin/sh
iptables -t nat -F
iptables -t mangle -F
iptables -t filter -F

iptables -F
#기존에 설정되어 있는 정책을 초기화 한다.

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#초기 정책을 ACCEPT(허용)으로 설정한다.

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 루프백 트래픽은 허용한다

iptables -A FORWARD -s 218.154.192.XXX -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 218.154.192.XXX -m state --state NEW -j ACCEPT
# 내부의 서버에 대해서 각각 서버를 소스로 한 패킷을 허용해준다.이설정이 없으면 외부에서
   내부로 접속은 가능하지만, 내부의 서버들이 인터넷에 접속할수 가 없다.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 허용된 룰에 이미 세션을 맺어 상태추적테이블 목록에 있는 패킷은 허용한다.

iptables -A INPUT -p TCP -s 211.220.XX.XX --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
#방화벽자체에 대해 소스 211.220.XX.XX만 SSH접속 허용한다.


==== 이제 FORWARD 이용해 방화벽 내부에 서버에 대해 허용할 서비스를 허용한다. ====

iptables -A FORWARD -p TCP -s 211.220.XX.XX --sport 1024:65535 -d 218.154.XX.XX --dport 3389 -m state --state NEW -j ACCEPT
#외부 211.220.XX.XX에서 218.154.XX.XX로 터미널 서비스 접속을 허용한다.

iptables -A FORWARD -p TCP -s 211.220.XX.XX --sport 1024:65535 -d 218.154.XX.XX --dport 22 -m state --state NEW -j ACCEPT
#외부 211.220.XX.XX에서 218.154.XX.XX로 SSH 접속을 허용한다.

iptables -A FORWARD -p TCP --sport 1024:65535 -d 218.154.XX.XX --dport 80 -m state --state NEW -j ACCEPT
#외부 ANY에서 218.154.XX.XX로 WWW 접속을 허용한다.

iptables -A FORWARD -p TCP -s 211.220.XX.XX --sport 1024:65535 -d 218.154.XX.XX --dport 8080 -m state --state NEW -j ACCEPT
#외부 211.220.XX.XX에서 218.154.XX.XX로 WWW 접속을 허용한다.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#OUTPUT정책만 허용하고 INPUT과 FORWARD는 거부한다.

|

CentOS5.3 으로 리눅스 브릿지 방화벽 구축하였습니다. eht0(외부),eth1(내부)연결했습니다.

인터넷 - (eth0)방화벽(eth1) - 스위치 -서버들 => 이렇게 구성했음

2.6커널에서는 기본적으로 bridge모드를 지원하기 때문에 brctl 유틸리만 다운 받아서 사용하시면 됩니다.

사용자 삽입 이미지

1. yum install bridge-utils 업데이트 합니다.
2. /etc/sysctl.conf수정 net.ip4.ip_forward = 1 로 수정 합니다.
3. /etc/sysconfig/network-scripts에 ifcfg-br0 파일 생성

  *파일에 삽입
  DEVICE=br0
  TYPE=Bridge
  IPADDR=218.154.XXX.XXX
  GATEWAY=218.154.XXX.XXX
  NETMASK=255.255.255.XXX
  ONBOOT=yes
  ====================================================
  ifcfg-eth0 수정
  DEVICE=eth0
  BRIDGE=br0
  ONBOOT=yes
  ====================================================
  ifcfg-eth1 수정
  DEVICE=eth1
  BRIDGE=br0
  ONBOOT=yes
  ====================================================
4. brctl show 실행
  bridge name     bridge id               STP enabled     interfaces
  Bridge firewalling registered => 브릿지 파이월이 등록되었다고 나옴
5. lsmod로 bridge 모듈 올라왔는지 확인
6. service network restart 실행

7.brctl show 로 브리지 상태 확인
 [root@firewall ~]# brctl show
 bridge name     bridge id               STP enabled     interfaces
 br0             8000.00c09f2a6974       no              eth1
                                                                  eth0

여기까지 한후 eth0과 eth1에 한번씩 케이블을 연결해서 PING이 되는지 확인합니다.
이제 iptables 로 브릿지 정책을 설정하면 된다. 기본적으로 iptables 기본정책
INPUT,OUTPUT은 방화벽 자체에 룰을 적용하는것이고, 브릿지 통과는 FORWARD에 적용받는다.

iptables 정책보기
http://kjhfull.tistory.com/entry/firewallpolicy


참고 : centOS 5.3 2.6커널에서는 브릿지 모드가 기본제공되고 유틸만 설치하면 되는데..혹시 안되시는 분들은 make menuconfig 에서 아래 선택후 재컴파일 해보시기 바랍니다.
사용자 삽입 이미지

Networking -> Network options -> 802.1D Ethernet Bridginf 체크
Networking -> Network options -> Network packet fileting(replaces ipchains) 체크
Networking -> Network options -> Network packet filtering(replaces ipchains) 하위메뉴
-> Bridged IP/ARP packets filtering 체크 후 하위메뉴 -->Bridge:Netfilter configuration ->
Ethernet Bridge tables(ebtables) supoort 모두체크 후 커널을 재 컴파일
============================================================================================

|
금일 업무상 구형서버에 CentOS5 을 해야 하는 일이 생겼습니다. 최근의서버(듀얼,쿼드)는 기본

DVD장착인데...구형이라 CD-ROM 이었습니다. DVD는 1장으로 끝나는데...CD는 6장이고 CD교체도

해줬야 하고 조금 귀잖습니다. 그래도 OS는 CD나DVD로 직접설치 해야한다고 생각하는 1인 인데..

금일 바쁘고 해서 네크워크로 설치 했습니다.  설치 방법은 기존방식이라 크게 틀리않고 설치 과정에서

FTP서버와 파일 경로만 지정해 주시면 됩니다. 다른 일 때문에 정확한 시간을 측정하지 못했는데...

TEXT모드 1시간 내외로 설치 완료된것 같습니다. 설치과정의 사소한 것은 제외하고 중요한 것 몇개만

첨부해서 간단히 설명하겠습니다.

http://ftp.daum.net/centos/5.3/isos/i386/ 에서 CentOS-5.3-i386-netinstall.iso 을 다운받아서

CD로 굽은 후 서버에 넣고 부팅합니다.


사용자 삽입 이미지
1. 설치방법은 FTP 선택합니다.


사용자 삽입 이미지
2. 인터넷에 연결된 네크워크 카드를 선택합니다.(제서버는 랜카드가 2개 입니다.)


사용자 삽입 이미지
3. 네크워크 카드 IPv4 을 선택하고 저는 지정된 공인 IP사용하기 때문에 Manual 구성을 선택했습니다.
   공유기 밑의 컴퓨터 라면 DHCP로 선택하세요.


사용자 삽입 이미지
4. 각 할당된 IP를 넣습니다. 보안상 IP제외하고 사진 찍었습니다.
   여기서 넷마스트 지정하는데..255.255.255.X 방식으로 지정하면 이상하게 인터넷 연결이 안되었습니다.
   CIDR방식으로 IP/X 로 하니 정상적으로 인터넷 접속가능 했습니다. 참고하세요.


사용자 삽입 이미지
5. CentOS5.3 소스을 받아올 FTP주소와 디렉토리를 설정하고 OK누루시면 됩니다.
   주소 : ftp.sayclub.co.kr
   디렉토리 :/pub/centos/5.3/os/i386

** 이 후 진행과정은 일반설치법과 동일합니다. **


|

금일 centOS5.2 설치 후
setup명령과 ftp 명령이 먹히지 않아 당황스렀습니다. 아마 관련 팩키지를 빼먹은듯 합니다.
setup명령어는 네트워크 및 시스템설정 유틸로 자주 쓰는데....없으니깐 불편하네요. 찾아보니~~
setup은 setuptools FTP(클라이언트)는 ftp 를 설치하니 작동하네요.
참고하세요.

간단히 yum으로 업데이트 하시면 됩니다.
yum install setuptool
yum install ftp

사용자 삽입 이미지


|

샹콤홍쓰's Blog is powered by Daum & tistory