내가 관리하는 데비안서버에서는 WEB과 FTP를 돌리고 있었다.


전문적인 관리자가 아닌지라 자주 보안업데이트를 해 주는 것도 아니고, 보안에 대해서 그렇게 잘 안다고 할 수는 없었다.


그렇지만 언제나 골치아픈 중국아닌가....


그래서 나는 특정대역외의 IP에서는 아예 접근을 하지 못하게 하고 싶었다.


이런 때 유용한 것이 iptables 패키지였다.


# more /etc/init.d/iptables.sh 
=========================================================================
#!/bin/sh
case "$1" in
start)
echo "iptables start"
iptables-restore /etc/iptables.conf
;;
stop)
echo "iptables stop"
iptables -F
iptables -t nat -F
;;
restart)
echo "iptables stop"
iptables -F
iptables -t nat -F
echo "iptables start"
iptables-restore /etc/iptables.conf
;;
esac

exit 0

 

 

debian:/etc# iptables-save -t > iptables.conf

debian:/etc# more /etc/iptables.conf

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

# Generated by iptables-save v1.2.11 on Mon Oct 23 13:43:39 2006
*filter
:INPUT ACCEPT [416:26453]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [409:229792]
-A INPUT -i lo -j ACCEPT
#ntp allow
-A INPUT -p udp --dport 123 -j ACCEPT        <==서버의 시간을 동기화하기 위해 ntp포트는 허용했다.
#대역 허용
-A INPUT -s xxx.1.0.0/255.255.0.0 -j ACCEPT
-A INPUT -s xxx.2.0.0/255.255.0.0 -j ACCEPT
-A INPUT -s xxx.3.0.0/255.255.0.0 -j ACCEPT
-A INPUT -s xxx.3.0.0/255.255.0.0 -j ACCEPT
-A INPUT -s xxx.4.0.0/255.255.0.0 -j ACCEPT

  -------------중략-------------------   <==실제로 사용되는 IP대역을 추가하면된다.
#그외 차단

-A INPUT -i eth0 -j DROP

COMMIT
# Completed on Mon Oct 23 13:43:39 2006

 


======데몬추가======

# chmod a+x /etc/init.d/iptables.sh
# /etc/init.d/iptables.sh restart
# update-rc.d iptables.sh defaults

======확인======

# iptables -L
target     prot opt source               destination
ACCEPT     0    --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ntp
ACCEPT     0    --  xxx.1.0.0/16       anywhere
ACCEPT     0    --  xxx.2.0.0/16       anywhere
ACCEPT     0    --  xxx.3.0.0/16       anywhere

ACCEPT     0    --  xxx.4.0.0/16       anywhere

DROP       0    --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


# iptables -L -v    <==실제 적용예이다.

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    3   286 ACCEPT     0    --  lo     any     anywhere             anywhere
 2544  193K ACCEPT     udp  --  any    any     anywhere             anywhere          udp dpt:ntp
   -------------------------중략--------------------------

70006   38M DROP       0    --  eth0   any     anywhere             anywhere   <==DROP된 패킷 수

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destinationChain OUTPUT (policy ACCEPT 324K packets, 49M bytes)
 pkts bytes target     prot opt in     out     source               destination

 

 

주) 국내에 할당된 IP대역은 한국인터넷진흥원에서 알 수 있었다. 아마도 이런 할당 IP대역을 사용하여 다양한 룰 적용이 가능할 것이다.

 

참고사이트: http://ip.nida.or.kr/

IP대역 참고: http://ip.nida.kr/main.html 에서 IPv4/국내 IPv4주소 목록 혹은 관리대행자별 IPv4주소 목록


IP대역을 안다고 해도 RULE로 만들어 넣는 것은 쉬운 일은 아니었다. ㅜ_ㅜ 인터넷진흥원에서 시작IP~끝IP 이런 식으로 관리하고 있어서, 일일히 변환해야 했다.

Posted by novice9

댓글을 달아 주세요

지금은 다른 방법으로 하면 되겠지만 커널 2.4 버전대에서는 다음과 같이 하면 되었었다. 혹시나 필요한 곳이 있을라나 모르겠다.

 

이 설정은 데비안의 sarge버전에서 한 것이다. sarge버전에서도 커널 2.6을 사용하면 fastTrak의 패키지를 적용할 수 없다.

 

