Posted on 2009/04/07 21:16
Filed Under Linux/설정방법

DNS server, DNS service  

다음의 S/W를 리눅스 계정으로 다운로드 받는다.

MySQL 5.1.34.rc  (MySQL 5.5.9)
Apache 2.2.17
libmcrypt 2.5.8
PHP 5.3.5
WebDB

* 추가 MySQL을 5.5.9 버전 설치는 : http://blog.lovecoco.net/128 참고 하세요.

* 아래 이미지와 버젼이 조금 다르나, wget 명령어에 나와있는데로 진행하면 에러없이 진행된다.

* MySQL 을 다운받는 방법

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/mysql-5.1.34.tar.gz  [다운로드]

사용자 삽입 이미지

* Apache 를 다운받는 방법

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/http-2.2.17.tar.gz  [다운로드]

사용자 삽입 이미지


* PHP 를 다운받는 방법

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/php-5.3.5.tar.gz   [다운로드]

사용자 삽입 이미지

* WebDB 를 다운받는 방법

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/webdb.tar   [다운로드]

사용자 삽입 이미지


* libmcrypt 를 다운받는 방법

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/libmcrypt-2.5.8.tar.gz   [다운로드]



다운받고 tar로 압축된 파일을 풀어줍니다.

tar xvfz mysql-5.1.34.tar.gz
tar xvfz http-2.2.11.tar.gz
tar xvfz php-5.2.14.tar.gz
tar -xvf webdb.tar

압축을 풀면 다음과 같이 tar파일과 디렉토리가 같이 보입니다.

사용자 삽입 이미지


* MySQL 설치하기

MySQL 설치 파일이 위치한 곳으로 이동한후, 다음의 명령어를 이용하여 설치를 위한 준비를 한다.

./configure --prefix=/usr/local/mysql --with-charset=euckr --with-unix-socket-path=/usr/local/mysql/mysql.socket --with-mysqld-user=mysql

사용자 삽입 이미지

설정 완료 후 컴파일 명령어 실행

make all

사용자 삽입 이미지

다음의 화면이 나오면.. 컴파일이 완료된것이다. 그리고 컴파일 된 파일을 실제 설치할 장소 (/usr/local/mysql)로 이동하는 명령어를 입력한다.

make install

사용자 삽입 이미지

여기까지 완료했다면, 이제 설치는 완료된 것이며,

이제~ MySQL을 실행해야 하는데, 설정시 MySQL은 mysql 유져(--with-mysqld-user=mysql)로 실행하로도록 설정하였기 때문에 mysql 유져가 없다면 다음의 명령어로 유져를 추가해야 한다.

adduser mysql

실행은 설치된 디렉토리 (/usr/local/mysql/)로 이동후, 실행파일이 있는 bin 디렉토리로 이동 한다.

MySQL을 실행하기에 앞서..가장 먼저 데이터베이스의 데이터 파일을 처음 만들어야 하며, 다음의 명령어를 이용하여 만들 수 있다.

./mysql_install_db

이후, MySQL의 데이터가 만들어진 데이터 디렉토리는 현제 root의 권한으로 설정되어 있다.
mysql_install_db를 실행할 때, root의 권한으로 실행했기 때문이다. (정확하게는 mysql 계정으로 실행해야 한다.)
따라서 MySQL의 데이터가 위치한 디렉토리 (/var/lib/mysql)의 권한을 mysql 사용자로 다음의 명령어를 이용하여 변경해야 한다.

chown -R mysql:mysql /var/lib/mysql

다음으로 MySQL이 실행되면 실행정보를 담고 있는 파일이 저장될 디렉토리 (/var/run/mysqld)를 만들고 권한을 mysql로 변경해야 한다.

mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld

다음으로 MySQL 서버와 프로그램을 연결해줄 소켓을 링크파일로 생성하야 한다.

ln -s /var/lib/mysql/mysql.sock /usr/local/mysql/mysql.socket

이제 MySQL 서버를 실행해야 하며, 다음의 명령어로 실행한다.
/usr/local/mysql/bin/mysqld_safe --user=mysql --language=korean --old-passwords &

이후, MySQL의 root 계정의 암호를 초기화 해야 하며, 다음의 명령어로 초기화 한다.
/usr/local/mysql/bin/mysqladmin -u root password '암호'
/usr/local/mysql/bin/mysqladmin -u root -p -h localhost.localdomain passowrd '암호'

마지막 명령어는 "Enter Passowrd:" 나오며 암호를 입력 요청을 하는데, 이때, 좀전에 설정한 암호를 입력하면 된다.
위의 '암호'에 설정하고자 하는 암호를 입력하면 되며, 암호를 잊을 경우 MySQL의 정상적인 운영이 불가능하므로 꼭 기억을 하도록 한다.

사용자 삽입 이미지

정상적인 접속이 되는지를 확인하는 방법은

/usr/local/mysql/bin/mysql -u root -p

라고 입력하면 다음의 화면이 나오면 정상적으로 실행되는 것이다.

사용자 삽입 이미지

마지막으로 부팅시 자동실행을 하도록 만드는 방법은 "/etc/rc.local"파일 재일 마지막 부분에 "/usr/local/mysql/bin/mysqld_safe --user=mysql --language=korean --old-passwords & "을 추가하도록 한다. [이미지는 조금 다름]

vi /etc/rc.local

사용자 삽입 이미지

이것으로 MySQL은 모두 설치가 완료 되었다.


* Apache 설치 방법

Apache(HTTPD) 설치 파일이 위치한 곳으로 이동한후, 다음의 명령어를 이용하여 설치를 위한 준비를 한다.

./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-modules=so --with-mpm=worker --enable-rewrite --enable-ssl --with-ssl

사용자 삽입 이미지

설정 완료 후 컴파일 명령어 실행

make all

사용자 삽입 이미지

다음의 화면이 나오면.. 컴파일이 완료된것이다. 그리고 컴파일 된 파일을 실제 설치할 장소 (/usr/local/apache)로 이동하는 명령어를 입력한다.

make install

사용자 삽입 이미지

여기까지 완료했다면, 이제 설치는 완료된 것이며, Apache의 설치디렉토리 (/usr/local/apache)의 bin 디렉토리로 이동하여 apachectl 명령어를 이용하여 apache 를 실행한다.

/usr/local/apache/bin/apachectl start

사용자 삽입 이미지
 

확인하는 방법으로는 인터넷 익스플로러로 리눅스의 IP로.. 웹페이지가 뜨는지 확인하면 된다.

이제 마지막으로 부팅시 자동실행을 위하여 "/etc/rc.local"파일 제일 마지막 부분에 "/usr/local/apache/bin/apachectl start" 항목을 추가하면 된다.

vi /etc/rc.local

사용자 삽입 이미지



2009/04/07 21:16 2009/04/07 21:16

Posted on 2009/03/16 20:35
Filed Under Linux/설정방법

DNS server, DNS service  

우선 FTP를 설치하기 위해서는 "root" 계정이 필요합니다. 이유는 소스를 직접 컴파일해서 실행파일로 만들어야 하기 때문입니다.
따라서 "su -" 명령어를 이용하여 사용자 계정에서 "root" 계정으로 로그인 합니다.

