Posted on 2017/07/07 15:02
Filed Under Linux/설정방법

DNS server, DNS service  

1. vmware tool 설치
  (open-vm-tools)

2. shrink 실행 
// 명령어 확인
# vmware-toolbox-cmd help disk
// shrink할 대상 list 확인
# vmware-toolbox-cmd disk list
// shrink 실행
# vmware-toolbox-cmd disk shrink 디스크명
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2017/07/07 15:02 2017/07/07 15:02
TAG :

Posted on 2015/04/05 23:51
Filed Under Linux/설정방법

DNS server, DNS service  

** sendmail 설치 및 설정

 

> 설치 

# apt-get install sendmail
# apt-get install sendmail-cf    ;; sendmail 설정

> 제대로 설치되었나 확인

# cd /etc/mail

 

> 내부에서만 메일을 주고 받을수 있게 설정해보자

# vi /etc/mail/sendmail.mc

Line 56 아래와 같이 수정
DAMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl

Line 59 아래와 같이 수정
DAMON_OPTIONS('Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl

# m4 sendmail.mc   ;; 변경된 값 적용

 

> 접근할 수 있는 IP 대역 설정 추가

 

# vi /etc/mail/access 아래 부분 추가

127.0.0.1 RELAY 192.168.0 RELAY ;; 내부 아이피에서는 허용 ;; 공인 아이피가 있다면 같이 추가해줌 # makemap hash access < access ;; 적용

> sendmail 재시작

 

# service sendmail restart

 

  

** sendmail이 가긴 가는데 너무 느리게 갈 때

 

> sendmail error log 확인

 

# vi /var/log/mail.err

아래 내용이 있는지 확인
My unqualified host name (localhost) unknown;; sleeping for retry

 

host name을 못 찾겠다 하지만 메일은 보내주겠다는 내용인 것 같음.

 

> host name 추가

# vi /etc/hots

127.0.0.1    localhost.localdomain localhost (yourhostname)

 

 

 

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2015/04/05 23:51 2015/04/05 23:51

Posted on 2015/03/31 10:12
Filed Under Linux/설정방법

DNS server, DNS service  

Fail2Ban (with iptables) And Asterisk


Fail2Ban


Fail2Ban is a limited intrusion detection/prevention system. It works by scanning log files and then banning IPs based on the entries in those logs. Note that Digium is moving away from writing security information to log files, and is now using AMI events. Consider fail2ban a short-term solution only.

You can get Fail2Ban, as well as more documentation, at www.fail2ban.org. At the time this is being written, the current release is 0.8.4.

Fail2Ban With Asterisk


The following describes how to setup Fail2Ban to protect an Asterisk PBX from SIP brute force attempts and scans utilizing the iptables firewall.

SECURITY NOTE: fail2ban is rather limited in its ability to detect attacks against asterisk. 
More info http://forums.asterisk.org/viewtopic.php?p=159984
Consider a more comprehensive product like the free edition of SecAst www.generationd.com

Easy Install Script for Fail2ban version 0.8.4 / Red Hat


This script was written by Cédric Brohée in order to simplify and accelerate the integration of the solution in a basic Asterisk configuration on Red Hat.
Do not hesitate to read the bash script and make changes to match your own configuration.

Before running it, you will have to do chmod 755.

Download script with new dedicated sources :
Fail2ban.sh_030512.txt



Installing


Log into the system and su - root, or sudo -i to get a root shell on Ubuntu.

CentOS/Red Hat (this method may install an older version of fail2ban):

Install rpmforge or optionally fetch the fail2ban rpm directly from rpmforge.
Install fail2ban using yum:

yum install fail2ban

Debian/Ubuntu:

apt-get install fail2ban

Source installation:
Change directories to /usr/src:

cd /usr/src

Download and extract Fail2Ban (check for newer releases):

wget http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download
tar jxf fail2ban-0.8.4.tar.bz2

Enter the Fail2Ban directory you just extracted:

cd fail2ban-0.8.4

Make sure python and iptables are installed:

CentOS/Red Hat:

yum install python iptables

Debian/Ubuntu:

apt-get install python iptables

Install Fail2Ban:

python setup.py install

Install the Fail2Ban init script (for source installations):

Centos/Red Hat (if you installed via yum/rpm, the init script has already been installed):

cp /usr/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban

For other distributions' init scripts, please refer to documentation specific to them.



Configure Fail2Ban


We need to create a configuration for Fail2Ban so that it can understand attacks against Asterisk.

Create a new filter configuration for Asterisk:

touch /etc/fail2ban/filter.d/asterisk.conf

The contents of /etc/fail2ban/filter.d/asterisk.conf should be the following:

Generic (without using /var/log/asterisk/security)


# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf


[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

# Asterisk 1.4 use the following failregex

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Wrong password
            NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Username/auth name mismatch
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Device does not match ACL
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Peer is not supposed to register
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - ACL error (permit/deny)
            NOTICE.* .*: Registration from '.*' failed for '<HOST>' - Device does not match ACL
            NOTICE.* <HOST> failed to authenticate as '.*'$
            NOTICE.* .*: No registration for peer '.*' \(from <HOST>\)
            NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)
            NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
            NOTICE.* .*: Sending fake auth rejection for device .*\<sip:.*\@<HOST>\>;tag=.*

# In Asterisk 1.8 use the same as above, but after <HOST> add :.* before the single quote. This is because in Asterisk 1.8, the log file includes a port number which 1.4 did not.

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =


If you're having issues with your system not banning properly when the "Registration from" section in your log file contains a quotation mark (") as in this example:

[2011-04-07 17:53:11] NOTICE[7557] chan_sip.c: Registration from '"69106698"<sip:69106698@123.123.123.123>' failed for '123.123.123.123' - No matching peer found


Add the following line, with the others above, in asterisk.conf:

NOTICE.* .*: Registration from '\".*\".*' failed for '<HOST>' - No matching peer found

Recently noticed attacks:

[2011-06-21 17:53:11] NOTICE[7557] chan_sip.c: Registration from '"XXXXXXXXXX"<sip:XXXXXXXXXX@123.123.123.123>' failed for '123.123.123.123' - Wrong Password

Adding the following line will block these attempts:

NOTICE.* .*: Registration from '\".*\".*' failed for '<HOST>' - Wrong password

Using new /var/log/asterisk/security

For this you will need an Asterisk that comes with the new Asterisk Security Framework (Asterisk 10+). You will also need to enable the log output in logger.conf by adding or uncommenting the line "security => security". Likewise, you willl also need to ensure the date format has been changed in logger.conf to "dateformat=%F %T".


# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf


[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

failregex = SECURITY.* SecurityEvent="FailedACL".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
            SECURITY.* SecurityEvent="InvalidAccountID".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
            SECURITY.* SecurityEvent="ChallengeResponseFailed".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
            SECURITY.* SecurityEvent="InvalidPassword".*RemoteAddress=".+?/.+?/<HOST>/.+?".*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =



Next edit /etc/fail2ban/jail.conf to include the following section so that it uses the new filter. This does a 3-day ban on the IP that performed the attack. It is recommend to set the bantime in the [DEFAULT] section so if affects all attacks. It is also recommend to turn on an iptables ban for ssh, httpd/apache, and ftp if they are running on the system. Be sure to edit the sendmail-whois action to send notifications to an appropriate address:


Generic (without using /var/log/asterisk/security)


[asterisk-iptables]

enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath  = /var/log/asterisk/messages
maxretry = 5
bantime = 259200


note: logpath = /var/log/asterisk/messages is for vanilla asterisk, use logpath = /var/log/asterisk/full for freepbx. You can check the name of the log file in logger.conf.

note: if fail2ban still failed to identify login attempts, try the syslog logging way.

Using new /var/log/asterisk/security


[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath  = /var/log/asterisk/security
maxretry = 5
bantime = 259200


Don't Ban Yourself


We don't want to ban ourselves by accident. Edit /etc/fail2ban/jail.conf and edit the ignoreip option under the [DEFAULT] section to include your IP addresses or network, as well as any other hosts or networks you do not wish to ban. Note that the addresses must be separated by a SPACE character!

Asterisk Logging


We must change how Asterisk does its time stamp for logging. The default format does not work with Fail2Ban because the pattern Fail2Ban uses that would match this format has a beginning of line character (^), and Asterisk puts its date/time inside of []. The other formats that Fail2Ban supports, however, do not have this character and can be used with Asterisk.

To change this format, open /etc/asterisk/logger.conf and add the following line under [general] section (You may have to create this before the [logfiles] section). This causes the date and time to be formatted as Year-Month-Day Hour:Minute:Second, [2008-10-01 13:40:04] is an example.


 [general]
 dateformat=%F %T


Then reload the logger module for Asterisk. At the command line, run the following command:

asterisk -rx "logger reload"

If for some reason you do not want to change the date/time format for your normal asterisk logs (maybe you already have scripts that use it or something and do not want to edit them), you can do the following instead:

In /etc/asterisk/logger.conf, add the following line under the [logfiles] section for Asterisk to log NOTICE level events to the syslog (/var/log/messages) as well as its normal log file. These entries in syslog will have a Date/Time stamp that is usable by Fail2Ban.

syslog.local0 => notice

Be sure to reload the logger module for Asterisk — check above for the command to do so. If you chose this option, you will also have to change the/etc/fail2ban/jail.conf setting under the [asterisk-iptables] section for the logpath option to the following:

logpath = /var/log/messages

Turning it On


Now it is time to put fail2ban to work. There are a couple steps we need to do first.

Turn IPTABLES on


By default, iptables allows all traffic. So if we turn it on, it will not block any traffic until Fail2Ban creates deny rules for attackers. You should create your own firewall rules and setup for iptables, but that is beyond the scope of this guide. Just know that Fail2Ban, by default, inserts rules at the top of the chain, so they will override any rules you have configured in iptables. This is good because you may allow all sip traffic in and then the Fail2Ban will block individual hosts, after they have done an attack, before they are allowed by this rule again.

To start iptables, run the following as root:

/etc/init.d/iptables start

Depending on your install, you may or may not have the iptables init script installed. Please refer to an iptables install/setup guide for your distribution for more information.

Turn on Fail2Ban


To start Fail2Ban, run the following as root:

/etc/init.d/fail2ban start

Check It


If both started properly, issue the following command to view your iptables rules:

iptables -L -v

You should see something like the following for the INPUT chain (you will see more if you have other Fail2Ban filters enabled):

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2104K 414M fail2ban-ASTERISK all — any any anywhere anywhere

If you do not see something similar to that, then you have some troubleshooting to do; check out /var/log/fail2ban.log.

If you do not see all your rules, or if you see a different subset of rules after stopping and restarting fail2ban, you may be experiencing the issue described on this page on the Fail2ban talk:Community Portal and may wish to use the suggested fix:

fail2ban.action.action ERROR on startup/restart

I had multiple fail2ban.action.action ERROR on startup/restart. It seems there was a "race" condition with iptables. I solved the problem completely on my system by editing /usr/bin/fail2ban-client and adding a time.sleep(0.1)

def __processCmd(self, cmd, showRet = True):
	beautifier = Beautifier()
	for c in cmd:
		time.sleep(0.1)
		beautifier.setInputCmd(c)


Turn it on for good


If all is well up to this point, let's make sure that fail2ban and iptables restart with the server by issuing the following commands.

Centos/Red Hat:

chkconfig iptables on
chkconfig fail2ban on

Debian/Ubuntu:

update-rc.d iptables defaults
update-rc.d fail2ban defaults

You should now be somewhat protected against SIP scans and brute force attacks!

Try a reboot


Once you have fail2ban working ok, make sure that it continues that way after rebooting the server. On some distributions (including Ubuntu daper) fail2ban won't start after the system reboots because the /var/run/fail2ban directory gets deleted and needs to be re-created. This can be frustrating as there is also nothing that shows up in the logs to indicate what the problem is. If this happens, please see the link below for instructions on modifying the startup script so that it checks for and creates the /var/run/fail2ban directory if needed:

http://informationideas.com/news/2010/04/21/fail2ban-does-not-start-after-reboot/

Additional Information

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2015/03/31 10:12 2015/03/31 10:12

Posted on 2015/03/14 22:42
Filed Under Linux/설정방법

DNS server, DNS service  

Ubuntu 12.04를 설치 후 로그를 확인하고자 /var/log/messages 파일을 찾아보니..... 
어라? 없넹......

인터넷을 뒤져보니...  기본적으로 message 설정이 되어 있지 않넹.!~

보통 rssyslogd 는 기본 설치가 되어 있으므로, 
rsyslogd를 이용하여 설치하자!

 

심각한 오류(Critical Error) 는 /var/log/syslog 파일에 남으나,

그 외, INFO, NOTICE 등의 퍼실러티 등은 기록되지 않고 없어진다.

 

이는 기본 rsyslogd 의 설정 때문이라 한다. (왜!!! 덩치를 가볍게 로그조차 허용안하는게냐!)

 

아래 파일을 root 권한으로 열람한다.

$ sudo vi /etc/rsyslog.d/50-default.conf

...

#*.=info;*.=notice;*.=warn;\

#   auth,authpriv.none;\

#   cron,daemon.none;\

#   mail,news.none      -/var/log/messages

...

 

본문 중에 상기 내용을 찾아 아래와 같이 '#'으로 주석처리 되어 있는 부분을 수정한다.

(기록을 원하지 않는 항목이 있다면 제외하면 되겠다)


*.=info;*.=notice;*.=warn;\

   auth,authpriv.none;\

   cron,daemon.none;\

   mail,news.none      -/var/log/messages

 

(옵션) 또한 마지막 부분의 아래 항목을 '#'으로 주석 처리하자.

(다량의 메시지를 화면에 출력하는 것을 막는다)

 

#daemon.*;mail.*;\

#   news.err;\

#   *.=debug;*.=info;\

#   *.=notice;*.=warn   |/dev/xconsole

 

이후 저장하고(:wq) 종료하면 된다. 

 

(참조)아래를 참조하여 얼마 주기로 로그 파일을 갱신할 지 확인이 가능하다.

$ sudo vi /etc/logrotate.d/rsyslog

...

/var/log/messages

{

    rotate 4

    weekly

    missingok

    notifempty

    compress

    delaycompress

    sharedscripts

    postrotate

        reload rsyslog >/dev/null 2>&1 || true

    endscript

}

 

rsyslogd 데몬 서비스를 재실행 한다.

 

$ sudo /etc/init.d/rsyslog restart

 

이 후 부터는 기존처럼 /var/log/messages 에 로그가 쌓이기 시작한다.

 

 

Linux Log files and usage

 

=> /var/log/messages : General log messages

=> /var/log/boot : System boot log

=> /var/log/debug : Debugging log messages

=> /var/log/auth.log : User login and authentication logs

=> /var/log/daemon.log : Running services such as squid, ntpd and others log message to this file

=> /var/log/dmesg : Linux kernel ring buffer log

=> /var/log/dpkg.log : All binary package log includes package installation and other information

=> /var/log/faillog : User failed login log file

=> /var/log/kern.log : Kernel log file

=> /var/log/lpr.log : Printer log file

=> /var/log/mail.* : All mail server message log files

=> /var/log/mysql.* : MySQL server log file

=> /var/log/user.log : All userlevel logs

=> /var/log/xorg.0.log : X.org log file

=> /var/log/apache2/* : Apache web server log files directory

=> /var/log/lighttpd/* : Lighttpd web server log files directory

=> /var/log/fsck/* : fsck command log

=> /var/log/apport.log : Application crash report / log file

 

출처

http://mcchae.egloos.com/10913183

http://ubuntuforums.org/showthread.php?t=1568706

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2015/03/14 22:42 2015/03/14 22:42

Posted on 2014/11/25 13:49
Filed Under Linux/설정방법

DNS server, DNS service  


출처 : 설랑이의 공부 블러그 - http://srzero.tistory.com/104




중국의 짱개 / 이태리 양키 이런놈들이 자꾸 나의 서버를 침입한다.
이놈들을 막기 위해 방화벽을 설치 후 간단한 Script를 돌려 차단하였다.
iptables를 이용하면 간단하게 막을 수가 있다.

iptables를 이용하여 국가별 접속을 차단하는 방법에는 2가지가 있다.
(1) Kernel을 업데이트 한 후 iptables를 이용하는 방법
(2) Script를 이용하는 방법

나는 아직 Kernel Level에서 접근하는 법을 확실히 익히지 못하여 (2) 번 레벨에서 막도록 하겠다.

[1] 접속한 IP찾기
/var/log/auth.log를 뒤져 보면 아래와 같은 메시지가 뜬다.
1 18:Feb 13 13:14:03 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186
2 22:Feb 13 13:14:07 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186
3 25:Feb 13 13:14:09 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186

위에서 얼핏보면 알겠지만 220.27.62.186 에서 자꾸 접속을 시도한다. 저놈이 도대체 어느나라 놈인지 알아보자.


대충 보아하나 칠레쪽 양키놈이다. 아~~~ 내서버에 뭔 볼일이 있다고 ㅠㅠㅠ 이제 저놈을
막도록 하자. 참고적으로 오늘부터 칠레 놈들이 싫어졌다.

[2] 국가별 Network 정보 Download하기
URL :
http://geolite.maxmind.com/download/geoip/database/ 
위 URL로 가서 가장 최신으로 업데이트 된 Network 정보를 가져온다.
파일(GeoIPCountryWhois.csv) 을 열어보면 아래와 같다.

     1 "1.0.0.0","1.7.255.255","16777216","17301503","AU","Australia"
     2 "1.9.0.0","1.9.255.255","17367040","17432575","MY","Malaysia"
     3 "1.10.10.0","1.10.10.255","17435136","17435391","AU","Australia"
     4 "1.11.0.0","1.11.255.255","17498112","17563647","KR","Korea, Republic of"
     5 "1.12.0.0","1.15.255.255","17563648","17825791","CN","China"
     6 "1.16.0.0","1.19.255.255","17825792","18087935","KR","Korea, Republic of"
     7 "1.21.0.0","1.21.255.255","18153472","18219007","JP","Japan"
     8 "1.22.0.0","1.23.255.255","18219008","18350079","IN","India"
     9 "1.24.0.0","1.31.255.255","18350080","18874367","CN","China"
    10 "1.33.0.0","1.33.255.255","18939904","19005439","JP","Japan"
    11 "1.34.0.0","1.35.255.255","19005440","19136511","TW","Taiwan"
    12 "1.36.0.0","1.36.255.255","19136512","19202047","HK","Hong Kong"

앞에껀 순번 | startNetwork | EndNetwork | ,,, | 국가 이런 순이다. 그럼 위 정보를 파싱하여
Script를 만들어 보도록 하자.

[3] Script 생성하기

#! /bin/bash
echo "########## IP BLOCK Script START ###########"
# iptables init
sudo iptables -P INPUT ACCEPT
sudo iptables -F
echo "IPTABLES INIT SUCCESS"

BLOCK_LIST_FILE=./GeoIPCountryWhois.csv
echo "BLOCK LIST FILE = $BLOCK_LIST_FILE"

# ADD BLOCK TARGET LIST
BLOCK_TARGET_COUNTRY="China|France|Chile"

# REGIST BLOCK IP FOR LOOP
for IP_BANDWIDTH in `egrep $BLOCK_TARGET_COUNTRY $BLOCK_LIST_FILE | awk -F, '{print $1, $2}' | awk -F\"  '{print $2"-"$4}'`

do
   sudo iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP
done

sudo iptables -L
echo "################### IP BLOCK Script END ############# "


위 스크립트는 랑이가 짠것이다. awk를 이해 하고 있다면, 아주 쉽게 만들수 있다.

만약 허용국가만 포함하고 싶을때에는 egrep의 조건을 조금 바꾸어주면된다.

#! /bin/bash
echo "########## IP BLOCK Script START ###########"
# iptables init
sudo iptables -P INPUT ACCEPT
sudo iptables -F
echo "IPTABLES INIT SUCCESS"

BLOCK_LIST_FILE=./GeoIPCountryWhois.csv
echo "BLOCK LIST FILE = $BLOCK_LIST_FILE"

# ADD BLOCK TARGET LIST
ALLOW_TARGET_COUNTRY="Korea"

# REGIST BLOCK IP FOR LOOP
for IP_BANDWIDTH in `egrep -v $ALLOW_TARGET_COUNTRY $BLOCK_LIST_FILE | awk -F, '{print $1, $2}' | awk -F\" '{print $2"-"$4}'`

do
sudo iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP
done

sudo iptables -L
echo "################### IP BLOCK Script END ############# "

노란색으로 표현한 부분은 간단한 grep 명령이므로 별도로 설명안해도 될듯하다.

[4] Script 실행

########## IP BLOCK Script START ###########
IPTABLES INIT SUCCESS
BLOCK LIST FILE = ./GeoIPCountryWhois.csv


DROP       all  --  anywhere             anywhere            source IP range 1.202.0.0-1.207.255.255
.........
.........
.........

DROP       all  --  anywhere             anywhere            source IP range 1.12.0.0-1.15.255.255

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
################## IP BLOCK Script END #############


다됐따 ㅋㅋㅋ 요렇게 하면 무사히 작업이 완료된다.

이 글을 쓰니 괜시리 애국심이 막 불타온다. 나도 언젠간 짱깨 / 양키 놈들 서버 들어가서 해집고 다니는 실력자가 되어야 겠다 .ㅋㅋㅋㅋ 이제 중국|프랑스|칠레 의 나쁜시키들이 안들어오겠지? 낼도 로그를 지켜봐야겠당 ㅋㅋ

                                                             - 2011.02.15 랑이씀 -
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2014/11/25 13:49 2014/11/25 13:49

Posted on 2014/11/25 13:47
Filed Under Linux/설정방법

DNS server, DNS service  

출처 : 우동 블러그 - http://s2kiess.blog.me/30164008171



1. iptables 기본 명령어

 

 1-1. iptables 기본 명령어 목록

    * -L : 적용 되어 있는 정책 목록을 출력한다.

    * -A : 새로운 정책을 추가한다.

    * -I  : 위치를 선택하여 정책을 삽입한다.

    * -R : 위치를 선택하여 정책을 교환한다.

    * -D : 위치를 선택하여 정책을 제거한다.

    

    * -N : 새로운 체인을 만든다.(INPUT, OUTPUT, FORWARD 외에)

    * -P : 체인에 미리 정의되어 있는 정책을 수정한다.

    * -F : 체인으로 부터 규칙들을 지운다.

    * -Z : 체인의 모든 규칙들의 패킷과 바이트 카운트를 0으로 만든다.

    * -X : 비어있는 체인을 제거한다.

 

1-2. iptables 기본 명령어 사용 예제

    * iptables -L : 적용 시킨 정책 목록 출력

    * iptables -D INPUT 1 : INPUT 체인 첫번째 줄에 있는 정책을 삭제한다. 

 

 

2. iptables 제어 옵션 명령어 

 

 2-1. iptables 제어 옵션 명령어 목록

    * -s : 패킷의 송신지를 제어한다.

    * -d : 패킷의 수신지를 제어한다.

    * -j  : 방화벽을 지난 후 패킷의 상태를 제어한다.

    * -p : 프로토콜을 제어한다.

    * --sport : 송신지 포트를 제어한다.

    * --dport : 수신지 포트를 제어한다.

 

 2-2. iptables 제어 옵션 명령어 사용 예제

    * iptables -A INPUT -s 192.168.0.5 -j DROP : 192.168.0.5로 부터 오는 패킷을 모두 차단한다.

    * iptables -A INPUT -d ! 192.168.0.10 -j ACCEPT : 192.168.0.10를 향해 가는 패킷이 아니라면 허용한다.

    * iptables -A INPUT -p TCP -j ACCEPT : TCP 프로토콜 패킷을 모두 허용한다.

    * iptables -A INPUT -p TCP --dport 80 -j DROP : 80번 포트를 향해가는 TCP 패킷을 차단한다.

 

3. 패킷 상세 내역에 따른 제어 옵션 명령어

 

 3-1. iptables 패킷의 상세 내역에 따른 제어 옵션 목록

    * --tcp-flags : TCP 플래그에 따라 패킷을 제어한다.(첫 번째 인자를 검사하고 두 번째 인자는 설정이 되어야 함)

    * -m state --state : 패킷의 상태와 목적에 따라 제어한다.

        

        ※ -m state 명령어 상태 리스트 ( -m state --state [상태] )

          - NEW : 새로 접속을 시도하는 패킷

          - ESTABLISHED : 접속을 한 상태에 있는 패킷 

          - INVALID : 유효하지 않은 패킷 (보통 DROP된다.)

          - RELATED : 접속에 연관성을 가지는 패킷 ( e.g. FTP 접속 패킷, ICMP 에러 메세지)

       

 3-2. iptables 패킷의 상세 내역 제어옵션 예제

    * iptables -A INPUT -p TCP --tcp-flags SYN,RST,ACK SYN -j DROP : SYN패킷의 set이 1이면 DROP시킨다.

    * iptables -A INPUT -p TCP -m state --state NEW -j DROP : 접속을 시도하는 SYN, ACK 플래그 패킷을 차단한다.

 

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2014/11/25 13:47 2014/11/25 13:47

Posted on 2012/11/28 14:03
Filed Under Linux/설정방법

DNS server, DNS service  

About istatd

istatd is a daemon serving statistics to your iStat iPhone application from Linux, Solaris & FreeBSD. istatd collects data such as CPU, memory, network and disk usage and keeps the history. Once connecting from the iPhone and entering the lock code this data will be sent to the iPhone and shown in fancy graphs.

What is iStat for iPhone?

iStat is a iPhone application developed by Bjango (http://www.bjango.com/). With iStat you can remotely monitor CPU, memory, disks, uptime and load averages from any Mac, Linux or Solaris computer from your iPhone. You can download iStat in iTunes App Store.

How to install

These steps assume you are logged in as root and have GNU build tools installed together with libxml2.

1) Download istatd-x.x.x.tar.gz

   # wget http://github.com/downloads/tiwilliam/istatd/istatd-0.5.8.tar.gz

2) Extract tar ball

   # tar -xvf istatd-0.5.8.tar.gz

3) Install dependencies

   istatd requires GNU build tools, libxml2 and libxml2-devel.
   Depending on your distribution these packages can be diffrently named.

   CentOS
   # yum install libxml2-devel

   Ubuntu
   # apt-get install libxml2-dev

4) Build istatd

   # cd istatd-x.x.x

   Here you can configure where you want your binary and config to end up (default /usr/local).
   # ./configure
   or
   # ./configure --prefix=/ --sysconfdir=/etc
   or
   # ./configure --prefix=/usr/local/istatd


   # make
   # make install

5) Add user and configure directories

   # useradd istat
   or
   # groupadd -g 150 istat 
   # useradd istat -d /usr/local/istatd -u 150 -g 150 -s /sbin/nologin -g istat


   # mkdir -p /var/{run,cache}/istat
   # chown istat.istat /var/{run,cache}/istat

6) Configure your config to match your needs and system

   # vim /etc/istat.conf
   or
   # vi /usr/local/istatd/etc/istat.conf

   Note: Don't forget to change your server_code.

7) Fire it up

   # /usr/bin/istatd -d
   or 
   # /usr/local/istatd/bin/istatd -d
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/11/28 14:03 2012/11/28 14:03

Posted on 2012/09/23 01:44
Filed Under Linux/설정방법

DNS server, DNS service  

CentOS 상에 MySQL5.5.25 Source Compile 설치.
1. 해당 시스템 상에 root 계정으로 로그인

2. http://www.mysql.com 으로 부터 MySQL-5.5.25.tar.gz 소스 파일 다운로드.

3. wget cmake.org/files/v2.8/cmake-2.8.8.tar.gz 다운로드
    MySQL 5.5 버전부터는 크로스 플랫폼을 지원을 위해서 configure 대신 cmake 유틸리티로 변경되었음.

    – tar -zxvf cmake-2.8.8.tar.gz
    -  cd cmake-2.8.8
    -  ./bootstrap
    -  make
    -  make install
 
    위 설치가 완료되면, /usr/local/bin/cmake 가 생성된 것을 확인할 수 있다.

4. tar -zxvf  MySQL-5.5.25.tar.gz

5. 컴파일 실행
     cmake -DCMAKE_INSTALL_PREFIX=/MySQL/

-DWITH_EXTRA_CHARSETS=all
-DMYSQL_DATADIR=/MySQL/data/
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DMYSQL_TCP_PORT=3306

    5.1 cmake 실행 도중,

               — Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
                   CMake Error at cmake/readline.cmake:83 (MESSAGE):
                   Curses library not found.  Please install appropriate package, 와 같은 에러 발생 시,

              yum -y install ncurses-devel  실행.

6. make && make install

7. groupadd mysql && useradd -g mysql -d /MySQL -s /bin/false mysql

8. cd /MySQL

9. chown -R mysql.mysql .

10. ./scripts/mysql_install_db —user=mysql

11. chown -R root .

12. chown -R mysql data

13. install -m 755 /MySQL/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

14.
     vi /etc/my.cnf
       default-storage-engine = InnoDB
       innodb_force_recovery=0

15.
     install -m 755 /MySQL/support-files/mysql.server /etc/rc.d/init.d/mysql
     chkconfig —add mysql
     chkconfig —level 3 mysql on
     chkconfig —level 5 mysql on
   
     /etc/rc.d/init.d/mysql start

16.
     /MySQL/bin/mysql -u root -p mysql
        update user set password=password(‘12345’) where user=‘root’;
         flush privileges;
 
     /MySQL/bin/mysql -u root -p 12345 
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/09/23 01:44 2012/09/23 01:44

Posted on 2012/02/02 19:25
Filed Under Linux/설정방법

DNS server, DNS service  

< php 소스 파일에서 phpize를 이용하여 configure 생성 >
# cd php-x.x.x/ext/mysqli
# /usr/local/php/bin/phpize
# ./configure -?with-php-config=/usr/local/php/bin/php-config -?with-mysqli=/usr/local/mysql/bin/mysql_config
# make
< mysqli.so 모듈 복사 >
# mkdir /usr/local/php/modules
# cp modules/mysqli.so /usr/local/php/modules
< php.ini 추가/수정 >
# vi /usr/local/php/php.ini
extension_dir = "/usr/local/php/modules"     <-- 수정
extension=mysqli.so     <-- 추가
< 아파치 재실행 >
# /usr/local/apache2/bin/apachectl restart
** mysqli를 사용하는 것이 속도가 훨씬 빠릅니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/02/02 19:25 2012/02/02 19:25

Posted on 2012/02/01 16:40
Filed Under Linux/설정방법

DNS server, DNS service  

출처 : 리눅스 포털  : http://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=120



지금 써 내러 가는 강좌는 레드햇 9.0을 기반으로 써 내려갑니다. 물론 다른 버전과 어느정도 호환성은 가지고 있겠지만, 테스트 해보지 않고 씁니다. 앞의 설치 강좌를 보지 않았다면, 한번쯤 시간 내어 보기를 바랍니다.
 서버 설치후 메일 서버설치는 옵션이 아닌 필수가 되었습니다. E-mail 은 오래전부터 사용되었습니다. 개인적으로 메일서버는 qmail이 더 좋다고 생각합니다. 모든 면에서.. 하지만, qmail은 간단하게 설치 할 수 없고 배포판에 딸려 나오지 않았기 때문에 , 배포판 설치하면 기본적으로 설치된 sendmail을 사용하는 방법을 강좌로 써 보겠습니다.

1. 설치
  센드메일은 앞의 설치 강좌데로 설치했다면, 이미 설치되었을 것입니다.
하지만 설치가 되었는지 확인할 필요가 있습니다.  확인하는 법은 다음과 같습니다.

[root@test root]# rpm -qa | grep sendmail
sendmail-cf-8.12.8-4
sendmail-8.12.8-4

 위와같은 결과가 나왔다면 배포판과 함께 이미 설치된 것입니다.
만약 위의 2개의 패키지중 sendmail-cf-8.12.8-4 이 패키지가 설치 되지 않았다면, 걱정하실 필요 없이 다음에 설명하는 방법으로 설치하면 패치된 버전을 설치 할 수 있습니다.

2. 패치된 버전 업그래이드 설치
 sendmail은 보안에 취약하여, 항상 최신버전을 사용하라고 합니다. 하지만 소스 받고 컴파일 하기엔 너무 설치 작업이 오래 걸리기 때문에,.. 커널 처럼 패치판을 받아서 설치하도록 하겠습니다.
 항상 편하게 하기 위해서 서버에 깔려있는 wget을 사용합니다. 이 명령어는 위험하기 때문에.. 속성을
chmod 700 /usr/bin/wget 으로 해 두시기 바랍니다.^^:
2개의 패키지를 가져옵니다. 물론 간단한 wget 명령어를 사용합니다.
[root@test root]# wget http://ftp.superuser.co.kr/pub/redhat/9/update/sendmail-8.12.8-9.90.i386.rpm
--16:34:22-- http://ftp.superuser.co.kr/pub/redhat/9/update/sendmail-8.12.8-9.90.i386.rpm
           => `sendmail-8.12.8-9.90.i386.rpm'
Resolving ftp.superuser.co.kr... 완료.
Connecting to ftp.superuser.co.kr[210.114.223.221]:80... connected.
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...200 OK
길이:   535,659 [audio/x-pn-realaudio-plugin]
100%[==================================================================>] 535,659      371.00K/s    ETA 00:00
16:34:24 (371.00 KB/s) - `sendmail-8.12.8-9.90.i386.rpm'가 보존되었습니다 [535659/535659]

[root@test root]# wget
 http://ftp.superuser.co.kr/pub/redhat/9/update/sendmail-cf-8.12.8-9.90.i386.rpm

--16:34:41-- http://ftp.superuser.co.kr/pub/redhat/9/update/sendmail-cf-8.12.8-9.90.i386.rpm
           => `sendmail-cf-8.12.8-9.90.i386.rpm'
Resolving ftp.superuser.co.kr... 완료.
Connecting to ftp.superuser.co.kr[210.114.223.221]:80... connected.
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...200 OK
길이:   292,786 [audio/x-pn-realaudio-plugin]
100%[==================================================================>] 292,786      329.41K/s    ETA 00:00
16:34:42 (329.41 KB/s) - `sendmail-cf-8.12.8-9.90.i386.rpm'가 보존되었습니다 [292786/292786]

위와같은 방법을 사용하면 .. 간단하게 패키지를 서버로 가져올 수 있습니다.
이렇게 완벽하게 패키지 파일들을 가져 왔다면, 패키지를 설치 및 업그래이드 해야합니다.
[root@test root]# rpm -Uvh sendmail-8.12.8-9.90.i386.rpm
경고: sendmail-8.12.8-9.90.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
준비 중...                 ########################################### [100%]
   1:sendmail               경고: /etc/mail/submit.cf(이)가 /etc/mail/submit.cf.rpmnew(으)로 생성되었습니다
########################################### [100%]
[root@test root]# rpm -Uvh sendmail-cf-8.12.8-9.90.i386.rpm
경고: sendmail-cf-8.12.8-9.90.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
준비 중...                  ########################################### [100%]
   1:sendmail-cf           ########################################### [100%]

이렇게 2 패키지를 업데이트(-Uvh) 합니다. 물론 패키지가 설치 되어 있지 않았다면, 설치 되었을 것입니다.
모든 작업은 실행후에 확인을 철저히 해야합니다.
[root@test root]# rpm -qa | grep sendmail
sendmail-cf-8.12.8-9.90
sendmail-8.12.8-9.90
 위의 결과와 같이 업데이트 또는 설치되었다는 것을 확인하실 수 있습니다.

3. /etc/mail/sendmail.mc 파일 편집
  sendmail의 환경설정 파일인 sendmail.cf파일을 직접 건드려서 설정하면 보다 더 정확하고 상세 정보를 수정하고 성능 향상에 도움이 되겠지만, 하나의 언어를 익히는 것만큼의 노력과 시간이 필요합니다. 다행히 sendmail의 환경 설정 파일은 메크로 처리그를 이용해서 어느 부분만 설정하면, 간단하게 sendmail.cf파일을 작성할 수 있습니다.
  고급 설정을 원하시는 분들은 sendmail을 공부하시는 것 보다 qmail 에 시간을 더 투자 하시는게 좋을 것 같습니다.^^

/etc/mail/sendmail.mc 파일을 편집기를 이용해서 열어야 합니다.
 44, 45번째 줄의 내용을 편집합니다. 이는 smtp 인증 기능 사용을 위해서입니다. 이 smtp 인증기능을 사용하는 이유는 smtp 프로토콜은 아주 오래전에 만들어진 것입니다. 그 때는 스팸메일을 보내는 사람들도 없었기 때문에 모두 open relay이었습니다. 하지만 시간이 지나면서 이 open relay를 이용해 스패머들이 스팸메일을 뿌리기 시작했습니다. 이를 막기위해 인가된 사용자의 메일만 relay(중계)하는 방법이 필요했고, 이 방법을 smtp 프로토콜 위에 얹은 것 정도로 보시면 됩니다. 이 smpt 인증 방법이전에는 사용자의 ip로 인증하곤 했었습니다.

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

위의 내용에서 빨간 부분을 지우시기 바랍니다.
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
위와같이 되죠^^;

85번재 줄을 편집합니다. senmail은 언제부턴가 로컬(서버)에서 보내는 메일만 relay(전달)하였습니다. 하지만, 메일서버로 사용하기 위해서는 이 설정을 지워야 합니다.
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
아래와 같이 빨간 부분을 적어 넣어 주석 처리 합닏.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

이렇게 하면 sendmail.mc 파일 편집은 끝납니다. 물론 많은 내용이 있습니다. 하지만 알고 싶으면 서버 설치후 시간이 많이 난다면 하나 하나 분석 해 보시는 것도 좋습니다만~~^^;

이젠 만들어진 sendmail.mc 파일로 sendmail.cf 파을을 만들어야 합니다.
[root@test mail]# pwd
/etc/mail
[root@test mail]# m4 sendmail.mc > sendmail.cf 

 위와같이 한줄로 sendmail.cf파일은 생성됩니다. 이렇게 생성 하였다면, 반드시 sendmail을 재 시작해야 합니다. sendmail은 시작할 때 환경설정파일(sendmail.cf )을 로드 하기 때문입니다.
[root@test mail]# /etc/rc.d/init.d/sendmail restart
sendmail를 종료하고 있습니다:                             [  확인  ]
sm-client을 종료하고 있습니다:                            [  확인  ]
sendmail (을)를 시작합니다:                               [  확인  ]
sm-client을 시작하고 있습니다:                            [  확인  ]

4. /etc/mail/access 파일 편집
  이 파일을 잘 사용하면 조금의 스팸 필터링을 할 수 있습니다. 하지만 기본 설정만 하도록 하겠습니다.
이 서버에서 사용할 도메인을 다음과 같이 넣어줘야 합니다. 예를 들어 도메인이 0link.co.kr 이라면,
0link.co.kr                    RELAY
이렇게 relay가 가능하게 합니다. 이 설정은 메일을 보낼 때 위 도메인으로 메일을 보내면 relay를 하겠단 설정입니다.
이렇게 설정하고 다음과같이 db를 만둘어 주어야 합니다.
[root@test mail]# makemap hash access < access
이때 주의 하시기 바랍니다. "< " 이렇게 되죠^^:

5. /etc/mail/local-host-names
  이 파일은 쉽게 설명하면 메일을 받을 도메인을 넣어두는 파일입니다.. 예를들어 도메인이 0link.co.kr이라면,
0link.co.kr
위와같이 도메인을 달랑 적어주면 됩니다. 물론 다중 도메인이면 한 도메인에 한줄씩 줄~줄~ 적으면 됩니다.
위 파일설정을 바꾼 다음엔 반드시 sendmail을 재 시작해 줘야합니다.~

6. /etc/mail/virtusertable 파일 이용한 가상 유저 셋팅
 sendmail은 기본적으로 시스템(리눅스)의 계정을 사용합니다. 그래서 도메인이 다르다고 하더라도 계정이 이름이 같으면 같은 사람으로 취급합니다. 예를 들면, 셋팅한 서버에 2개의 도메인(0link.co.kr, hyung.co.kr)이 설정되어있다고 가정합니다. 모두 홈페이지를 운영하고 있다면, webmaster@0link.co.kr 과 webmaster@hyung.co.kr 이라는 메일 주소가 존재 할 것입니다. 그렇다면 서버에서 webmaster이라는 계정을 생성한 다음 메일을 받아보면, 위 2 주소로 보낸 메일 모두 webmaster라는 계정으로 들어오게 됩니다. 이런 경우 사용하는 것이 virtusertable입니다.
  webmaster@0link.co.kr 이라는 계정으로 오는 메일은 link 라는 계정으로
  webmaster@hyung.co.kr 으로 오는 메일은 hyung 라는 계정으로 받아보게 설정하는 것입니다.

webmaster@0link.co.kr             link
webmaster@hyung.co.kr          hyung위와같이 설정하면 가능합니다.
(주의) 메일 계정과 linux 계정 사이에는 키로 띄워 주시기 바랍니다. 그렇게 하지 않으면 인식하지 못합니다.

이렇게 설정하고 다음과같이 db를 만둘어 주어야 합니다.
[root@test mail]# makemap hash virtusertable < virtusertable
이때 주의 하시기 바랍니다. "< " 이렇게 되죠^^:


7. pop3 서버 설치
 지금까지 mail 서버를 설치하였습니다. 물론 지금까지 설치로 메일서버의 기능을 할 수 있습니다. 서버내에서 mutt등 메일 클라이언트를 사용하여 메일을 보내고 받을 수 있습니다. 하지만 모두다 outlook같은 프로그램으로 pc에서 받아보길 원할 것입니다. outlook에서 메일을 받아 보기 위해서는 imap 또는 pop3 서버를 설치해야 합니다. 대 부분의 사람들이 imap 보다는 pop3 서버를 많이 사용합니다. imap은 webmail에서 많이 사용합니다. pop3 서버는 개인적으로 qpopper이 더 좋다고 생각하지만. 그 프로그램을 컴파일 하여 설치하기엔 시간이 너무 많이 걸립니다. 간단하게 rpm으로 설치할 수 있는 pop3서버를 설치 해 보도록하겠습니다. 제가 쓴 설치 강좌데로 설치 했다면 아래의 패키지가 설치 되어있을것입니다.

[root@test mail]# rpm -qa | grep imap
imap-2001a-18

위와같이 설치되어 있지 않다면 다음 방법으로 설치하시기 바랍니다.
wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/imap-2001a-18.i386.rpm
rpm -Uvh imap-2001a-18.i386.rpm
이렇게 설치 하게 되면, imap, imaps , ipop3, pop3s 이렇게 4개의 서버가 설치됩니다.
여기서 ipop3 만 사용합니다.

ntsysv
명령어를 사용하여 다른 데몬은 채크를 지워 주시기 바랍니다. 물론 ipop3는 채크가 된 상태여야 합니다.

xinetd를 재 시작해야 합니다.
[root@test mail]# /etc/rc.d/init.d/xinetd restart
xinetd 를 정지함:                                          [  확인  ]
xinetd (을)를 시작합니다:                                 [  확인  ]

모두들 아실 것이라고 믿고 outlook설정은 설명하지 않겠습니다. 단지 설정하시고,
도구 -> 계정 -> 속성 -> 서버 -> 인증필요(채크) -> 적용
위와같이 설정하시기 바랍니다.(smtp 인증법)

8. 서버 데몬 확인 및 서비스 확인
  이렇게 설치 하셨다면, 간단한 메일 서버는 셋팅은 끝입니다.  이제 서비스를 확인해야 합니다.
[root@test mail]# netstat -an | grep LISTEN
tcp        0      0 0.0.0.0:1024            0.0.0.0:*              LISTEN      
tcp        0      0 127.0.0.1:1029         0.0.0.0:*               LISTEN      
tcp        0     0 0.0.0.0:110             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*              LISTEN      
tcp        0      0 0.0.0.0:22             0.0.0.0:*               LISTEN      
tcp       0      0 0.0.0.0:25              0.0.0.0:*               LISTEN    

현재 열려있는 포트입니다. 다른 것들은 서비스에 따라 다를 수 있으니 신경쓰지 마시구요, 110 포트(pop3),
25번 포트(smtp 그러니까 sendmail)입니다. 위와같아야 합니다.

9. 메일큐 내용 확인하기
  홈페이지 운영하다 메일링 리스트에서 메일을 보내게 되면, 정상적인 메일주소로는 메일이 가지만, 정상적인 메일주소가 아닌 경우 가지도 않고 메일큐(/var/spool/mqueue)에 쌓여서 서버의 부하를 주는 경우가 있습니다.. sendmail은 기본설치된 것이 1시간마다 메일큐를 비우게 되어 있고, 한 번 보낸 메일은 7일동안 메일을 보내려고 시도하게 됩니다.. 메일큐에 보내지 못한 메일이 많으면 서버에 부하만 늘어납니다.  이런 경우 mailq라는 명령어로 큐 내용을 확인하여 지워줘야 합니다..
[root@test root]# mailq
/var/spool/mqueue is empty
                Total requests: 0
 위와 같은 경우 메일큐가 비어있는 상태입니다.
큐를 지우는 방법은
[root@test root]# rm -rf /var/spool/mqueue/* 
이렇게 해서 메일큐를 비울 수 있습니다.. 모두 지웠다면 반드시 sendmail을 재시작 해 주기 바랍니다.

10. 도메인 셋팅 스크립트
  서버를 많이 관리하다보면 파일 하나 하나 열어서 셋팅하는 일이 귀찮고도 시간이 많이 걸립니다. 항상 스크립트를 작성해두고 설정하는 것이 실수를 줄이고, 작업 시간도 줄일 수 있습니다. 다음과 같이 간단 한 스크립트를 작성해서 저장합니다.
#!/bin/bash
echo "간단한 메일 셋팅 프로그램 by doly엣superuser.co.kr "
if [ "$1" == "" -o "$2" == "" ] ; then
        echo -e "n ############ 사용법 ############## "
        echo -e "$0 아이디 도메인 n"
        exit 0
fi

echo "webmaster@$2 으로 들어오는 메일은 $1@$2 메일계정으로 받습니다."
echo -e "$2 ttt RELAY" >> /etc/mail/access
echo "$2" >> /etc/mail/local-host-names
echo -e "webmaster@$2 ttt $1" >> /etc/mail/virtusertable
echo "1. db 생성중.."
makemap hash /etc/mail/access < /etc/mail/access
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
echo "2. 센드메일 재 시작중 "
/etc/rc.d/init.d/sendmail restart


파일을 만들어서 위 내용을 붙여 넣은 다음에 실행 권한을 줍니다. 그리구 아래와같이 실행하면,
[root@test root]# ./mailsetup.sh
간단한 메일 셋팅 프로그램 by doly엣superuser.co.kr

 ############ 사용법 ##############
./mailsetup.sh 아이디 도메인

위와같이 실행시키면 간단한 사용법이 나옵니다.

[root@test root]# ./mailsetup.sh doly 0link.co.kr
간단하 메일 셋팅 프로그램 by doly엣superuser.co.kr
webmaster@0link.co.kr 으로 들어오는 메일은 doly@0link.co.kr 메일계정으로 받습니다.
1. db 생성중..
2. 센드메일 재 시작중
sendmail를 종료하고 있습니다:                              [ 확인  ]
sm-client을 종료하고 있습니다:                             [  확인  ]
sendmail (을)를 시작합니다:                                [  확인  ]
sm-client을 시작하고 있습니다:                            [  확인  ]

위와같이 id : doly , 0link.co.kr으로 입력하면 위와같이 자동 셋팅됩니다.
/etc/mail/access 파일, /etc/mail/local-host-names, /etc/mail/virtusertable 파일이 변경되고, db 갱신되며, sendmail 재시작 됩니다.

11. 마치며..

 메일서버는 이게 전부가 아니지만 최대한 간단하게 강좌를 쓰고 마치도록 하겠습니다. 본 강좌의 셋팅에서 여러 에러 가 나타날 수 있습니다. 설정 안되는 부분이 있으면, 아래의 메일 주소로 메일 한통 주시면 답변을 해 드리고 강좌를 수정하도록 하겠습니다.  부디 많은 도움이 되시길 바랍니다.
   혹시 본 강좌에 대한 질문 및 오타를 발견하게 되면, 메일 한통 보내주기 바란다. 메일주소는 doly 골뱅이superuser.co.kr 이다. 메일 주소를 무단 수집해서 스팸메일을 보내는 이를 막기 위해서 위와 같이 표기했으며, 골뱅이 부분은 @ 치환하면 됩니다.

  이상... 2004. 5. 24 ~ 수퍼유저 운영자 doly ...

2004.08.26 Fedora Core 2에서 smtp 인증기능 : /etc/rc.d/init.d/saslauthd 데몬을 띄워야 합니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/02/01 16:40 2012/02/01 16:40

Posted on 2012/01/05 10:48
Filed Under Linux/설정방법

DNS server, DNS service  

1. 필요한 데몬

  - portmap : NFS가 RPC 기반으로 돌아 가기 때문에 rpcbind의 매핑위해 필용한 데몬

  - rpc.nfsd : NFS데몬으로 실제로 NFS로 파일 시스템을 공유 가능하게 해줌

  - rpc.mountd : 마운트를 가능하게 해주는 데몬

  * nfs 관련 패키지가 설치 되어 있지 않으면 레드햇은 RPM으로 nfs-utils 와 portmap

    을 받아서 설치 하면 됨

    (대부분의 리눅스 시스템에서는 기본적으로 설치 되어 있음)

2. 데몬 실행 (portmap 을 먼저 실행 해야 함)

  - /etc/init.d/portmap start

  - /etc/init.d/nfs start

  - 실행 확인 : rpcinfo -p

  - checkconfig 명령을 이용 해서 리부팅 할때 자동으로 실행 하게 하면 편리 함

    checkconfig --leve 3 nfs on

3. 설정 파일

  - /etc/exports 파일을 수정하고 portmap restart 명령을 내리면 됨

  - 설정 방법

    /test   192.168.0.10(rw)  --> 192.168.0.10 서버에서 리드 라우트 권한을 가짐

    /test   192.168.0.10(ro)  --> 192.168.0.10 에서 읽기 권한만 가짐

    /test   192.168.0.10(rw)

    /test/test2   192.168.0.10(noaccess)  --> 하위 디렉토리 접근 권한 없음

    /test   192.168.0.10(rw,root_squash) --> 루트로 마운트시 루트 권한이 아닌

            nfsnobody 권한으로 사용 하게 됨

            no_root_squash 로 하면 root권한으로 사용(보안적인 문제로 인하여 잘

            사용 하지는 않음)

            기본 값은 root_squash 임

    /test   192.168.0.10(rw,all_squash) --> 일반 사용자 모두  nfsnobody 로 매핑

            되어 사용 함,  각각의 계정으로 사용 하려면 no_all_squash로 설정 함

            no_all_squash 가 기본 값임

   /etc  192.168.0.19(rw,anonuid=510,anongid=510) --> 특정 계정으로 권한을 줌

   * nfsnobody 로 할 경우 UID가 지 맘대로 정해 지는 현상이 있음으로 그것에 맞게

     nfs서버에서 디렉토리 권한을 바꾸주면 됨

4. 클라이언트에서 NFS 붙이기

 - NFS 서버에 공유된 디렉토리를 확인합니다.

   showmount -e <서버 IP>

 - 공유된 디렉토리를 마운트할 로컬 디렉토리를 만들어 줍니다. 이건 mkdir로 ㅎ

 - 이제 마운트 해줍니다.

   mount -t nfs <서버 IP>:<디렉토리> <로컬 디렉토리>

   ex) mount -t nfs 192.168.0.1:/usr/local /localmount

* 자동 마운트를 할경우

클라이언트의 /etc/fatab 에 다음 항목 추가

192.168.0.10:/home/jook /data nfs defaults 0 0

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/01/05 10:48 2012/01/05 10:48

Posted on 2011/10/20 11:54
Filed Under Linux/설정방법

DNS server, DNS service  


참고 : http://heewon0117.blog.me/120123652471
추가하고자 하는 모듈 대부분은 php 소스에 있으므로 처음 PHP 설치시 모듈을 추가하지 않았다면 다음의 방법으로 추가할 수 있다. (php 재설치 없이)

EX) curl 모듈을 기존 php에 추가하는 방법

Ex . 모듈 설치(curl)
cd php소스 디렉토리/ext/curl  
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl
make
make install
------------------------------------------------------------------------------------------
을 하면 대충 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
curl.so 이 생긴다
------------------------------------------------------------------------------------------
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
cp curl.so /usr/local/apache/modules/

vi /usr/local/php/lib/php.ini
------------------------------------------------
;extension_dir = "./"
extension_dir = "/usr/local/apache/modules"

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension=curl.so

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2011/10/20 11:54 2011/10/20 11:54

Posted on 2011/03/28 14:20
Filed Under Linux/설정방법

DNS server, DNS service  

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

리눅스 시스템에서의 GD 라이브러리 설치법

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


검색으로 찾아낸 설치법들을 확인한결과... 상당히 번거로운 라이브러리로 보인다.

이것저것 부가적으로 설치해야되는 라이브러리가 4개나 된다.



1. 필요한 라이브러리 좌표

- zlib 다운로드 : http://www.zlib.net

- png 다운로드 : http://www.libpng.org/pub/png/libpng.html

- JPEG 다운로드 : http://www.ijg.org

- freetype 다운로드 : http://download.savannah.gnu.org/releases/freetype/

- GD 다운로드 : http://www.boutell.com/gd/http/gd-2.0.33.tar.gz


※ 첫 설치하면서 함께  포스팅중이다. 최신버전의 라이브러리를 받아서 진행중임!!

※ root 디렉토리에 다운 받음


2. zlib 설치

./configure -shared -prefix=/usr/local/zlib

make

make install


3. png 설치

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

make

make install


4. jpeg 설치

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

참고:

설치시 디렉토리 에러가 나는 경우가 있다고 한다.

버전 6b에서 일어나는 에러인 것으로 보인다.

8b를 받아 설치중이며 디렉토리 에러는 나타나지 않았다.

혹여라도 make install 중에 디렉토리 에러메시지가 보인다면 아래처럼 디렉토리를 생성한다.


mkdir -p /usr/man/man1/

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


./configure -prefix=/usr/local/jpeg -enable-shared -enable-statie

make

make install


5. freetype 설치

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

make setup

make install


6. GD 설치

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

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

출력문 일부 참고:

Support for PNG library: yes

Support for JPEG library: yes

Support for Freetype 2.x library: yes // 무료 폰트 렌더링 라이브러리

Support for Fontconfig library: no

Support for Xpm library: no //unix의 이미지 포맷 라이브러리

Support for pthreads: yes

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


make

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

참고:

make시 에러가 나는 경우가 있다고 한다.

현재 설치중인 버전은 2.0.33 이다.

2.0.35 버전 설치중에 일어나는 현상인듯하다. 현재 설치버전엔 나타나지 않았다.

에러내용은 아래와 같다.


cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run aclocal-1.9 -I config

aclocal:configure.ac:64: warning: macro `AM_ICONV’ not found in library

cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run automake-1.9 –foreign

cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run autoconf

configure.ac:64: error: possibly undefined macro: AM_ICONV

If this token and others are legitimate, please use m4_pattern_allow.

See the Autoconf documentation.

make: *** [configure] 오류 1

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


make install


7. 끝으로
php에서 사용하는 분들이 많은 것 같다.
검색으로 나오는 웬만한 설치법들은 끝부분에 php설정도 함께 게시하고 있다.
그래서 나도 적어볼란다. ㅋㅋ

php 컴파일시
./configure 옵션에 아래사항 추가

–with-gd=/usr/local/gd \
–with-jpeg-dir=/usr/local/jpeg \
–with-freetype-dir=/usr/local/freetype \
–with-png-dir=/usr/local/libpng \
–with-zlib-dir=/usr/local/zlib

** 이 블러그 보시고 설치하신 분은 아래처럼

./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-track-vars --enable-sockets --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --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=/usr/local/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 --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-zlib-dir=/usr/local/zlib
 
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2011/03/28 14:20 2011/03/28 14:20

Posted on 2011/03/02 13:40
Filed Under Linux/설정방법

DNS server, DNS service  

 

1. Mysql5.5.9 소스 파일 다운로드를 합니다.

- 웹페이지에서 다운로드 링크를 복사하여

 #wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.9.tar.gz/from/http://mirror.khlug.org/mysql/

* 필자 서버에서 MySQL 을 다운받는 방법

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

2. Mysql 을 서비스할 계정을 생성합니다.(보안을 위해서)

#groupadd mysql
#useradd -g mysql mysql

3. configure 를 진행합니다.

 - 여기서 5.1 때와 5.5.9 가 다른걸 알았는데요...
 ./configure 가 없다는거...5.5.9 부터는 cmake 라는 것을 통해 설치를 진행하게 됩니다.
cmake 를 다운로드 받습니다. ( http://www.cmake.org/ )
압축만 풀면 사용 가능합니다.


그럼 본격적으로 cmake 를 통해 설치 옵션을 부여해서 해볼까요?

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data  -DENABLED_LOCAL_INFILE=1 DWITH_INNOBASE_STORAGE_ENGINE=1 .

- 전 오래전부터 EUCKR을 사용하여 왔고 해당 DB의 호환성을 위해
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data  -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.socket

를 사용했습니다이후 make all , make install 을 해줘야 합니다.


( cmake 설치 옵션 메뉴얼 :
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#cmake-general-options )


이렇게 해서 설치를 하다보면 필요한 라이브러리가 필요하다며 중간에 실패가 떨어지기도 합니다.
그러면 해당 라이브러리를 설치 해주시면 됩니다. 설치방법은~~


#yum -y install zlib curl
#yum -y install gcc g++ cpp gcc-c++
#yum -y install openssl openssl-devel
#yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
#yum -y install bison

6. mysql 설치 디렉토리에 대한 mysql 권한 부여
#chown -R mysql:mysql /usr/local/mysql

7. 기본 DB 생성

설치 디렉토리로 이동하여서 실행하여야 합니다.(저는 /usr/local/mysql )
#./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data


8. mysql 설정 파일 복사

#cp support-files/my-medium.cnf  /etc/my.cnf
또는
#cp support-files/my-medium.cnf my.cnf

저는 /usr/local/mysql 설치 디렉토리에 위치 시켰는데 mysql 를 여러개 설치할 경우에
각 mysql에 대한 설정값을 사용하기 위해 mysql설치디렉토리에 위치 시켰습니다.


다음으로 MySQL 서버와 프로그램을 연결해줄 소켓을 링크파일로 생성하야 한다.
ln -s /var/lib/mysql/mysql.sock /usr/local/mysql/mysql.socket
(여기 블러그 보시고 Apache 와 PHP 설정하실분 해당)

9. 서버 부팅시 mysql 실행을 위한 서비스 등록

#cp support-files/mysql.server /etc/init.d/mysqld
(기존에 mysqld 파일이 있을경우 해당서버에 설치된 mysql 이 있다는 뜻으므로, 이전 설치된 mysql을 사용하지 않을경우 overwite해도 무관)

10. mysql 실행시 생성되는 pid 파일이 /var/run/mysqld 에 생성됩니다.
이것때문에 mysql 이 뜨지 않아 로그파일을 보고 알았습니다.
#mkdir -P /var/run/mysqld  
#chown -R mysql:mysql /var/run/mysqld
(기존 mysql 이 설치되었을 경우 해당 디렉토리가 존재할 가능성이 높음. 존재하면 Step 10은 Skip)

11. 외부에서 mysql 에 대한 접근을 위해 서비스 포트를 오픈해야합니다.( 3306 포트 )
/etc/sysconfig/iptables 파일에
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
 추가 후
#/etc/rc.d/init.d/iptables restart 로 갱신된 정보를 다시 서비스함.

12. Mysql 실행

#cd /usr/local/mysql/bin
#mysqld_safe --datadir=/usr/local/mysql/data &

이전버젼으로의 호환성을 위해 old-password 를 붙여줌
#/usr/local/mysql/bin/mysqld_safe --user=mysql --language=korean --old-passwords &

13. Mysql Root 비밀번호 생성

#mysqladmin -uroot password 신규비밀번호

14. Mysql 접속

#mysql -uroot -p
Mysql>


15. 재부팅시 자동 실행

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

을 추가하도록 한다.

그럼 모든 설치가 끝납니다~ ^^



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2011/03/02 13:40 2011/03/02 13:40

Posted on 2009/04/15 01:13
Filed Under Linux/설정방법

DNS server, DNS service  

PHP를 다운받고 압축을 해제한후 해당 디렉토리로 이동한다.
PHP 다운 및 압축 해제 [
http://blog.lovecoco.net/116 ]

* PHP 설치하기

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

./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 test 에서 오류나는 경우 safe_mode 가 활성화 되어서 그렇다. 이경우 --enable-safe-mode 를 제외한 옵션

./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-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

으로 Configure 하면 된다.

사용자 삽입 이미지

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

make all

사용자 삽입 이미지

PHP의 명령어가 정상적으로 실행되는지 여부를 확인하기 위해 TEST를 해줘야 하며, 이때 명령어가 "make test"이다.

make test

사용자 삽입 이미지

일부 Failed가 나오더라도... 일단 설치가 완료되면, 해당 설치 디렉토리로 복사하는 명령어를 실행한다.

make install

사용자 삽입 이미지

이후, PHP의 SO파일(모듈)파일을 Apache 환경설정 파일에 추가한후, PHP 가 동작할 수 있도록 설정을 해야 한다.
이전에 설치한 Apache 의 환경설정 파일을 열어 PHP의 SO 파일이 추가가 되어 있는지 여부를 확인한다.
(PHP 설치시 자동으로 추가된다)

vi /usr/local/apache/conf/httpd.conf

세번째 페이지 뒤에..
"loadModule php5_module  modules/libphp5.so"
줄이 추가되어 있으면 일단 PHP의 SO파일 추가는 되어 있는 것이다.

사용자 삽입 이미지

그리고 12페이지쯤 뒤에... (Line 379줄  - VI에서 명령어 모드(:) 누른후 379를 입력하면 바로 이동) 다음의 내용을 추가한다.

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

이 내용은 웹페이지 php, php3, inc, ph, htm, html의 확장자를 PHP가 동작되도록 연결해주는 역할을 한다.

사용자 삽입 이미지

그리고 httpd.conf를 저장한 후 아파치를 재 시작 한다.

/usr/local/apache/bin/apachectl restart

사용자 삽입 이미지

마지막으로 PHP가 정상 동작하는지 여부를 확인하기 위하여,

Apache 의 웹 문서가 있는 /usr/local/apache/htdocs/index.html 파일을 열어 첫줄에 다음의 내용을 추가한다

<?
phpinfo();
?>

사용자 삽입 이미지

마지막으로 웹 브라우져를 열어.. 다음의 페이지가 보이면 설치가 완료된것이다.

사용자 삽입 이미지


# ZendOptimizer 의 설치

명령어 :
wget
http://www.lovecoco.net/dataout/userdata/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz 
[다운로드]

압축 해제 및 설치
tar xvfz ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz 
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install


라고 입력한다.
나머지는 웬만해서.. Enter 키만 누르면 되는데.. 그래도 설정을 확인해보자.. 입력전에!~!

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/04/15 01:13 2009/04/15 01:13

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

사용자 삽입 이미지



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
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 &

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

사용자 삽입 이미지



 

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
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. 설치 완료
사용자 삽입 이미지


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
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 에 복사해서 실행 권한을 주고~ 일주일에 한번식 실행하도록 한다.

펼치기



 

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
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

더보기(펼치기)

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/08/07 16:57 2008/08/07 16:57

About

by CoCo

Notice

Counter

· Total
: 807967
· Today
: 10
· Yesterday
: 125