커널 소스에 promise패치를 적용하고, 컴파일하는 과정은 여기에 따로 언급하지 않는다. 패치명은 kernel-patch-2.4-fasttraks150 이다.

 

=======부팅시 적용==========
# update-rc.d promise-module defaults
# cd /etc/rc2.d
# mv S20promise-module S10promise-module <==데몬순서변경

PROMISE FastTrak TX4000/376/378/S150 TX Series Linux Driver
===========================================================

The original PROMISE FastTrak sources were modified to
suite smoothly with the "kernel-source-*" package so
INITRD images can be created using "kernel-package". If
doing so do not forget to append the "ft3xx" module line
to "/etc/mkinitrd/modules".

This required if you are switching to to the new FastTrak
controller (SCSI) from e.g. IDE. Not doing so the "ft3xx"
kernel module will not be loaded by default by the
"initrd-tools" package.

-- Raphael Bossek <bossekr@debian.org>, Tue, 6 Jan 2004 13:00:29 +0100

debian:/boot# mkinitrd -o /boot/initrd.img-2.4.27

 

=======promise-module스크립트작성========== 
 주) 모듈을 위와 같이 올리면 정상적으로 한번만에 인식이 되지 않아 부득이하게 아래와 같이 한번 내렸다가 다시 올려주었다.
#more /etc/init.d/promise-module
-----------------------------------------------------------------
#! /bin/sh
# /etc/init.d/modutils: loads the appropriate modules in `boot'.


PATH="/sbin:/bin"

[ -f /proc/ksyms ] || exit 0
[ -e /sbin/depmod ] || exit 0

#
echo -n 'RELoading ft3xx: '
rmmod ft3xx
modprobe ft3xx
echo
mount /dev/sda1
mount /dev/sda2

exit 0
-------------------------------------------------------------

=======fstab설정==========
# more /etc/fstab   
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda9 /home ext3 defaults 0 2
/dev/hda8 /tmp ext3 defaults 0 2
/dev/hda5 /usr ext3 defaults 0 2
/dev/hda6 /var ext3 defaults 0 2
/dev/hda7 none swap sw 0 0
/dev/hdb /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/sda1 /home/www ext3 defaults,noauto 0 2  
/dev/sda2 /var/lib/mysql ext3 defaults,noauto 0 2

Posted by novice9

댓글을 달아 주세요

데비안(Debian)의 APM환경에서 아파치서버(Apache2)가 처음 기동되었을 때 읽어오는 index.html 화일은 위치는  /var/www/apache2-default 의 밑에 있다.

 

이것을 사용자 계정으로 변경하고자 할 때 다음과 같이 하여야 한다.

 

debian:/etc/apache2/sites-enabled$ more 000-default
NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/www/>
                Options FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                #RedirectMatch ^/$ /apache2-default/                   <==코멘트 처리
        </Directory>

 

Posted by novice9

댓글을 달아 주세요

리눅스에서 하드디스크를 추가하려면 다음과 같이 한다.

 

1. 파티션 생성
fdisk /dev/hdb
Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 10000 80324968+ 83 Linux
/dev/hdb2 10001 19457 75963352+ 83 Linux

2. 파일시스템 생성
debian:~# mkfs.ext3 /dev/hdb1
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
10043392 inodes, 20081242 blocks
1004062 blocks (5.00%) reserved for the super user
First data block=0
613 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


debian:~# mkfs.ext3 /dev/hdb2
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
9502720 inodes, 18990838 blocks
949541 blocks (5.00%) reserved for the super user
First data block=0
580 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


3. 마운트 포인트 지정
debian:/mnt# mkdir homebackup
debian:/mnt# mkdir sqlbackup

4. 백업
- /mnt/sqlbackup# mysqldump -A -u root -p > 20031225.sql

Posted by novice9

댓글을 달아 주세요

promise 레이드카드를 데비안 etch 이상에서 사용하기 위해서는 dmraid 패키지를 사용해야 한다. 제작사의 드라이버는 커널 2.4용만 있으므로 etch버전에서는 사용할 수 없다.


주) 결과적으로 사용은 실패했다. 아마도 추정원인은 레이드 구성된 하드디스크의 CHS값이 상이해서 그런 것으로 생각한다.

 