사용자 삽입 이미지
\"사용자

root 계정으로 로그인하였다면, FTP를 설치하기 위해 FTP 서버 프로그램을 다운로드 받아야 합니다.
FTP서버로는 아직까지 많은 사용자를 확보하고 있으며 사용과 설정이 간편한 "ProFTPd"를 이용합니다.
직접 인터넷으로 접속하여 다운로드 받을 수 있으며 wget 명령어를 이용합니다.

wget http://www.lovecoco.net/dataout/userdata/proftpd-1.3.3d.tar.gz  [다운로드]

사용자 삽입 이미지

다운로드 받은후 "ls" 명령어로 확인하면 "proftpd-1.3.3a.tar.gz" 파일이 다운로드 된것을 확인할 수 있다.
.gz 파일은 zip으로 압축되어 있다는 뜻이며, 압축을 해제하기 위해서는 "gzip" 명령에를 사용하고 압축을 해제하는 "-d" 옵션을 사용한다.

gzip -d proftpd-1.3.3a.tar.gz

사용자 삽입 이미지


압축 해제후 "ls" 명령어로 확인하면 "proftpd-1.3.3a.tar.gz" -> "proftpd-1.3.3a.tar" 로 변경된 것을 확인할 수 있다.
다음은 "tar"로 묶은 파일을 풀어야 한다.
"tar" 명령에서 묶은 파일을 푸는 명령어는 "tar"에 옵션 "-xvf"를 사용한다.

tar -xvf proftpd-1.3.3a.tar

사용자 삽입 이미지

위의 명령어를 입력하면 파일이 쭈욱 풀리는 것을 볼수 있으며 "ls -al" 명령어로 확인하면, 파란색의 폴더 "proftpd-1.3.3a"가 생성된것을 확인할 수 있다.

해당 디렉토리로 이동한다.

cd proftpd-1.3.3a

사용자 삽입 이미지

이동후 ProFtpd의 설치를 위해 컴파일 준비를 한다. 컴파일은 "configure" 명령어를 일반적으로 이용하며, 옵션으로는 "--prefix"를 사용하여 설치하고자 하는 곳의 위치를 설정해준다.

./configure --prefix=/usr/local/proftpd

명령어를 입력한다.

사용자 삽입 이미지


명령어를 입력하면 여려 옵션을 스스로 체크하는 화면이 쭈욱 올라간다. 별도의 오류가 없이 종료되면, 위의 화면과 같이 나온다. 이제 실제 실행파일을 만드는 명령어를 입력한다.

make all

사용자 삽입 이미지


명령어를 입력하면 컴파일되는 화면이 쭈욱~~~ 지나가며 약 몇분후 종료 되면, 위의 화면처럼 나왔다면 실행파일을 만드는데 성공한것이다.

다음로는 실행파일을 실제 설정한 디렉토리로 설치하는 과정이 남았다. 설치하는 명령어는 다음과 같다.

make install

사용자 삽입 이미지


명령어를 입력하면 실제 복사되는 화면이 나오며, 위와 같은 화면이 나오면 모든 설치가 완료 된것이다.

이제 남은 일은 Proftpd의 설정파일을 확인하여 익명접속 (누구나 FTP에 접속할 수 있는 권한)을 빼고 인증된 사용자만 접속가능하도록 수정하는 일과 함께 FTP의 실행권한을 설정하는 일이 남았다.
Proftpd의 설정파일은 위와 같이 설치했을 경우 "/usr/local/proftpd/etc/proftpd.conf"에 있으며 해당 파일을 편집해야 한다.
편집은 vi 편집기를 이용하여 편집한다.

vi /usr/local/proftpd/etc/proftpd.conf

사용자 삽입 이미지

위의 명령어를 입력하면, 위의 화면이 나오는데, 29번째 줄과 30번째 줄을 다음과 같이 변경해야 한다.

user              ftp
Group             ftp

또한 다음 페이지의 (Ctrl+F) 항목중..

<Anonymous ~ftp>
  user          ftp
  Group         ftp
  .
  .
  .
  .
</Anonymous>

부분을 아래의 그림처럼 모두 주석처리 한다.

사용자 삽입 이미지

#<Anonymous ~ftp>
#  user          ftp
#  Group         ftp
#  .
#  .
#  .
#  .
#</Anonymous>

vi의 파일을 저장하고 종료한다. (vi 사용법은 꼭 인터넷등을 통하여 습득해둘것!)

proftpd의 실행파일이 있는 위치로 이동한다.

cd /usr/local/proftpd/sbin

사용자 삽입 이미지

이동후 "ls -al" 명령어를 확인하면 3개의 명령어가 보이는데 이중 "proftpd" FTP의 실행파일이다.
다음과 같이 실행한다.

./proftpd &

실행후 "ps -aux | grep ftp"로 확인하면 proftpd 가 첫번째 행에 실행중인것을 알수 있다.

사용자 삽입 이미지

이제 제대로 접속된는지 확인해야 한다.

우선 현재 Linux의 IP를 확인해야하는데 IP 확인은 "ifconfig -a" 명령어를 통하여 확인할 수 있다.

사용자 삽입 이미지

위의 그림처럼 eth0 부분 2번째 줄, "inet addr : 192.168.41.130" 에서 192.168.41.130 이 IP 주소가 된다.
이제 본인의 컴퓨터 (윈도우)에서 시작 실행 "ftp IP주소"를 입력해야 하는데 현재 Linux의 IP는 ifconfig 명령어 실행결과 "192.168.41.130"이므로 "ftp 192.168.41.130"와 같이 입력하면 FTP에 접속되었다는 메시지와 함께 사용자 아이디를 묻는 화면이 뜬다.

사용자 삽입 이미지

위의 그림처럼 본인의 사용자 ID와 암호를 입력하면 "220 User coco logged in" 이라는 행이 정상적으로 출력되면 FTP의 설정은 완료 된것이다.

이제 마지막으로 리눅스 부팅시 자동으로 실행되도록 하기 위해서는 "/etc/rd.local" 파일에 실행파일을 추가등록만 해주면 된다.

vi /etc/rc.local

위의 명령어를 입력한후 제일 마지막 줄에

/usr/local/proftpd/sbin/proftpd &

을 추가해주면 모두 완료 된다.

사용자 삽입 이미지



 

2009/03/16 20:35 2009/03/16 20:35
TAG : ,

Posted on 2009/03/10 15:14
Filed Under Linux/설정방법

DNS server, DNS service  

일단 VmWare WorkStation 6.02버젼을 설치후 다음을 진행한다.

준비물 : RedHat Fedora Core 7 (DVD버젼) ISO파일 (이미지파일)


VMWare에서.. 가상 시스템 설정 방법

1. VMWare Workstation 설치후, "File" - "NEW" - "Virtual Machine" 선택
2. "Welcome to the New Virtual Mcahine Wizard" 에서 "다음"
3. "Select the Appropriate Configuration" 에서 "Typical" 선택
4. "Select a Guest Operation System"에서 Linux 선택, Version 은 "Red Hat Linux" 선택
5. "Name the Virtual Machine"에서 이름과 경로는 적당한 곳을 지정 - 실습실의 경우 하드보안관으로 인하여 C드라이버에 저장시 컴퓨터 재부팅시 삭제되므로 D드라어버에 설치.
6. "Network Type"에서 "Use Network address translation(NAT)" 선택
7. "Specify Disk Capacity" 에서 크기는 적당히 지정 . (기본값 사용 무관)
8. 만들어진 가상머신에서 "Edit virtual machine setting" 항목 선택
9. CD-ROM 항목 선택후 "Connection" 항목에서 "USE ISO image" 선택후 다운로드 받은 RedHat Fedora Core 7 파일 지정

사용자 삽입 이미지

10. "Start this virtual machine" 선택하여 부팅

Linux 인스톨 하기.

1. 부팅화면에서 "Install or uprade an existing system"선택 하여 설치 시작

사용자 삽입 이미지

2. CD를 찾았다고 하며 "Choose Skip to skip the media test and start the installation" 에서 "Skip"선택
사용자 삽입 이미지

3. 언어선택에서 "Koream(한국어)" 선택
사용자 삽입 이미지

4. 키보드 타입은 "U.S 영어" 선택   
사용자 삽입 이미지

5. 첫 설치일 경우 sda 드라이버를 초기화 할것이냐고 묻는데 "예"를 선택
6. 하드디스크 설치시 파티션 설정에 대한 항목이 나오는데, 처음 설치일 경우 "Remove all partitions on selected drivers and create default latout"을 선택한다.
   * 차후 고급설치시 파티션을 사용자가 스스로 설치 할 수 있어야 한다^^
사용자 삽입 이미지

7. 파티션 초기화시 하드디스크의 모든 내용이 삭제된다는 경고문이 발생. 계속진행~
8. "메모리 부족" 메시지와 함께 스왑 파티션을 사용할 것이냐는 질문에 "예-스왑파티션 사용"
9. 네트웍 설치는 차후 설정 할 수 있으니 일단 NEXT (설정해도 무관)
10. 시간 설정에서는 "아시아/서울"로 선택후 NEXT
사용자 삽입 이미지

11. 암호 설정이 나오는데 "root" 아이디의 암호를 설정하는 것이다. 설정하도록 하고, 차후 분실시는 초기화하기 무척 어려우므로(거의 재설치가 편함) 잊지 않도록 한다
사용자 삽입 이미지

12. 소프트웨어의 지원에 대해서 묻는데, 웹서버를 직접 다운로드 받아 필요한 것만 설치할 예정이므로 "소프트웨어 갤발", "웹 서버"에만 체크하고 다음
사용자 삽입 이미지

13. 이후~ 포맷부터 패키지까지 주욱~~~ 설치한다 (대략 소요시간 20~40분)
14. 완료 후 재부팅

* Fedora 부팅 후 설치
1. 재부팅 후 환영합니다 ^^ 메뉴에서 "앞으로" 클릭, License 동의 ^^ 후 앞으로
사용자 삽입 이미지

2. 방화벽 설치에서 FTP, SSH, WWW(HTTP)의 항목을 Open 하고 다음을 선택하면 경고메시지가 나오는데 가볍게 "Yes"를 클릭
   (사용하고자 하는 포트를 Open하면 되고, 설치 후에도 설정변경 가능)
사용자 삽입 이미지

3. SELinux는 강화된 Linux 보안 프로그램인데, 이것을 "강제"로 할경우 이후 PHP등의 설치에 문제가 될수 있다. 따라서 "비화성화"로 선택후 다음을 클릭하면 경고 메시지 나오는데 그냥 가볍게 "Yes"클릭
사용자 삽입 이미지

4. 날짜 및 시간을 조절하고 다음~을 클릭^^
5. Hardware Profile을 보낼것이냐고 묻는데 초기값 그냥 두고 다음
사용자 삽입 이미지

6. 사용자 생성 메뉴에서 이전에 입력한 root의 암호가 아닌 다른 사용자를 하나 더 추가. ^^ "root"는 모든 권한을 갖는 시스템 관리자이며, 이 것이 아닌 다른 사용자를 ID와 암호를 맞게 조절하여 추가하면 됨.
  사용자 아이디는 개인아이디와 암호임!!~
사용자 삽입 이미지

7. 사운드 카드설정은 별다른 조정을 할 필요없음^^.. "완료" 클릭
사용자 삽입 이미지

8. 마지막으로 재부팅되면 모든 설치가 완료
9. 재부팅 후 사용자 ID를 입력 (좀전에 추가로 만든 개인 아이디)
사용자 삽입 이미지

10. 사용자 암호를 입력.
사용자 삽입 이미지

11 그럼~~~ 다음의 화면이 나오면 설치는 일단 완료!
사용자 삽입 이미지



* VMWare에서 Linux 를 설치했을 경우에만 다음 사항을 진행합니다.
1. VMWare 메뉴 "VM" - "Install VMWare Tools"를 선택후 확인!
사용자 삽입 이미지

2. 두개의 파일중 확장자가 RPM인것을 클릭.
사용자 삽입 이미지

3. root의 암호를 입력하라고 하는데, 이때 초기에 Linux 설치전에 입력했던 암호를 입력~!
사용자 삽입 이미지

4, 다음과 같은 화면에서 패키지가 설치됨
사용자 삽입 이미지

5. 검증되지 않았다는 메시지가 나오는데 "무조건 설치"를 누름
사용자 삽입 이미지

6. 설치 완료
사용자 삽입 이미지


2009/03/10 15:14 2009/03/10 15:14

Posted on 2008/08/19 22:16
Filed Under Linux/설정방법

DNS server, DNS service  

Linux 백업 스크립트~

난 아래 내용의 파일을 ~~ /etc/cron.weekly 에 복사해서 실행 권한을 주고~ 일주일에 한번식 실행하도록 한다.

펼치기



 

2008/08/19 22:16 2008/08/19 22:16

Posted on 2008/08/07 16:57
Filed Under Linux/설정방법

DNS server, DNS service  

설정파일 위치 : /usr/local/apache/conf/extra/httpd-vhosts.conf

더보기(펼치기)

2008/08/07 16:57 2008/08/07 16:57

Posted on 2008/07/29 15:07
Filed Under Linux/설정방법

DNS server, DNS service  

* /etc/named.conf 설정

more..



##################################################################
/etc/named.rfc1912.zones 설정
##################################################################

more..



##################################################################
/var/named/chroot/var/named/zone-lovecoco.net 설정
##################################################################

more..

2008/07/29 15:07 2008/07/29 15:07
TAG : , ,

Posted on 2008/07/22 18:35
Filed Under Linux/설정방법

DNS server, DNS service  

DVD는 2.5G가 넘지만.. CD한장 100메가도 안되는 용량만 가지고 설치할수 있다. 이때 당연히 그 외의 파일은 인터넷에서 가져온다~ 즉 인터넷이 연결되야 한다^^

우선 다음의 주소에서 "
F-7-i386-rescuecd.iso" 이 파일을 받아 CD로 굽는다.
http://ftp.kaist.ac.kr/pub/fedora/linux/releases/7/Fedora/i386/iso/