원래는 두 개의 하드디스크가 완전히 똑같은 것이었다. 그런데, 하나가 고장나면서, 동일한 모델의 하드디스크를 구했음에도 불구하고 내부적으로 CHS값이 상이하고, 용량도 미세하게 차이가 났다. 

 

그럼에도 이전에 제작사의 드라이버로는 정상적으로 작동했었다!!!!

debian:/dev/mapper# dmraid -ay -d           <=debug메세지를 출력하면서 레이드를 자동구성
DEBUG: _find_set: searching pdc_fffhfidb
DEBUG: _find_set: not found pdc_fffhfidb
DEBUG: _find_set: searching pdc_fffhfidb
DEBUG: _find_set: not found pdc_fffhfidb
DEBUG: checking pdc device "/dev/sda"
DEBUG: set status of set "pdc_fffhfidb" to 16
DEBUG: checking pdc device "/dev/sda"
DEBUG: set status of set "pdc_fffhfidb" to 16
ERROR: creating degraded mirror mapping for "pdc_fffhfidb"
DEBUG: _find_set: searching pdc_fffhfidb1
DEBUG: _find_set: not found pdc_fffhfidb1
ERROR: dos: partition address past end of RAID device
DEBUG: freeing devices of RAID set "pdc_fffhfidb"
DEBUG: freeing device "pdc_fffhfidb", path "/dev/sda"
DEBUG: freeing devices of RAID set "pdc_fffhfidb1"
DEBUG: freeing device "pdc_fffhfidb1", path "/dev/mapper/pdc_fffhfidb"

제대로 구성되었을 경우 하나만 구성되었을 것으로 추정한다.

debian:/dev/mapper# ls -al
total 0
drwxr-xr-x  2 root root     100 Jan 30 02:14 .
drwxr-xr-x 14 root root    4260 Jan 30 02:14 ..
crw-rw----  1 root root  10, 63 Jan 30 01:54 control
brw-rw----  1 root disk 254,  0 Jan 30 02:14 pdc_fffhfidb          
brw-rw----  1 root disk 254,  1 Jan 30 02:14 pdc_fffhfidb1

Posted by novice9

댓글을 달아 주세요

 

데비안(Debian)시스템에 OpenNMS를 설치해 보았다. 네트워크 관리를 위해서 사용해 본다기보다는 이 패키지가 어느 정도의 기능을 가지고 있는 지 알아보기 위해서인데 약간의 삽질이 필요한 관계로 설치기를 남겨 놓는다. 설치한 데비안(Debian) 배포판은 lenny이다.

OpenNMS를 설치하기 위해 다음의 홈페이지를 참고로 한다.
http://www.opennms.org/index.php/Main_Page

이 페이지의 글은 위 사이트 문서의 데비안(Debian) 설정방법을 참고하여 약간의 수정을 하였다.


홈페이지에 보면 데비안용 패키지를 제공하고, 소스리스트를 추가하는 방법으로 설치할 수 있음을 알 수 있다.

1. /etc/apt/sources.lists 파일을 편집하여 다음을 추가한다.
 deb http://debian.opennms.org stable main
 deb-src http://debian.opennms.org stable main
  

 주: 만약 개발버전을 설치하고자 한다면 다음 소스리스트를 추가한다.
 deb http://debian.opennms.org unstable main
 deb-src http://debian.opennms.org unstable main

2. 공식 OpenNMS의 PGP키를 다음과 같이 apt에 추가한다.


# wget -O - http://debian.opennms.org/OPENNMS-GPG-KEY | sudo apt-key add -

3. 데비안 배포판이 4.0(etch) 이후라면 Sun Java가 설치된다. 그 전 버전이라면 수동설치가 필요할 수 있다.

4. OpenNMS설정,설정상의 편의를 위해서 다음과 같이 환경변수를 지정한다.


 # export OPENNMS_HOME=/usr/share/opennms

5. 데이터베이스 설정-OpenNMS를 사용하기 위해서는  PostgreSQL이 필요하다.
 데비안 계열에서는 다음과 같이 설치한다.


 # apt-get install postgresql
 
 데이터베이스가 설치되면 다음과 같이 실행시킬 수 있다.


 # /etc/init.d/postgresql-8.3 start