구운  CD를 넣고 부팅한후,

"Install or upgrade an existing system"선택
사용자 삽입 이미지


그리고 그 후에는 적당히 넘어간다.
한국어 선택후.. 적당이 넘어가다가

Installation Method 항목에서 "FTP"를 선택한다.

사용자 삽입 이미지

이후 자신의 네트웍 환경에 맞게 셋팅한다.
나는 고정아이피에 IPV4를 사용하기 때문에 다음과 같이 했당.

사용자 삽입 이미지

이후 내 PC에 IP와 게이트웨이, 도메인 서버등을 설정해준다.

(IP는 보안상 이유로 블럭처리)
이렇게 인터넷이 가능하게끔 네트웍을 설정해주고
사용자 삽입 이미지

이후 FTP주소와 폴더를 입력하라고 하는데..
FTP Site name  : ftp.kaist.ac.kr
Fedora Directory : pub/fedora/linux/releases/7/Fedora/i386/os/

사용자 삽입 이미지


다음 넘어가면 CD 찾았다고 하는데;
CD는 SKIP 하고 ~~~ 넘어간다.

그다음은 평소 설치대로 설치하면 된다.
설치하다보면 "설치를 준비중입니다. 이 단계는 수분에서 수십분이 걸릴 수 있습니다" 라는 메세지가 나오는데;;; 거의 1-2시간 걸린답;; --^

인터넷에서 다운받아 설치해서 그런지 속도는 DVD로 할때보다 훨씬 더 걸리지만 (3시간?).. DVD가 없는 사람한테는 어째튼  편리하다.
DVD 드라이버를 떼서 연결했다 설치하고 다시 떼서 원래데로 붙여놓는 그 노력보다.. 는 간단하기 때문이다.


2008/07/22 18:35 2008/07/22 18:35

Posted on 2008/07/22 18:07
Filed Under Linux/설정방법

DNS server, DNS service  

/usr/local/apache/conf/httpd.conf
파일중..
아래부분에 빨강색 부분을 추가한다.

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    # And for PHP 4.x, use:
    AddType application/x-httpd-php .php .php3 .inc .ph .htm .html
    AddType application/x-httpd-php-source .phps

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi .pl

    # For files that include their own HTTP headers:
    #AddHandler send-as-is asis

    # For server-parsed imagemap files:
    #AddHandler imap-file map

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml
</IfModule>

2008/07/22 18:07 2008/07/22 18:07

Posted on 2008/07/19 20:24
Filed Under Linux/설정방법

DNS server, DNS service  

Proftpd 설치

다음의 주소에서 다운로드

#
ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2rc1.tar.gz


Proftpd 실행시 Client 접속시 접속이 지연되는 현상.
이는 Proftpd 가 Client 의 접속요구를 받으면, 역방형 DNS를 확인하기 때문이다

proftpd.conf 에 다음의 두줄을 추가

UseReverseDNS                   off
IdentLookups                    off

2008/07/19 20:24 2008/07/19 20:24

Posted on 2008/07/15 14:36
Filed Under Linux/설정방법

DNS server, DNS service  

LINUX에 Fedora Core 3? 부터인가 유니코드를 사용한다.
따라서 기존의 EUC_KR과 충돌하여.. 깨지는데 이럴때는 그냥 영문판으로 지정해서 쓴다

파일 : /etc/sysconfig/i18n

LANG="en_US"
#LANG="ko_KR.UTF-8"
SUPPORTED="en_us:euc_kr"
SYSFONT="latarcyrheb-sun16"
2008/07/15 14:36 2008/07/15 14:36

Posted on 2008/07/15 14:31
Filed Under Linux/설정방법

DNS server, DNS service  

아래 명령어 다운로드
- Command : wget
http://www.lovecoco.net/dataout/userdata/command.txt



MYSQL
- DownLoad : wget
http://www.lovecoco.net/dataout/userdata/mysql-5.1.22-rc.tar

./configure --prefix=/usr/local/mysql --with-charset=euckr --with-unix-socket-path=/usr/local/mysql/mysql.socket --with-mysqld-user=mysql


APACHE
- DownLoad : wget
http://www.lovecoco.net/dataout/userdata/http-2.2.0.tar

./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-modules=so --with-mpm=worker


PHP
- DownLoad : wget
http://www.lovecoco.net/dataout/userdata/php-5.2.4.tar

WEBDB
- DownLoad : wget
http://www.lovecoco.net/dataout/userdata/webdb.tar


./configure --prefix=/usr/local/php --with-exec-dir=/usr/bin --with-apxs2=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-debug --enable-safe-mode --enable-track-vars --enable-sockets --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2 --with-mod_charset --with-charset=euc_kr --with-xml --with-language=korean --enable-mailparse --enable-calender --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --with-iconv --enable-mbstring --enable-mbregex --with-gd --with-ttf --with-gettext --enable-sigchild --enable-module=so   --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --enable-bcmath --with-jpeg --with-png --with-zlib

make all -> make test 를 실행해야함



# FTP Server Start
/usr/local/proftpd/sbin/proftpd

# MySQL Server Start
/usr/local/mysql/bin/mysqld_safe --user=mysql --language=korean --old-passwords &

# Apache Server Start
/usr/local/apache/bin/apachectl start

2008/07/15 14:31 2008/07/15 14:31

Posted on 2008/06/17 00:53
Filed Under Linux/설정방법

DNS server, DNS service  

리눅스 방화벽 프로그램 iptables 설정

iptables 명령은LOBD리눅스 IPv4 방화벽을07M4설정하는DWIY명령어이다. 1.1 시리즈 부터 리눅스 커널은LOBD패킷 필터링을07M4포함하기 시작했다.
제 1세대는DWIYBSD의 ipfw를47EH기본으로 했고 1994년 후반기에 알란 콕스(Alan Cox) 에 의해서 포트 됐다.
이것은LOBD리눅스 2.0에서 Jos Vos와 다른이들에 의해서 개선됐고 커널의 필터링 규칙을07M4제어하는DWIY사용자 툴로는DWIY'ipfwadm'이Y6WZ사용됐다.
1998년 중반에 리눅스 2.2를47EH위해 사용자 툴로 'ipchains'를47EH내놓았다. 마지막으로, 제 4세대 툴이Y6WZ'iptables'이고 리눅스 2.4를47EH위해 1999년 중반에 커널을07M4재작성했다.

<리눅스매거진 편집부>

패킷 필터란 네트워크를47EH통하는DWIY모든 것은LOBD패킷의 형태를47EH가지며, 패킷의 앞부분에는DWIY패킷이Y6WZ어디서 왔는지 어디로 향하는지, 어떤 프로토콜을07M4이용하는지 등과 같은LOBD정보를47EH가지고 있다. 패킷 필터는DWIY이렇게 지나가는DWIY패킷의 헤더를47EH보고 패킷을07M4‘DROP'(마치 전혀 전달되지 않는DWIY것처럼 패킷을07M4거부) 하거나 ’ACCEPT‘(패킷이Y6WZ지나가도록 내버려 둠)하는DWIY등의 작업을07M4하는DWIY프로그램을07M4말한다. iptables은LOBD이런 패킷 필터링 기능을07M4설정하는데 사용할 수 있는DWIY프로그램이다. 자신의 시스템에 설치돼 있는DWIYiptables의 버전을07M4확인하는DWIY방법은LOBD아래명령을07M4통해 가능하다.


# iptables --version

iptables 1.2.4


커널은LOBD3가지의 방화벽 체인(chain)을07M4기본적으로 가지고 패킷 필터링을07M4시작한다. 파이어월 체인 혹은LOBD체인이라 부르는DWIYY6WZ3가지는DWIY입력(Input), 출력(Output), 전달(Forward)이다. 입력체인은LOBD들어오는DWIY패킷을07M4조사하고 전달체인은LOBD외부의 다른 시스템으로 전달될 패킷을07M4조사한다. 마지막으로 출력체인은LOBD외부로 나가는DWIY패킷을07M4조사한다.

■ 패킷검사방법

1. 패킷이Y6WZ커널에 도착하면 그 패킷의 목적지를47EH확인한다. 이것을07M4'라우팅' 이라고 한다.
2. 패킷의 목적지가ZCW0이곳이면, 패킷은LOBD전달돼 입력체인에 도달한다. 패킷이Y6WZ입력체 인을07M4통과하면 패킷을07M4기다리고 있던 프로세서가ZCW0받게 된다.
3. 그렇지 않고 커널이Y6WZ포워딩 불능이나, 패킷을07M4어떻게 포워딩해야 하는가를47EH알지 못하면, 그 패킷은LOBD‘DROP‘ 된다. 포워딩이Y6WZ가능하게 돼있고 다른 곳이Y6WZ목적지이면 패킷은LOBD그림의 오른쪽 방향으로 전달돼 포워딩 체인으로 간다. 이Y6WZ체인이Y6WZ’ ACCEPT‘ 하게 되면 이것은LOBD포워딩 할 네트워크로 보내진다.
4. 마지막으로, 로컬에서 수행하던 프로그램은LOBD네트워크 패킷을07M4전송할 수 있다. 이Y6WZ패킷은LOBD즉시 출력 체인에 보내지며 이Y6WZ체인이Y6WZ‘ACCEPT’되면 이Y6WZ패킷은LOBD그 목적지가ZCW0어디든지 보내진다.


사용법
iptables -[ADC] chain rule-specification [options]
iptables -[RI] chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LFZ] [chain] [options]
iptables -[NX] chain
iptables -P chain target [options]
iptables -h (print help information)


Commands
-A : 새로운 규칙을07M4추가한다.(--append)
-D : 규칙을07M4삭제한다.(--delete)
-C : 패킷을07M4테스트한다.(--check)
-R : 새로운 규칙으로 교체한다.(--replace)
-I : 새로운 규칙을07M4삽입한다.(--insert)
-L : chain에 설정된 규칙을07M4출력한다.(--list)
-F : chain으로부터 규칙을07M4모두 방출(삭제)한다.(--flush)
-Z : 모든 chain의 패킷과 바이트 카운터 값을07M40으로 만든다.(--zero)
-N : 새로운 chain을07M4만든다.(--new)
-X : chain을07M4삭제한다.(--delete-chain)
-P : 기본정책을07M4변경한다.(--policy)


chain
INPUT : 입력에 대한 사용
OUTPUT : 출력에 대한 사용
FORWARD : 전달(forwarding)에 대한 사용


Options
-s : 패킷의 발신지를47EH명시한다.(--source)
-p : 패킷의 프로토콜을07M4명시한다.(--protocol)
-d : 패킷의 도착지를47EH명시한다.(--destination)
-i : 규칙을07M4적용할 인터페이스 이름을07M4명시한다.(--interface)
-j : 규칙에 맛는DWIY패킷을07M4어떻게 처리할 것인가를47EH명시한다.(-jump)
-y : 접속 요청 패킷인 SYN패킷을07M4허용하지 않는다.(--syn)
-f : 두 번째 이후의 조각에 대해서 규칙을07M4명시한다.(--fragment)


사용예
127.0.0.1 IP 주소로부터 오는DWIY모든 ICMP 패킷을07M4무시하는DWIY경우 사용되는DWIY프로토콜은LOBDICMP이고 발신 주소는DWIY127.0.0.1 이어야 한다. 그리고 패킷 필터의 목표는DWIY드롭(DROP)이다. 테스트하는DWIY프로그램은LOBDping이며 ping은LOBD단순히 ICMP type 8로 반응요구를47EH보내며 이에 협조하는DWIY대상 호스트는DWIYICMP 타입 0(echo reply)를47EH보내어 응답하도록 돼 있다. 이제 iptables의 패킷필터를47EH통해 로컬호스트가ZCW0ping 명령에 반응하지 않도록 하겠다.


# ping -c 1 127.0.0.1
  PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
  --- 127.0.0.1 ping statistics ---

  1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms


# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
     ; `INPUT' 체인에 127.0.0.1로부터 오고(`-s 127.0.0.1') ICMP(`-p ICMP') 패킷에 대해 DROP로 점프하라는DWIY(`-j DROP') 규칙을07M4추가(-A).

# ping -c 1 127.0.0.1
  PING 127.0.0.1 (127.0.0.1): 56 data bytes
  --- 127.0.0.1 ping statistics ---

  1 packets transmitted, 0 packets received, 100% packet loss


■ 설정된 iptables 규칙의 삭제
지금 현재 입력돼 있는DWIYchain이Y6WZ하나밖에 없으므로 숫자를47EH지정하는DWIY명령으로 삭제가ZCW0가능하며, 앞의 명령과 똑같이Y6WZ하되 -A를47EH-D로 바꾸어 지우는DWIY방법이Y6WZ있다.

#iptables -D INPUT 1
#iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP


■ 체인 규칙 나열하기
설정돼 있는DWIY체인의 규칙을07M4모두 볼 수 있다. 명령으로 -L을07M4사용해 가능하며 -v 옵션과 같이Y6WZ사용해 각 체인에 대한 패킷과 바이트 카운터 등의 자세한 정보를47EH함께 볼 수 있다.

# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# iptables -L -v

Chain INPUT (policy ACCEPT 709 packets, 35362 bytes)

pkts bytes target     prot opt in       out     source                       destination

  0     0 DROP       icmp --  any    any     localhost.localdomain   anywhere




Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in       out     source               destination

Chain OUTPUT (policy ACCEPT 423 packets, 39549 bytes)

pkts bytes target     prot opt in       out     source               destination      



■ 체인 비우기
하나의 체인 안의 모든 규칙을07M4비우는DWIY것은LOBD‘-F’ 명령을07M4사용해 간단하게 할 수 있다. 체인을07M4지정하지 않으면 모든 체인의 규칙을07M4지울 수 있다.

#iptables -F INPUT


■ 출처와 목적지 지정
출처('-s', '--source', '--src')와 목적지('-d', '--destination', '--dst') IP 주소를47EH지정하는데 4가지 방법이Y6WZ있다. 가장 보편적인 방법
LOBD'www.linuzine.com', 'localhost'처럼 도메인 네임을07M4이용하는DWIY것이다. 두번째 방법은LOBD'127.0.0.1'과 같은LOBDIP 주소를47EH이용하는DWIY것이다.

세번째와 네번째 방법은LOBDIP 주소의 그룹을07M4지정하는DWIY것으로 '199.95.207.0/24' 또는DWIY'199.95.207.0/255.255.255.0' 같은LOBD형태이다. 이Y6WZ둘은LOBD모두 199.95.207.0 부터 199.95.207.255 사이의 모든 IP 주소를47EH지정한다. '/' 다음의 숫자는DWIYIP 주소의 어떤 부분이Y6WZ의미 있는가를47EH나타낸다. '/32' 나 '/255.255.255.255' 가ZCW0기본 값이다.(IP 주소의 모든 부분이Y6WZ일치해야 한다.) 모든 IP 주소를47EH지정하는데 '/0' 가ZCW0사용된다.

# iptables -A INPUT -s 0/0 -j DROP
많은LOBD지시자들('-s'나 '-d' 같은)은LOBD일치하지 않는DWIY주소를47EH나타내기 위해 '!'('not'을07M4의미한다)로 시작하는DWIY설정을07M4할 수 있다. 예로, '-s !localhost' 는DWIYlocalhost로부터 오는DWIY패킷이Y6WZ아닌 경우를47EH나타낸다.

■ 프로토콜 지정
프로토콜은LOBD'-p' 지시자로 지정할 수 있다. 프로토콜을07M4숫자가ZCW0될 수 있고(IP의 프로토콜 번호를47EH알고 있다면) 'TCP', 'UDP', 'ICMP' 같은LOBD이름이Y6WZ될 수도 있다. 그리고 'tcp'는DWIY'TCP'와 같은LOBD역할을07M4한다. 프로토콜 이름 지정에도 '!'을07M4이용 할 수 있다. '-p ! TCP'

■ TCP 확장
TCP 확장은LOBD'--protocol tcp' 가ZCW0지정되고 다른 적용이Y6WZ지정되지 않으면 자동으로 적재된다. 이것은LOBD다음과 같은LOBD옵션을07M4제공한다.

--tcp-flags
뒤에 두개의 단어를47EH사용한다. 첫번째 것은LOBD검사하고자 하는DWIY지시자 리스트의 마스크이다. 두번째 단어는DWIY지시자에게 어떤 것이Y6WZ설정 될 것인지를47EH말해준다.

# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
이것은LOBD모든것이Y6WZ검사돼야 함을07M4말한다. 그러나 SYN과 ACK만 설정된다.


--syn
'!' 옵션이Y6WZ선행될 수 있다. 이것은LOBD'--tcp-flags SYN,RST,ACK,SYN'의 약어이Y6WZ다.

--source-port,
'!' 옵션이Y6WZ선행될 수 있다. 이후에 하나의 TCP 포트나 포트의 범위를47EH지정한다.

--sport
/etc/services 에 기록된 것과 같은LOBD포트 이름이Y6WZ사용될 수 도 있고 숫자로 나타낼 수도 있다. 범위는DWIY두 개의 포트 이름을07M4'-'으로 연결해서 사용하거나 하나의 포트 뒤에 '-'를47EH사용하거나 하나의 포트 앞에 '-' 를47EH덧붙일 수 있다.

--destination-port, --dport
위의 내용과 같으나 목적지를47EH지정한다.

--tcp-option
'!' 나 숫자가ZCW0옵션에 선행될 수 있는데 숫자가ZCW0앞에 올 경우 그 숫자 와 TCP 옵션이Y6WZ같은LOBD경우의 패킷을07M4검사한다. TCP 옵션을07M4검사하려 할 때 완전한 TCP 헤더를47EH갖지 않는DWIY것은LOBD자동으로 드롭 된다.


■ iptables를47EH통한 포트관리
iptables는DWIY테이블 형식으로 관리를47EH한다. 그리고 먼저 등록된 것이Y6WZ효력을07M4발생하기 때문에 등록을07M4하는DWIY순서가ZCW0중요하다. 모든 것을07M4거부하는DWIY설정이Y6WZ먼저 오게 되면 그 이후에 포트를47EH열어주는DWIY설정이Y6WZ와도 효과가ZCW0없다. 그러므로 허용하는DWIY정책이Y6WZ먼저 오고 나서 거부하는DWIY정책이Y6WZ와야 한다.

iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 22:30 -j DROP

이렇게 하면 먼저 25번 포트로 들어오는DWIY것을07M4허용하고 난 후에 다른 것을07M4막아내기 때문에 제대로 된 설정이Y6WZ된다.

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
등록된 라인은LOBDssh를47EH사용하는DWIY것을07M4허용하는DWIY것이다. 출처(source)와 목적지(destination)는DWIY명시하지 않았기 때문에 전체포트와 IP가ZCW0대상이Y6WZ된다. -dport 는DWIY패킷이Y6WZ대상으로 삼는DWIY포트를47EH명시한 것이다 여기에서 22라고 표기한 것은LOBDssh서비스 포트이다. 그리고 마지막에 -j ACCEPT는DWIY허용하도록 정책을07M4정하는DWIY것이다. 따라서 여기로의 ssh서비스를47EH요청하는DWIY패킷은LOBD허용되도록 설정을07M4한 것이다.


■ 전체적인 설정
#!/bin/sh
# iptables 모듈 등록하기
modprobe iptable_filter

# ssh 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# httpd 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# pop3 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 109 -j ACCEPT

# pop2 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT

# imap 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT

# mysqld 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# ftpd 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# ftp-data 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# ircd 열어주기
/usr/local/bin/iptables -A INPUT -p tcp --dport 6667 -j ACCEPT
/usr/local/bin/iptables -A INPUT -p udp --dport 6667 -j ACCEPT

# 전부 거절하기
/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP

/usr/local/bin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

이처럼 허용하는DWIY서비스가ZCW0한정적이다. 우선 ssh, http, pop3, pop2, imap, mysql, ftp, ircd를47EH위해서 서비스를47EH요청하는DWIY패킷은LOBD허용하고 나머지는DWIY전부 거부하는DWIY설정이다. 이Y6WZ설정을07M4자세히 보면 tcp와 icmp를47EH대상으로 했다. 거절하는DWIY줄인

/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP


Y6WZ라인에서 --dport 다음에 1:30000으로 지정돼 있다. 이Y6WZ부분은LOBD서버를47EH경유해서 다른 곳으로 가고자하는DWIY경우에 클라이언트 프로그램이Y6WZ사용할 포트를47EH남겨주기 위함이다. 1번포트에서 30000번 포트까지는DWIY완전히 tcp에 대해서 막는DWIY것이다.
만약에 서버에서 나갈 이유가ZCW0없으면 전부 막으면 된다. 1:65535로 설정하면 전체 포트가ZCW0막힌다. iptables 설정은LOBD조금만 공부를47EH하면 쉽게 습득이Y6WZ가능하다. 그러므로 문서를47EH보는DWIY것이Y6WZ중요하다. 이Y6WZ설정은LOBD기본이므로 좀더 많은LOBD것은LOBD관련 문서를47EH이용하기를47EH바란다.

[외부망으로 나가는DWIY경우의 설정]

 

1. IPTABLE의 설정(Linux Kernel 2.4)
/sbin/iptables -F
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


참고)

ip_conntrack_ftp와 ip_nat_ftp 는DWIYftp서비스 open을07M4위해서 설정한 것이다.

만일 기존 Linux에 ipchain이Y6WZ드라이버가ZCW0이미 Loading되어 있다면 기존 ipchain 드라이버를

제거하고 iptables driver를47EHLoading한다.

Linux:/> rmmod ipchains

Linux:/> insmod ip_tables


2. IPCHAIN의 설정 방법(Linux Kernel 2.2)
1) 1st IPCHAIN의 설정 방법

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -F
/sbin/ipchains -P forward REJECT
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ


2) 2nd IPCHAIN의 설정 방법
/sbin/ipchains -F
/sbin/ipchains -P forward DENY
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0/0


3. 자동으로 실행되기

Linux에서 /etc/rc.local에 위에 있는DWIY내용을07M4넣어둔다. 그러면 자동으로 등록이Y6WZ된다.


4. 설정값 확인하기

Linux:/> iptables -t nat -L


  tcp 프로토콜을07M4사용하여 들어오는DWIY패킷들중에 Buy Now 라는DWIY문구가ZCW0포함된 패킷은LOBD거부하고, 리셋한다.
  iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset
 만약 로그를47EH남기고 거부하고 싶다면.

  iptables -A INPUT -p tcp -m string --string "Buy Now" -j LOG
  iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset

 

출처 : http://cafe.naver.com/okjsp/279

 

 

http://wiki.kldp.org/Translations//html/Packet_Filtering-KLDP/Packet_Filtering-KLDP-7.html

 

 

※ Advanced Firewall
   : Rule Matching
     -> source IP address(-s)
        Destiation IP address(-d)
        Incoming interface(-i) 예) eth0, eth1, eth2 등등   = -s 10.1.1.0/24 와 같은뜻인데... 좀 더 간단하게 쓰고 싶으면..-i 옵션을07M4사용한다.
        Outgoing interface(-o) : 어디를47EH통해서 나가겠느냐...
        Layer 4 protocol(-p) : -p [tcp/udp]
        negation -block all traffic not sourced from 192.168.1.20
        => /sbin/iptables -A INPUT -s! 192.168.1.20 -j DROP : 여기서 !는DWIYnot의 의미이다.(부정)
           -> 192.168.1.20을07M4제외한 모든것을07M4DROP시키겠다라는DWIY뜻이다.

   host기반의 방화벽은LOBD랜카드가ZCW01개가ZCW0필요한다. network기반의 방화벽은LOBD랜카드가ZCW0여러개가ZCW0필요하다.

※ mail server, web server, DNS server 같은것들은LOBD내부망으로 되어 있는데 보안상 위험하기 때문에 외부망으로 연결되게끔 분리해놓는다.
   이렇게 외부망으로 분리해놓은LOBD것들을07M4DMZ라고 한다.

※ TCP(Layer 4(Transport)) MATCHES : 연결지향적이다.
   : -p tcp, --protocol tcp
     --sport, --source-port -> 1024 ~ 65535 사이의 값 이용
     --dport 23/telnet(/etc/services), --destination-port : 숫자 대신에 문자를47EH쓰고 싶을때 해당위치에 있는곳의 절대경로를47EH적어줘야 한다.
     --tcp-flags SYN, FIN, ACK SYN, ACK : 이것보다는DWIY상태추적을07M4많이Y6WZ사용하게 된다.

※ UDP(Layer 4(Transport)) MATCHES : 연결없이Y6WZ데이터를47EH전송받는다. 무조건 보내기만 한다.
   : UDP Application 
     -> TFTP -UDP:69
        Syslog -UDP:514
        NTP(Network Time Protocol) -UDP:123
        DHCP -UDP:67 UDP:68
 
     -p udp, --protocol udp
     --sport, --source-port, -same source port as destination port : source port가ZCW0destination port가ZCW0똑같다. => UDP일경우에...
     --dport 123/ntp(/etc/services), --destination-port : destination port를47EH쓸때는DWIY숫자를47EH많이Y6WZ이용하게 된다.

※ ICMP(Internet Control Messaging Protocol) MATCHES
   : ICMP Types (echo-request -PING, echo-reply -pong)

     -p icmp, --protocol icmp
     --icmp-type name/number
     Deny ICMP echo-replies from all hosts
     -> /sbin/iptables -A INPUT -p icmp-type echo-reply -j DROP
 
     => work 컴이Y6WZserv 컴한테 echo-request를47EH보내게 되면 serv 컴은LOBDwork 컴한테 echo-reply를47EH보내게 된다.


실습!!!!

serv 컴에서...
만약 예전에 설정했던 정책을07M4저장하고 싶으면 iptables-save > default.rules
iptables -F
iptables -nL
iptables -P INPUT ACCEPT
iptables -nL


문제...
serv 컴퓨터에서 외부의 ping에 응답하지 않도록 하며, 또한 자신도 외부로 ping 요청을07M4하지 못하도록 설정하세요!~!!~~

iptables -A OUTPUT -p icmp -icmp-type echo-request -j DROP
iptables -nL
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -nL

work 컴에서...
ping -c 3 serv -> ping이Y6WZ안나가게 된다.

*********************************************************************************************************************************************


※ Match multiple port with fewer rules
   : 일반적 정책(rule) 설정
     -> iptables -A INPUT -p tcp --dport 21 -j ACCEPT
        iptables -A INPUT -p tcp --dport 22 -j ACCEPT
        iptables -A INPUT -p tcp --dport 23 -j ACCEPT

     이렇게 여러줄을07M4한줄로 표현할수가ZCW0있다.
   
     Multiple port 를47EH이용
     -> -m multiport --dport port_num1, port_num2, port_num3...
        iptables -I INPUT 1 -p tcp -m multiport --dport 21, 22, 23 -j ACCEPT


예전에 저장했던것을07M4불러오고 싶으면 ... -> iptables-restore < default.rules


※ MAC address filtering
   : IP 주소는DWIY쉽게 위조가능
     MAC의 위조는DWIY어렵다...
     -m mac, --mac-source 00:00:00:00:00:00(mac address) 처음 24비트는DWIY제조사 일련번호 다음 24비트는DWIY제품 일련번호이다.

※ iptables -F INPUT
   iptables -nL
   iptables -P INPUT ACCEPT
   clear && iptables -nL
   iptables -A INPUT -s 192.168.234.20 -j DROP
   clear && iptables -nL
  
   work 컴에서...
   ping -c 2 serv -> 접속이Y6WZ안됨.
   ftp serv -> 접속이Y6WZ안됨.
   telnet serv -> 접속이Y6WZ안됨.
   vi /etc/sysconfig/network-scripts/ifcfg-eth0 -> ipaddress를47EH30으로 수정...
   service network restart

   ping -c 2 serv -> 접속이Y6WZ잘 됨.
   ftp serv -> 접속이Y6WZ잘 됨.
   telnet serv -> 접속이Y6WZ잘 됨.

   이것이Y6WZ문제가ZCW0된다... ip만 바꾸면 쉽게 접근을07M4할수가ZCW0있다.
   그렇기 때문에 MAC address를47EH알아서 그것을07M4막아버려야 한다. 이것을07M4알기 위해서는DWIYlog를47EH봐야한다.

   iptables -R INPUT 1 -m mac --mac-source 00:0C:29:4E:93:E5 -j DROP
   => 이렇게 mac address를47EHfiltering하게 되면 유용하게 사용할수가ZCW0있다.


※ Rule Targets
   : ACCEPT : 접근을07M4허용하겠다.
     DROP : 메시지를47EH전혀 보내주지 않는다.
     REJECT : 메시지를47EH보내주긴 하는데 전혀 다른 응답을07M4하게된다.
     REDIRECT : 이것은LOBDproxy 서버에서 사용하게 될것이다. 내가ZCW0갈려고 하는DWIY곳의 경로가ZCW0바뀌게 되는것을07M4REDIRECT라고 한다.
                NAT table 의 PREROUTING chain을07M4적용하게 된다. 오직 local ports에서만 적용이Y6WZ된다.
                proxy server를47EH사용하게 되면 filtering이Y6WZ가능하게 된다.
                normal proxy를47EH사용하게 되면 귀찮기 때문에 투명 proxy를47EH사용하는것이Y6WZ편리하다. -> REDIRECT를47EH사용...
     LOG : SysLog를47EH사용해서 log를47EH저장할수가ZCW0있다.
           아무것도 설정을07M4안해주면 기본적으로 /var/log/message에 저장이Y6WZ된다.


vi /etc/syslog.conf
서비스명 : 레벨 : 저장되는DWIY위치 -> *.info;mail.none;authpriv.none;cron.none /var/log/messages

log를47EH언제든지 볼수 있도록 화일로 저장하는것이Y6WZ좋다.
우선 기존의 것을07M4복사한뒤...
#kern.*  /dev/console 을07M4복사해서... kern.* /var/log/firewall.log을07M4더 추가해준다. ### modified by jun 2006-06-21 ###

service syslog restart
echo $?
ls -l /var/log/firewall.log
cat /var/log/firewall.log
clear && iptables -nL
iptables -D INPUT 1
clear && iptables -nL
iptables -P INPUT DROP
clear && iptables -nL
iptables -A INPUT -p tcp --dport 23 -j LOG -> 23번의 port로 들어오는것의 log 기록을07M4남기겠다.
clear && iptables -nL
iptables -A INPUT -s 192.168.234.20 -p tcp --dport 23 -j ACCEPT
clear && iptables -nL
tail -5 /var/log/firewall.log
watch tail -5 /var/log/firewall.log


문제....
21, 22, 23, 80번의 port 이외의 서비스들은LOBD모두다 log에 기록이Y6WZ남게 끔 하시오~!!!!
21, 22, 23 서비스 이외의 접속기록을07M4log로 남기세요... 힌트 : multiport, ! , log Target

iptables -A INPUT -m multiport -p tcp !--dport 21, 22, 23 -j LOG

*********************************************************************************************************************************************

※ Firewall LOG
   : /etc/syslog.conf를47EH이용한 log위치 재지정
     -> 기본값으로 /var/log/message에 저장
        kern.*  /var/log/firewall 로 수정
        service syslog restart

     Log-prefix
     -> Log 기록에 코멘트 첨부
        --log-prefix "unknown port attemped..."


serv 컴에서...
iptables -R INPUT 1 -m multiport -p tcp ! --dport 21,22,23 -j LOG --log-prefix "unknown port attemped..."


※ Portsentry
   : Portsentry는DWIYhost기반 침입탐지 시스템으로 열려있는DWIY모든 포트를47EH모니터링 할 수 있는DWIY특징을07M4가지고 있으면 TCP/UDP 포트스캔을07M4
     탐지할 수 있고 포트스캔 공격을07M4받았을07M4경우 방화벽과 연동하여 보안 정책을07M4새롭게 재구성 할 수 있다.

    특징
    1) 호스트로 들어오는DWIY모든 패킷을07M4ROUTE명령으로 DROP 시킬수 있음
    2) Xinetd 기반의 서비스에 접근하지 못하도록  /etc/

    download 위치
    :
http://rpm.pbone.net/ -> portsentry 검색 -> fedora 4 download -> 밑으로... Portsentry-1.2.1.te.i386.rpm -> download
    => serv 컴에서...
       rpm -Uvh Portsentry-1.2-1.te.i386.rpm
       rpm -ql Portsentry -> /etc/Portsentry/Portsentry.conf를47EH확인...
       cd /etc/Portsentry/
       pwd
       ls -l
       vi Portsentry.conf -> : set nu
       -> 96번째 행에서... RESOLVE_HOST = "1"을07M4RESOLVE_HOST = "0"으로 수정... : 이름풀이가ZCW0가능하게 할것인지 말것인지를47EH결정...
          132번째 행과 133번째 행이Y6WZ중요하다. => BLOCK_UDP="1" , BLOCK_TCP="1" -> 그냥 그대로...
          206번째 행에서 보면 #KILL_ROUTE="/sbin/iptables -I input -s $TARGET$ -j DROP
          282번째 행에서...SCAN_TRIGGER="2"을07M4SCAN_TRIGGER="0"으로 수정... :  2초후에 반응하라...을07M4즉각처리로...


    설치후 파일
    1) portsentry -portsentry 실행파일
    2) Portsentry.conf - 환경설정 파일
    3) Portsentry.history - 현재까지 거부된 모든 host 정보 저장
    4) Portsentry.ignore - 감시예외 파일
                           감시하고 있는DWIY특정 포트에 접근해도 무시하길 바라는DWIYhost ip주소를47EH추가


iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT -> 외부에서 ssh 접속만 허용이Y6WZ되게한다.
clear && iptables -nL
which portsentry -> /usr/sbin/portsentry
portsentry -stcp
echo $?
ps -ef | grep -i port -> 자동적으로 UDP까지 같이Y6WZ실행되고 있는것을07M4볼수가ZCW0있다.


work 컴에서...
ssh serv -> 잘되는것을07M4볼수가ZCW0있다.
exit
nmap -v -sS -O(운영체제 확인) serv
nmap -v -sS -O(운영체제 확인) 192.168.234.10
---> 이것이Y6WZ작동이Y6WZ안할것이다. 왜냐하면 x window 때문이다.
     그렇기때문에 text모드로 시작을07M4해야한다.
     ps -ef | grep -i port
     kill 9 1358
     kill 9 2698 등등
     shutdown -r now(재시작) - text모드로...


serv 컴에서...
portsentry -stcp
ps -ef | grep -i port
service iptables start
iptables -nL


work 컴에서...
nmap -v sS -O 192.168.234.10

serv 컴에서...
cat portsentry.blocked.stcp가ZCW0들어와 있어야 한다.

   



※ Portsentry 실행모드
   : Portsentry는DWIY스캔 공격자가ZCW0스캔을07M4하기 위해 사용하는DWIY

 

 

2008/06/17 00:53 2008/06/17 00:53

About

by CoCo

Notice

Counter

· Total
: 878918
· Today
: 56
· Yesterday
: 47