6. 인증을 위해서 설정 파일을 다음과 같이 편집한다.
 # vi pg_hba.conf
----------------------
 local   all         all                                    trust
 host    all         all         127.0.0.1/32          trust
 host    all         all         ::1/128                 trust
---------------------


7. TCP/IP 접속을 위해서 설정파일을 다음과 같이 편집한다.
 # vi postgresql.conf
---------------------
 # you can use "*" to listen on all addresses
 listen_addresses = 'localhost'
 --------------------
 max_connections = 60          <==아마도 8.3 이라면 기본 100(50이상)으로 설정되었을 것이다.
 --------------------
 주)구 버전에서는 로컬접속을 위해서 다음과 같이 설정해야 할 수도 있다.
---------------------
 tcpip_socket = true
---------------------

8. 설정을 변경했다면 데이터베이스를 추가하고 재시작한다.
 # sudo -u postgres createdb -U postgres -E UNICODE opennms
 # /etc/init.d/postgresql-8.3 restart


9. 다음과 같이 iplike를 설치한다.
 # apt-get install iplike-pgsql83

10. 그런다음 스크립트를 실행시켜 준다.
 # install_iplike.sh

11. 다음과 같이 명령을 내려 OpenNMS에게 자바가 설치된 경로를 알려준다.
 # OPENNMS_HOME/bin/runjava -S /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

12. /etc/default/opennms 파일을 편집하여 JAVA_HOME 환경변수를 정의해 준다.
 JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun <==내 경우는 자동적으로 정의된 것 같다.

13.  OpenNMS와 데이터베이스를 초기화한다.
 # OPENNMS_HOME/bin/install -dis

14.  OpenNMS를 시작한다.
 # sudo /etc/init.d/opennms start

15 .웹브라우저로 페이지를 열어본다.
   http://yourhost:8980/opennms/
   초기 아이디/패스워드는 admin/admin이다.


사용자 삽입 이미지

Posted by novice9

댓글을 달아 주세요

데비안(Debian) 혹은 리눅스 시스템을 KT 메가패스에서  사용할 때, IP를 할당받지 못한다면 다음과 같이 설정한다.

다음 명령을 실행하여 실제 랜카드의 MAC주소를 알아낸다.

    debian:~# ifconfig
    eth1      Link encap:Ethernet  HWaddr 00:1F:D0:XX:XX:XX
              inet addr:211.XXX.XX.XX  Bcast:211.XXX.XX.255  Mask:255.255.255.0
              inet6 addr: fe80::21f:d0xx:fexx:xxxx/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:2779 errors:0 dropped:3675700930 overruns:0 frame:0
              TX packets:683 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1003053 (979.5 KiB)  TX bytes:114318 (111.6 KiB)
              Interrupt:177 Base address:0x2000
    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:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

윈도우도 동시에 사용하고 있다면 다음과 같이 알아내어도 상관없다.

    C:\> ipconfig /all
    ----------------중 략--------------------------------
    Ethernet adapter 로컬 영역 연결:
            Connection-specific DNS Suffix  . : kornet
            Description . . . . . . . . . . . : Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ethernet NIC
            Physical Address. . . . . . . . . : 00-1F-D0-XX-XX-XX
            Dhcp Enabled. . . . . . . . . . . : Yes
            Autoconfiguration Enabled . . . . : Yes
            IP Address. . . . . . . . . . . . : 211.xxx.xx.187
            Subnet Mask . . . . . . . . . . . : 255.255.255.0
            Default Gateway . . . . . . . . . : 211.xxx.xx.254
            DHCP Server . . . . . . . . . . . : 121.xxx.xxx.xxx
            DNS Servers . . . . . . . . . . . : 168.126.63.1
                                                            168.126.63.2
            Lease Obtained. . . . . . . . . . : 2009년 3월 18일 수요일 오후 10:04:01
            Lease Expires . . . . . . . . . . : 2009년 3월 18일 수요일 오후 11:04:01

2. 데비안에서 다음과 같이 설정을 한다.
    ==============/etc/network/interfaces
    allow-hotplug eth1
    auto eth1
    iface eth1 inet dhcp
            hwaddress ether 00:1F:D0:XX:XX:XX

3. ifdown,ifup 명령을 다음과 같이 실행시키거나, 시스템을 리부팅해 주면 IP를 정상적으로 받아오는 것이 보일 것이다.
    debian# ifdown eth1
    debian# ifup eth1  

주1: hwaddress option을 사용하여 MAC 주소만 설정을 맞게 해 주면 된다. 괜히 고정 IP처럼 사용하고 싶다고 IP임대시간을 늘려서 설정하거나 하면, 당장은 되더라도 1시간이 지나면 IP가 차단될 것이다.
주2: 나의 데비안시스템에서는 eth1 이 랜카드이다. eth0 은 firewire가 잡고 있다.
Posted by novice9

댓글을 달아 주세요

문득 데비안(Debian) 홈페이지에 들어가니 데비안 5.0이 공식적으로 발표되었다. 2월 14일에 발표되었는데, 아직 모르고 있었다. 이제는 데비안 오리지널 버전의 사용자는 많이 줄어든 듯 하다. 데비안유저스도 막히고....

데비안 릴리즈 노트에 따라 etch와 다른 lenny의 주요 버전변화는 다음과 같다.

Package Version in 4.0 (etch) Version in 5.0 (lenny)
Apache 2.2.3 2.2.9
BIND DNS Server 9.3.4 9.5.0
Cherokee web server 0.5.5 0.7.2
Courier MTA 0.53.3 0.60.0
Dia 0.95.0 0.96.1
Ekiga VoIP Client 2.0.3 2.0.12
Exim default email server 4.63 4.69
GNU Compiler Collection as default compiler 4.1.1 4.3.2
GIMP 2.2.13 2.4.7
the GNU C library 2.3.6 2.7
lighttpd 1.4.13 1.4.19
maradns 1.2.12.04 1.3.07.09
MySQL 5.0.32 5.0.51a
OpenLDAP 2.3.30 2.4.11
OpenSSH 4.3 5.1p1
PHP 5.2.0 5.2.6
Postfix MTA 2.3.8 2.5.5
PostgreSQL 8.1.15 8.3.5
Python 2.4.4 2.5.2
Tomcat 5.5.20 5.5.26

 x86 공식 배포판 DVD는 바이너리의 경우 4~5장으로 구성되고, CD로는 28~32 장으로 구성된다니 대단한 양이다.

 그리고 커널의 버전 변화는 다음과 같다.

Debian GNU/Linux 5.0 ships with kernel version 2.6.26 for all architectures.

그리고 눈에 띄는 변화라면, 윈도우에서 바로 설치할 수 있다는 것등이 있다.(이전에는 부팅CD등으로 설치했었다.)

자세한 것은 다음 홈페이지를 참고한다.

http://www.debian.org/releases/lenny/i386/release-notes/

Posted by novice9

댓글을 달아 주세요

데비안(Debian) 을 서버로 사용할 때 기본으로 풀려있는 설정들을 보안을 위해서 막아 주어야 할 필요성이 있다.

 

======TELNET배너 변경======
# more /etc/issue.net
!!!!!WARNNING!!!!!! %h                   <== 여기에 적당한 경고문을 넣어준다.

 

======ICMP ECHO막기======
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
또는
# more /etc/sysctl.conf
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See sysctl.conf (5) for information.
#
#kernel.domainname = example.com
#net/ipv4/icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_echo_ignore_all=1

 

======identd 데몬 삭제======
# more /etc/inetd.conf
#ident stream tcp wait identd /usr/sbin/identd identd <=코멘트 처리
# ps -ef | grep inetd <=프로세스 재시작
# kill -HUP id_num

======portmapper 데몬 삭제======
# apt-get remove portmapp

'IT > 서버설정' 카테고리의 다른 글

phpBB3 3.0.4 파일업로드 에러메세지  (0) 2009.05.19
TextCube 1.7.7을 local로 설치하다.  (0) 2009.05.18
데비안서버 보안설정  (0) 2009.05.18
아파치 서버 설정(계정 Rewrite)  (0) 2009.05.17
데비안 mod_url 추가  (0) 2009.05.17
데비안의 로케일 설정  (0) 2009.05.17
Posted by novice9

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
이 블로그는 삽질을 기록하는 곳입니다. ^_^
novice9
텍스트큐브,티스토리 검색

달력

 « |  » 2018.04
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

최근에 받은 트랙백

글 보관함

Yesterday184
Today7
Total2,374,708