:: 네임서버 구축

[root@s92 bind-9.3.0]# service named stop
named 를 정지함:
[root@s92 bind-9.3.0]# rpm -qa | grep bind
bind-chroot-9.2.4-2
bind-libs-9.2.4-2
ypbind-1.17.2-3
bind-9.2.4-2
system-config-bind-2.0.3-1
bind-devel-9.2.4-2
kdebindings-3.3.0-3
bind-utils-9.2.4-2
kdebindings-devel-3.3.0-3
[root@s92 bind-9.3.0]# yum remove bind
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package bind.i386 20:9.2.4-2 set to be erased
--> Running transaction check
Setting up Repos
http://ftp.rhnet.is/pub/fedora/3/i386/os/repodata/repomd.xml: [Errno 4] IOError: HTTP Error 404: Not Found
Trying other mirror.
base 100% |=========================| 1.1 kB 00:00
updates-released 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
base : ################################################## 2622/2622
primary.xml.gz 100% |=========================| 362 kB 00:04
MD Read : ################################################## 962/962
updates-re: ################################################## 962/962
--> Processing Dependency: bind = 20:9.2.4-2 for package: bind-chroot
--> Processing Dependency: bind for package: system-config-bind
--> Processing Dependency: bind for package: caching-nameserver
--> Processing Dependency: bind >= 9.1.3-0.rc2.3 for package: caching-nameserver
--> Processing Dependency: bind = 20:9.2.4-2 for package: bind-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package caching-nameserver.noarch 0:7.3-3 set to be erased
---> Package bind-devel.i386 20:9.2.4-2 set to be erased
---> Package system-config-bind.noarch 0:2.0.3-1 set to be erased
---> Package bind-chroot.i386 20:9.2.4-2 set to be erased
--> Running transaction check

Dependencies Resolved
Transaction Listing:
Remove: bind.i386 20:9.2.4-2

Performing the following to resolve dependencies:
Remove: bind-chroot.i386 20:9.2.4-2
Remove: bind-devel.i386 20:9.2.4-2
Remove: caching-nameserver.noarch 0:7.3-3
Remove: system-config-bind.noarch 0:2.0.3-1
Total download size: 0
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test

Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing: bind-devel 1/5
Erasing: caching-nameserver 2/5
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
warning: /etc/rndc.key saved as /etc/rndc.key.rpmsave
Erasing: bind 3/5
Erasing: system-config-bind 4/5
/var/tmp/rpm-tmp.31911: line 15: /etc/init.d/named: 그런 파일이나 디렉토리가 없음
Erasing: bind-chroot 5/5
/var/tmp/rpm-tmp.31911: line 7: /etc/init.d/named: 그런 파일이나 디렉토리가 없음

Removed: bind.i386 20:9.2.4-2
Dependency Removed: bind-chroot.i386 20:9.2.4-2 bind-devel.i386 20:9.2.4-2 caching-nameserver.noarch 0:7.3-3 system-config-bind.noarch 0:2.0.3-1
Complete!

[root@s92 bind-9.3.0]# rpm -qa | grep bind
bind-libs-9.2.4-2
ypbind-1.17.2-3
kdebindings-3.3.0-3
bind-utils-9.2.4-2
kdebindings-devel-3.3.0-3

[root@s92 bind-9.3.0]# rpm -e --nodeps bind-libs-9.2.4-2
[root@s92 bind-9.3.0]# rpm -e --nodeps bind-utils-9.2.4-2
[root@s92 bind-9.3.0]# rpm -qa | grep bind
ypbind-1.17.2-3
kdebindings-3.3.0-3
kdebindings-devel-3.3.0-3

[root@s92 bind-9.3.0]# ./configure --prefix=/usr --sysconfdir=/etc \\
> --localstatedir=/var --with-openssl --with-libtool

[root@s92 bind-9.3.0]# make ; make install
[root@s92 src]# useradd -u 25 -c \"DNS SERVER\" -r -d /var/named \\
> -s /bin/false named
[root@s92 src]# grep named /etc/passwd
named:x:25:25:DNS SERVER:/var/named:/bin/false

[root@s92 src]# ls /var/named
chroot

# named 디렉토리를 다운받았음
# /var/named/chroot/var/named 에 있는 파일이 /var/named 에 링크되어있는지 확인해봐야 한다.
# 여기서는 링크가 되어있지 않아서 다른곳에서 named 디렉토리를 통채로 다운받았다
[root@s92 src]# chmod 770 /var/named
[root@s92 src]# chgrp named /var/named
[root@s92 src]# ls -ld /var/named
drwxrwx--- 3 root named 4096 11월 25 10:52 /var/named
[root@s92 src]# chown named /var/named
[root@s92 src]# ls -ld /var/named
drwxrwx--- 3 named named 4096 11월 25 10:52 /var/named
[root@s92 src]# ls -l /etc/named.conf
ls: /etc/named.conf: 그런 파일이나 디렉토리가 없음 <- 그래서 다운받았음

[root@s92 named]# cd /var/named
[root@s92 named]# mkdir data
[root@s92 named]# chmod 770 data
[root@s92 named]# ls -l
합계 16
drwxrwx--- 5 root named 4096 11월 7 14:49 chroot
drwxrwx--- 2 root root 4096 11월 25 11:29 data
[root@s92 named]#
mkdir data
[root@s92 named]# chmod 770 data
[root@s92 named]# ls -l
합계 16
drwxrwx--- 5 root named 4096 11월 7 14:49 chroot
drwxrwx--- 2 root root 4096 11월 25 11:29 data
[root@s92 named]#

[root@s92 named]# vi named.ca
# named.ca 업데이트
[root@s92 named]# dig @a.root-servers.net . NS | grep -v \"^;\" > named.ca
[root@s92 named]# pwd
/var/named/chroot/var/named

[root@s92 named]# cd /etc/rc.d/init.d
[root@s92 init.d]# ls -l named <- 다운받은 name 구동 스크립트
-rwx------ 1 root root 3184 11월 25 11:23 named
[root@s92 init.d]# pwd
/etc/rc.d/init.d
[root@s92 init.d]#

[root@s92 named]# rndc-confgen > /etc/rndc.conf
[root@s92 named]# vi /etc/rndc.conf

[root@s92 named]# chkconfig --add named
[root@s92 named]# chkconfig --list named
named 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
[root@s92 named]# chkconfig --level 35 named on
[root@s92 named]# chkconfig --list named
named 0:해제 1:해제 2:해제 3:활성 4:해제 5:활성 6:해제


[root@s92 etc]# rndc-confgen -a
wrote key file \"/etc/rndc.key\"
[root@s92 etc]# cat /etc/rndc.key
key \"rndc-key\" {
algorithm hmac-md5;
secret \"/rY70AngJU5iWlgxo4jDQw==\";
};
[root@s92 etc]# grep secret /etc/rndc.conf
secret \"D7za6FzVwTL0KvN04wOduA==\";
# secret \"D7za6FzVwTL0KvN04wOduA==\";
[root@s92 etc]# grep rndc-key /etc/rndc.conf
key \"rndc-key\" {
default-key \"rndc-key\";
# key \"rndc-key\" {
# allow { 127.0.0.1; } keys { \"rndc-key\"; };
[root@s92 etc]# grep rndckey /etc/named.conf
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
[root@s92 etc]# vi /etc/named.conf
[root@s92 etc]# grep rndckey /etc/named.conf
[root@s92 etc]# grep rndc /etc/named.conf
inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
include \"/etc/rndc.key\";
[root@s92 etc]# service named start

'Server' 카테고리의 다른 글

FTP Command  (0) 2017.01.06
sendmail.cf  (0) 2017.01.06
samba 설정으로 윈도우에서 리눅스 접근하기  (0) 2017.01.06
/etc/passwd /etc/shadow 합치기/나누기  (0) 2017.01.06
리눅스 계정 관리  (0) 2017.01.06

:: 윈도우에서 리눅스 접근하기
첫번째 - 암호화 하지 않고 접근

레지스트리 수정 : [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\LanmanWorkStation\\Parameters
1로 수정`

[root@s92 linux]# vi /etc/samba/smb.conf

[GLOBAL]
workgroup = Sistsong # 윈도우 작업그룹
netbios name = leopit
server string = samba
log file = /var/log/samba/log.%m
max log size = 50 byte
security = user
encrypt passwords = no
socket options = TCP_NODELAY
dns proxy = No

[HOMES] #User\'s Home
comment = User\'s Home Directories
browseable = no
writable = yes

[root@s92 samba]# testparm
[root@s92 samba]# /etc/rc.d/init.d/smb start

두번째 - 암호화 하고 접근

레지스트리 수정 : [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\LanmanWorkStation\\Parameters
0으로 수정`

[root@s92 linux]# vi /etc/samba/smb.conf

encrypt passwords = yes 로 바꿈

[root@s92 linux]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@s92 samba]# smbpasswd linux
New SMB password:
Retype new SMB password:

[root@s92 samba]# grep linux smbpasswd
linux:502:50831B500C427533AAD3B435B51404EE:F0873F3268072C7B1150B15670291137:[U ]:LCT-43850C6C:

[root@s92 samba]# testparm
[root@s92 samba]# service smb restart

:: 연결된 모습

[root@s92 samba]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 211.63.89.92:139 211.63.89.91:1102 SYN_RECV
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 211.63.89.92:139 211.63.89.91:1114 ESTABLISHED
tcp 1 1 211.63.89.92:32954 205.156.51.200:80 LAST_ACK
tcp 0 0 :::22 :::* LISTEN
[root@s92 samba]# w
09:29:02 up 1:36, 2 users, load average: 0.02, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 - 07:53 ?xdm? 1:07 0.42s /usr/bin/gnome-session
root pts/1 :0.0 07:54 0.00s 0.05s 0.00s w
[root@s92 samba]# who
root :0 Nov 24 07:53
root pts/1 Nov 24 07:54 (:0.0)
[root@s92 samba]#


######################################################

:: 리눅스에서 윈도우로 접근하기
윈도우에 폴더 하나를 공유시키고 계정 하나를 만든다
mkdir /mnt/MS
nmblookup sist221
smbmount //sist221/Share /mnt/MS -o username=wind

######################################################

:: FTP 처럼 윈도우로 접속하기
[root@s92 /]# smbclient //sist221/Share -U wind

######################################################

:: 프로젝트 공간 할당하기
groupadd -g 50000 project
[root@s92 samba]# useradd pro -g project
[root@s92 samba]# grep project /etc/group
[root@s92 samba]# smbpasswd -a pro
[root@s92 samba]# mkdir -p /usr/samba/project
[root@s92 samba]# chown root.project /usr/samba/project
[root@s92 samba]# chmod 770 /usr/samba/project
[root@s92 samba]# vi /etc/samba/smb.conf

smb.conf에 다음과 같이 추가
[project]
comment = Project Directory
path = /usr/samba/project
public = no
writable = yes
write list = @project

######################################################

:: File Server 상에 공유디렉토리 만들기
[root@s92 samba]# cd /usr/samba
[root@s92 samba]# mkdir multimedia
[root@s92 samba]# chown pro /usr/samba/multimedia
[root@s92 samba]# vi /etc/samba/smb.conf
[root@s92 samba]# service smb restart

[MEDIA]
comment = Multimedia Files
path = /usr/samba/multimedia
public = yes
writable = yes
write list = pro
printable = no
create mask = 0755

######################################################

:: 삼바 웹에서 컨트럴 하기
[root@s92 xinetd.d]# vi /etc/xinetd.d/swat
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \\
# to configure your Samba server. To use SWAT, \\
# connect to port 901 with your favorite web browser.
service swat
{
disable = no
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}

[root@s92 xinetd.d]# service xinetd restart
http://localhost:901

'Server' 카테고리의 다른 글

sendmail.cf  (0) 2017.01.06
네임서버 구축  (0) 2017.01.06
/etc/passwd /etc/shadow 합치기/나누기  (0) 2017.01.06
리눅스 계정 관리  (0) 2017.01.06
grep  (0) 2017.01.06

[root@s92 download]# pwunconv
[root@s92 download]# grep leopit /etc/passwd /etc/shadow
/etc/passwd:leopit:$1$AV2qeQF9$기JtavMlGJ.QlS7uqKKND0x0:501:501::/home/leopit:/bin/bash
grep: /etc/shadow: 그런 파일이나 디렉토리가 없음

[root@s92 download]# pwconv
[root@s92 download]# grep leopit /etc/passwd /etc/shadow
/etc/passwd:leopit:x:501:501::/home/leopit:/bin/bash
/etc/shadow:leopit:$1$AV2qeQF9$JtavMlGJ.QlS7uqKKND0x0:13102:0:99999:7:::

[root@s92 download]#

'Server' 카테고리의 다른 글

네임서버 구축  (0) 2017.01.06
samba 설정으로 윈도우에서 리눅스 접근하기  (0) 2017.01.06
리눅스 계정 관리  (0) 2017.01.06
grep  (0) 2017.01.06
LSOF 설치 및 사용가이드  (0) 2017.01.06

디폴트로 계정을 생성하면 유저아이디가 기본그룹, 보조그룹니다.
그러나 -t 옵션을 붙혀주면 유저아이디가 기본그룹이 되고 GID 100 번의 그룹의 보조그룹이 된다.

또한 /etc/group 에 admin:x:55000:win,open 이런 형식으로 아이디를 추가하면 해당 그룹이 보조그룹이 된다.

[root@s92 ~]# useradd win
[root@s92 ~]# useradd -n open
[root@s92 ~]# groupadd -g 55000 admin
[root@s92 ~]# vi /etc/group

admin:x:55000:win,open #이 그룹이 보조그룹으로 속할 계정

[root@s92 ~]# groups win
win : win admin
[root@s92 ~]# groups open
open : users admin

[root@s92 ~]# vi /etc/group

admin:x:55000:

[root@s92 ~]# groups win
win : win
[root@s92 ~]# groups open
open : users

:: 카피할 설정파일들 디렉토리 변경하기
useradd leopit -m -k /etc/skel2 -g group

:: 효율적으로 등록하기
useradd 계정명 -g 기본그룹명 -G 보조그룹명,보조그룹명 

ex) 
[root@s92 ~]# useradd open1 -g linux -G sist,users
[root@s92 ~]# groups open1
open1 : linux users sist
[root@s92 ~]# vi /etc/group
:
users:x:100:open1
sist:x:500:open1
:


:: 계정 수정하기
사용자 계정정보를 수정하는 명령어이다.
기존에 생성되어 있는 계정사용자의 다음과 같은 계정정보들을 수정할 수 있다.

사용형식

usermod [-c comment] [-d home_dir [ -m]]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-l login_name] [-p passwd]
[-s shell] [-u uid [ -o]] [-L|-U] login


사용예 #1

다음은 sspark5라는 계정사용자의 /etc/passwd, /etc/shadow, /etc/group내에 설정된 기본 설정내용이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508::/home/sspark5:/bin/bash
[root@host3 root]#
[root@host3 root]# grep sspark5 /etc/shadow
sspark5:$1$/H.bOlGk$jeEdF1g7naK9vVe4v5i/s/:12314:0:99999:7:::
[root@host3 root]#
[root@host3 root]# grep sspark5 /etc/group
sspark5:x:508:
[root@host3 root]#

위의 초기 설정값을 간단히 보면 UID는 506, GID는 508, 코멘트는 현재 없으며, 홈디렉토리는 /home/sspark5이며, 사용하는 기본쉘은 bash쉘임을 알 수 있다.
이제 이 값들을 usermod로 바꾸어 보도록 하자.


먼저, sspark5사용자의 코멘트를 입력해 보자.

[root@host3 root]# usermod -c 박성수 sspark5
[root@host3 root]#

위의 예와 같이 코멘트를 수정하는 usermod의 옵션은 -c이다.


다음은 /etc/passwd내에 sspark5의 변경된 코멘트를 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/home/sspark5:/bin/bash
[root@host3 root]#


사용예 #2

이번에는 sspark5사용자의 홈디렉토리를 변경해보자.
usermod에서 홈디렉토리를 변경하는 옵션은 -d이다.

[root@host3 root]# usermod -d /usr/sspark5 sspark5
[root@host3 root]#

위와 같이 홈디렉토리를 변경하였다.

다음은 변경된 값을 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/usr/sspark5:/bin/bash
[root@host3 root]#

한가지 주의할 것은 홈디렉토리의 위치가 변경되었지만 원래 있던 홈디렉토리파일들이 삭제되거나 이동되는 것은 아니다.
원래의 홈디렉토리내에 존재하는 파일들은 모두 그대로 존재한다.


사용예 #3

이번에는 -e옵션을 사용하여 sspark5의 계정 종료일을 설정해보자.

[root@host3 root]# usermod -e 2006-12-31 sspark5
[root@host3 root]#

위와 같이 설정한 후에 /etc/shadow파일을 확인한 것이다.
계정 종료일의 설정은 위에서 보았던 /etc/shadow파일의 내용과는 달리 \'13513\"이 설정되어 있는 거을 알 수가 있다.

[root@host3 root]# grep sspark5 /etc/shadow
sspark5:$1$/H.bOlGk$jeEdF1g7naK9vVe4v5i/s/:12314:0:99999:7::13513:
[root@host3 root]#


사용예 #4

이번에는 sspark5의 기본사용쉘을 변경해 보자.
sspark5의 원래 사용했던 기본사용쉘은 /bin/bash(Bash Shell)이였다.
이것을 usermod로 다음과 같이 /bin/csh(C Shell)로 변경한 것이다.

[root@host3 root]# usermod -s /bin/csh sspark5 
[root@host3 root]#

이를 확인하기 위하여 /etc/passwd의 내용을 확인하였다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:506:508:박성수:/usr/sspark5:/bin/csh
[root@host3 root]#

사용예 #5

이번에는 sspark5의 UID를 변경해 보자.
UID를 변경하기 위해서는 -u옵션을 사용하면 된다.

[root@host3 root]# usermod -u 508 sspark5 
[root@host3 root]#

원래 sspark5의 UID는 506이였던 것을 508로 변경한 것이다.
다음은 변경된 UID값을 확인한 것이다.

[root@host3 root]# grep sspark5 /etc/passwd
sspark5:x:508:508:박성수:/usr/sspark5:/bin/csh
[root@host3 root]#


이상과 같이 usermod에 대해서 살펴보았다.
usermod명령어는 useradd, useradd -D, userdel과 함께 익혀두는 것이 바람직한다.
여러분들의 건투를 빈다.

'Server' 카테고리의 다른 글

samba 설정으로 윈도우에서 리눅스 접근하기  (0) 2017.01.06
/etc/passwd /etc/shadow 합치기/나누기  (0) 2017.01.06
grep  (0) 2017.01.06
LSOF 설치 및 사용가이드  (0) 2017.01.06
syslog.conf 로그파일 종류  (0) 2017.01.06

grep 계열 명령어


3.1 grep 명령어


3.1.1 grep의 의미


grep : 파일 전체를 뒤져 정규표현식에 대응하는 모든 행들을 출력한다.

egrep : grep의 확장판으로, 추가 정규표현식 메타문자들을 지원한다.

fgrep : fixed grep 이나 fast grep으로 불리며, 모든 문자를 문자 그래도 취급한다. 즉, 정         규표현식의 메타문자도 일반 문자로 취급한다.


3.1.2 grep의 동작 방법


grep에서 사용하는 정규표현식 메타문자

메타문자

기    능

사용 예

사용 예 설명

^

행의 시작 지시자

\'^love\'

love로 시작하는 모든 행과 대응

$

행의 끝 지시자

\'love$\'

love로 끝나는 모든 행과 대응

.

하나의 문자와 대응

\'l..e\'

l 다음에 두 글자가 나오고 e로 끝나는 문자열을 포함하는 행과 대응

*

선행문자와 같은 문자의 0개 혹은 임의개수와 대응

\' *love\'

0개 혹은 임의 개수의 공백 문자 후에 love로 끝나는 문자열을 포함한 행과 대응

[]

[] 사이의 문자 집합중 하나와 대응

\'[Ll]ove\'

love나 Love를 포함하는 행과 대응

[^ ]

문자집합에 속하지 않는 한 문자와 대응

\'[^A-K]love\'

A와 K 사이의 범위에 포함되지 않는 한 문자와 ove가 붙어있는 문자열과 대응

\\<

단어의 시작 지시자

\'\\<love\'

love로 시작하는 단어를 포함하는 행과 대응(vi,grep에서 지원)

\\>

단어의 끝 지시자

\'love\\>\'

love로 끝나는 단어를 포함하는 행과 대응

(vi,grep에서 지원)

\\(..\\)

다음 사용을 위해 태그를 붙인다.

\'\\(lov\\)ing\'

지정된 부분을 태크1에 저장한다. 나중에 태그값을 참고하려면 \\1을 쓴다. 맨 왼쪽부터 시작해 태그를 9개가지 쓸 수 있다. 왼쪽 예에서는 lov가 레지스터1에 저장되고 나중에 \\1로 참고할 수 있다.

x\\{m\\}

문자 x를 m번 반복한다.

\'o\\{5\\}\'

문자 o가 5회 연속적으로 나오는 모든 행과 대응

x\\{m,\\}

적어도 m번 반복한다.

\'o\\{5,\\}\'

문자 o가 최소한 5회 반복되는 모든 행과 대응

x\\{m,n\\}

m회 이상 n회 이하 반복한다.

o\\{5,10\\}\'

문자 o가 5회에서 10회 사이의 횟수로 연속적으로 나타나는 문자열과 대응


grep의 옵션

옵션

동작 설명

-b

검색 결과의 각 행 앞에 검색된 위치의 블록 번호를 표시한다. 검색 내용이 디스크의 어디쯤 있는지 위치를 알아내는데 유용하다.

-c

검색 결과를 출력하는 대신, 찾아낸 행의 총수를 출력한다.

-h

파일 이름을 출력하지 않는다.

-i

대소문자를 구분 하지 않는다.(대문자와 소문자를 동일하게 취급).

-l

패턴이 존재하는 파일의 이름만 출력한다.(개행문자로 구분)

-n

파일 내에서 행 번호를 함께 출력한다.

-s

에러 메시지 외에는 출력하지 않는다. 종료상태를 검사할 때 유용하게 쓸 수 있다.

-v

패턴이 존재하지 않는 행만 출력한다.

-w

패턴 표현식을 하나의 단어로 취급하여 검색한다.


# grep -n \'^jack:\' /etc/passwd

(/etc/passwd 파일에서 jack을 찾는다. jack이 행의 맨 앞에 있으면 행 번호를 화면으로 출력한다.)


3.1.3 grep과 종료 상태

grep은 파일 검색의 성공 여부를 종료 상태값으로 되돌려준다.

패턴을 찾으면 0, 패턴을 찾을 수 없으면 1, 팡리이 존재하지 않을 경우 2

sed,a자 등은 검색의 성공 여부에 대한 종료 상태값을 반환하지 않는다. 다만 구문 에러가 있을 경우에만 에러를 보고한다.


3.2 정규표현식을 사용하는 grep의 예제

# grep NW datafile

# grep NW d*

(d로 시작하는 모든 파일에서 NW를 포함하는 모든 행을 찾는다.)

# grep \'^n\' datafile

(n으로 시작하는 모든 행을 출력한다.)

# grep \'4$\' datafile

(4로 끝나는 모든 행을 출력한다.)

# grep TB Savage datafile

(TB만 인자이고 Savage와 datafile은 파일 이름이다.)

# grep \'TB Savage\' datafile

(TB Savage를 포함하는 모든 행을 출력한다.)

# grep \'5\\.\' datafile

(숫자 5, 마침표, 임의의 한 문자가 순서대로 나타나는 문자열이 포함된 행을 출력한다.)

# grep \'\\.5\' datafile

(.5가 나오는 모든 행을 출력한다.)

# grep \'^[we]\' datafile

(w나 e로 시작하는 모든 행을 출력한다.)

# grep \'[^0-9]\' datafile

(숫자가 아닌 문자를 하나라도 포함하는 모든 행을 출력한다.)

# grep \'[A-Z][A-Z] [A-Z]\' datafile

(대문자 2개와 공백 1개, 그리고 대문자 하나가 연이어 나오는 문자열이 포함된 행을 출력한다.)

# grep \'ss* \' datafile

(s가 한 번 나오고, 다시 s가 0번 또는 여러번 나온 후에 공백이 연이어 등장하는 문자열을 포함한 모든 행을 출력한다.)

# grep \'[a-z]\\{9\\}\' datafile

(소문자가 9번 이상 반복되는 문자열을 포함하는 모든 행을 출

//유닉스 쉘 바이블 (엘리 퀴클리 지음)에서 발췌

'Server' 카테고리의 다른 글

/etc/passwd /etc/shadow 합치기/나누기  (0) 2017.01.06
리눅스 계정 관리  (0) 2017.01.06
LSOF 설치 및 사용가이드  (0) 2017.01.06
syslog.conf 로그파일 종류  (0) 2017.01.06
ssh RSA 암호화 키로 접속하기  (0) 2017.01.06

LSOF 설치 및 사용가이드


1. 소개

LSOF는 \'List Open File\'의 약자로, 해당 System에서 구동되고 있는 프로세스들에 의해서 열려진 파일들을 확인 할 수 있는 툴이다. 시스템의 의심스러운 프로세스에 대한 확인이 용이하고, 설치가 비교적 쉬워 많이 이용되고 있다.

[cert:root]:/user/kong/lsof_4.56> lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sched 0 root cwd VDIR 32,0 1024 2 /
sched 0 root 0u VCHR 12,2 0t0 140375 /devices/pseudo/sad@0:user(COMMON)
.....
.....
sendmail 23403 root 13u inet 0x603ca5b8 0t2290 TCP cert:52969->211.45.162.90:smtp (ESTABLISHED)
sendmail 23403 root 14u inet 0x603ca5b8 0t2290 TCP cert:52969->211.45.162.90:smtp (ESTABLISHED)
......

[그림 1] LSOF 실행 예

 

2. LSOF 다운로드 받기

최신 버전은 ftp://vic.cc.purdue.edu/pub/tools/unix/lsof 에서 확인 할 수 있으며, 여러 개의 Mirror site 가 존재해 쉽게 다운로드 받을 수 있다.

Mirror site URL :

ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutiles/lsof
ftp://ftp.cert.dfu.du/pub/tools/admin/lsof
ftp://ftp.cetis.hvu.nl/pub/lsof
ftp://ftp.crc.doc.ca/packages/

Version 4 LSOF 는 gzip으로 압축되어 있으며, 파일명에 revision number를 포함하고 있다.

ftp://vic.cc.purdue.edu/pub/tools/unix/lsof_<rev>_W.tar.gz
또는 ftp://vic.cc.purdue.edu/pub/tools/unix/lsof_<rev>_W.tar.Z

※ 리눅스 시스템의 경우에는, 대부분 기본적으로 LSOF가 설치되어 있다. (만약 설치가 안되어 있는 상태라면 rpm 패키지로 배포하고 있으므로 linux 배포사이트를 이용하면 될 것이다.)

3. 압축해제

이 문서에서는 ver.4(revision 4.56) LSOF를 Solaris OS에서 설치하는 과정을 보이도록 한다.

gzip -d lsof_4.56_W.tar.gz
tar -xvf lsof_4.56_W.tar

※ 참고로 4.56 버전의 lsof.tar 파일의 md5 checksum 값은 다음과 같으며, MD5 (lsof_4.56.tar) = 92155bb6430d14d044f8ca96858e63b8

md5 checksum tool은 아래 사이트에서 구할 수 있다.
ftp://ftp.cerias.purdue.edu/pub/tools/unix/crypto/md5

4. 설치하기

LSOF 설치과정은 크게 압축해제 -> Inventory -> Configure -> Install 4단계로 볼 수 있다.

① 압축 풀기

우선 초기 Wrapper에 쌓인 파일 압축을 풀면 해당 디렉토리 내에 다음과 같은 5개 의 파일이 생성되고, 이와 함께 lsof_4.56 디렉토리가 생성된다.

[cert:root]:/user/kong> tar -xvf lsof_4.56_W.tar
x RELEASE.SUMMARY_4.56, 12803 bytes, 26 tape blocks
x README.lsof_4.56, 4129 bytes, 9 tape blocks
x 00.README.FIRST_4.56, 700 bytes, 2 tape blocks
x lsof_4.56.tar, 3317760 bytes, 6480 tape blocks
x lsof_4.56.tar.asc, 284 bytes, 1 tape blocks

생성되는 파일

설명

00.README.FIRST_4.56

Readme file for the distribution

README.lsof_4.56

Contains distribution and security information

RELEASE.SUMMARY_4.56

Summary of the lsof 4.56 distribution

lsof_4.56.tar

LSOF 4.56 tar archive

lsof_4.56.tar.asc

Detached PGP certificate for lsof_4.56.tar

[표 1] lsof_4.56_W.tar 압축 해지 후 생성되는 파일들

 

※ 생성된 lsof_4.56 디렉토리에 생성되는 주요 파일들

[sparc5:root]:/user/kong/lsof_4.56> ls
./ 00DIST 00README arg.c lsof_fields.h proto.h
../ 00FAQ 00XCONFIG dialects/ main.c regex.h
00.README.FIRST 00LSOF-L AFSConfig* lib/ misc.c scripts/
00CREDITS 00MANIFEST Configure* lsof.8 node.c store.c
00DCACHE 00PORTING Customize* lsof.h print.c usage.c
00DIALECTS 00QUICKSTART Inventory* lsof.man proc.c version

② Inventory

LSOF를 설치 할때 절대적으로 필요한 과정은 아니다. 그러나 subdirectory들을 체크하고, 각 스크립트들과 파일 헤더들, 소스파일들이 실제로 존재하는지 등 패키지 상태를 체크 해 볼 필요가 있다. 다음과 같이 Inventory 스크립트를 실행하게 되면, inventory 작업에 대한 소개 가 나오고 실행할 것인지 여부를 물어오는데 \'y\' 로 답하면서 진행하게 되면 디렉토리들의 list 를 확인할 수 있다.

[cert:root]:/user/kong/lsof_4.56> ./Inventory
Conducting an inventory of the lsof distribution; this will take a while.
Examining /user/kong/lsof_4.56: OK
Examining dialects: OK
....
....
Examining lib: OK
Examining scripts: OK
This lsof distribution seems to be complete.

③ Configure

환경설정에 필요한 여러 단계의 작업을 하게 되는데, 아래와 같이 해당 OS에 맞 게 선택하고 Configure 스크립트를 구동하면 된다.

※Configure 스크립트 구동방법

Configure <options> <target-dialect>
<options>: -clean : clean up previous configuration
-d|-dialects : display a list of supported dialect versions
-h|-help : display help information
-n : avoid AFS, customization, and inventory checks

aix | aixgcc : IBM AIX xlc (aix)
or gcc (aixgcc)
bsdi : BSDI BSD/OS
darwin : Apple Darwin
decosf : DEC OSF/1
digital_unix|du : Digital UNIX
freebsd : FreeBSD
hpux|hpuxgcc : HP-UX cc (hpux)
or gcc (hpuxgcc)
linux : Linux
netbsd : NetBSD

nextstep|next|ns|nxt : NEXTSTEP
openbsd : OpenBSD
openstep|os : OpenStep
osr | sco : SCO OpenServer,
SCO devloper\'s compiler
osrgcc|scogcc : SCO OpenServer,gcc compiler
ptx : Sequent PTX
solaris | solariscc : Solaris gcc (solaris)
or cc(solariscc)
tru64 : Tru64 UNIX
unixware | uw : SCO UnixWare

[표 2] Configure 스크립트 구동시 OS 지정

 

[sparc5:root]:/user/kong/lsof_4.56> ./Configure solaris
Testing prdata.h for PR_GWINDOWS, using gcc
Testing prdata.h for PR_LDT, using gcc
Testing vnode.h for VSOCK, using gcc
.....

각 헤더파일 testing이 끝나면, 다시 inventory 해 볼 것인지를 물어보는데 file tree들을 변화시킬 것이 없다면 inventory과정을 re-run할 필요없다.

....
....
Do you want to take inventory (y|n) [y]? n
rm -f ddev.c dfile.c dlsof.h dmnt.c dnode*.c dproc.c dproto.h dsock.c dstore.c kernelbase.h machine.h machine.h.old new_machine.h __lseek.s Makefile
ln -s dialects/sun/ddev.c ddev.c
ln -s dialects/sun/dfile.c dfile.c
ln -s dialects/sun/dlsof.h dlsof.h
.....
ln -s dialects/sun/machine.h machine.h
kernelbase.h assembled.
Makefile and lib/Makefile created.

위 과정에서 Make 파일이 생성됨을 볼 수 있으며, 이어 LSOF를 customize 할 것인지를 물어오는데 [yes/no] question을 따라 다음의 각 옵션을 사용자가 선택할 수 있다.

Name

Description

Default Value

HASSECURITY

enabled : root 만이 lsof를 이용해 열려진 파일들을 확인 할 수 있음.
disabled :누구든 모든 열려진 파일들을 lsof를 이 용해 확인 할 수 있음.

Disabled

WARNINGSTATE

enabled : lsof가 필요할 경우 언제든지 warning messages를 출력함.
disabled : warning messages를 출력하지 않음. -w (disables) +w (enables) 로 조절 가능함.

Enabled

WARNDEVACCESS

enabled : lsof가 /dev (또는 /devices)를 억세스 할 수 없을 때, warning messages를 출력함.
disabled : lsof가 /dev (또는 /devices)를 억세스 할 수 없을 때, skip 해 버림.

Enabled

HASDCACHE

enabled : lsof가 /dev (또는 /devices)의 파일들에 관한 정보를 포함하고 있는
device cache file을 생성함.

< define path options >

HASENVDC, HASPERSDC,
HASPERSDCPATH, HASSYSDC
disabled : lsof 가 device cache file 생성하지 않음.

Enabled

HASENVDC

HASPERSDC

HASPERSDCPATH

HASDCACHE를 정의하면, device cache file path를 기술하기 위해 연관된
다른 옵션들의 구성도 정의해 주어야 한다.

< 현재 설정된 path options >

#define HASENVDC "LSOFDEVCACHE"
#define HASPERSDC "%h/%p.lsof_%L"
#define HASPERSDCPATH "LSOFPERSDCPATH"
※ 자세한 사항은 00DCACHE ,00FAQ 참고

"LSOFDEVCACHE"

"%h/%p.lsof_%L"

"LSOFPERSDCPATH"

HASKERNIDCK

lsof가 현재의 커널상태와 최초 lsof가 설치되어 구동되었을 당시의 커널과 비교하여,
시스템에서 부적절하게 실행되는 것을 탐지할 수 있다.

kernel identity check로 인해 일부 UNIX
(예:AIX) 시스템에서 구동시간이 많이 걸리는 경우가 있어서 disable 시켜야 할 때가 있을 수도 있지만,
lsof를 부적절하게 구동함으로써 오는 위험요소가 증가할 수 있다는 것을 배제할 수 없다.

Enabled

[표 3] Customize 옵션

 

위의 각 항목들 및 설정값들은 LSOF가 기본적으로 제공하는 것으로 변경을 원할 경우에는 machine.h 파일을 직접 수정하거나 Customize 스크립트를 직접 구동하여 변경할 수도 있다.

④ build & install

Configure 과정을 마치고 나면, 시스템에 인스톨 할 수 있다. 기본적인 install 과 정은 아래와 같다.

■ build LSOF system

[cert:root]:/user/kong/lsof_4.56> make
(cd lib; make DEBUG="-O" CFGF="-Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR=\\"5.6\\"")
gcc -Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR="5.6" -O -c ckkv.c
.....
.....
gcc -o lsof -Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR=\\"5.6\\" -O ddev.o dfile.o dmnt.o dnode.o dnode1.o dnode2.o dproc.o dsock.o dstore.o arg.o main.o misc.o node.o print.o proc.o store.o usage.o -L./lib -llsof -lkvm -lelf -lsocket -lnsl

■ Install LSOF system

[cert:root]:/user/kong/lsof_4.56> make install
(cd lib; make DEBUG="-O" CFGF="-Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR=\\"5.6\\"")
Constructing version.h
gcc -Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR=\\"5.6\\" -O -c usage.c
gcc -o lsof -Dsolaris=20600 -DHASPR_GWINDOWS -DHAS_VSOCK -DLSOF_VSTR=\\"5.6\\" -O ddev.o dfile.o dmnt.o dnode.o dnode1.o dnode2.o dproc.o dsock.o dstore.o arg.o main.o misc.o node.o print.o proc.o store.o usage.o -L./lib -llsof -lkvm -lelf -lsocket -lnsl

여기까지 과정을 마치면 일반적인 설치는 모두 끝나고 lsof 실행파일이 생성된다.

※ 별도로 install ruleset 지정하고자 할 경우

가상메모리의 커널 image를 담고있는 파일인 /dev/kmem(또는 /dev/mem)를 read 할 수 있도록 LSOF는 setgid 로 설치되어야 하는데, 일반적으로 다음과 같은 ruleset 형태로 지정한다.

SunOS install rule actions :
install <options> -m 2755 -g kmem lsof <bin_dest>
install <options> -m 444 lsof.8 <man_dest>
Solaris install rule actions :

install -[cf] <bin_dest> <options> -m 2755 -g sys lsof
install -[cf] <man_dest> <options> -m 444 lsof.8

5. LSOF 사용하기

■ LSOF 옵션

옵션

기 능

옵션

기 능

-?
-h

list help

-a

AND selections (OR)

-d
-D

s select by FD set
D ?|i|b|r|u[path]

+|-f

-files +filesys

-l

list UID numbers

-n
-N

no host names
select NFS files

-s

list file size

-t
-T

terse listing
disable TCP/TPI info

-v
-V

display version info
verbose search

-F [f]

select fields;-F? for help

-o o

o 0t offset digits (8)

-S [t]

t second stat timeout(15)

-i i

select by IPv4 address: [proto][@host|addr][:svc_list|port_list]

+|-r [t]

repeat every t seconds (15);
+ until no files, - forever

-b

avoid kernel blocks

-c c

list command c

-P

no port names

-i

select IPv4 files

-p s

select by PID set

-C

no kernel name cache

+|-w

Warnings (+)

-R

list paRent PID

-k k

kernelsymbols (/dev/ksyms)

-U

select Unix socket

-u s

exclude(^)/select login/UID s

-m m

kernel memory (/dev/kmem)

+|-M

portMap registration (-)

--

end option scan

-g [s]

select by process group ID set and print process group IDs

names

select named files or files on named file systems

 

■ 실행결과 보기

실행결과에 해당되는 각 column 들을 간단하게 살펴보면 다음 [표5] 와 같다.

Column

설 명

Command

프로세스와 관련된 Unix command 이름

PID
PPID
PGRP

Process IDentification number

Parent Process IDentification number
(해당 프로세스의 부모 프로세스 ID)

Process Group IDentification number
(해당 프로세스와 관련된 프로세스 그룹 ID)

USER

해당 프로세스를 소유한 사용자 ID 또는 login name

FD

File Descriptor number
(ex) cwd : current working directory
r : read access / w : write access / u : read and write access

TYPE

해당 파일과 관련한 노드 타입
(ex) inet : Internet domain socket

DEVICE

device number

SIZE
SIZE/OFF
OFFSET

file 이나 file offset의 사이즈

INODE
NODE-ID

local file 의 node number 또는 Internet protocol type
또는 서버 호스트의 NFS file의 inode number

NAME

해당 파일이 소속된 mount point나 파일 시스템의 이름

[표 6] lsof 실행결과의 각 Column

 

■ LSOF 주요 옵션 사용 예

* 특정 파일을 억세스하고 있는 프로세스 확인 : lsof <path/file-name>

[cert:root]:/> lsof /etc/passwd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
ns-httpd 244 root 9r VREG 32,0 3044 99217 /etc/passwd
....

* internet socket 확인 : lsof -i

Internet address 출력형식 : [protocol][@hostname|hostaddr][:service|port]

- 특정 호스트(또는 ip)에 대한 접속 확인

[cert:root]:/> lsof -i@172.16.2.146
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
in.telnet 10124 root 0u inet 0x61d4b788 0t71 TCP cert:telnet->172.16.2.146:1109 (ESTABLISHED)
in.telnet 10124 root 1u inet 0x61d4b788 0t71 TCP cert:telnet->172.16.2.146:1109 (ESTABLISHED)
in.telnet 10124 root 2u inet 0x61d4b788 0t71 TCP cert:telnet->172.16.2.146:1109 (ESTABLISHED)
.....

- 특정 포트로 접속한 리스트 확인

[cert:root]:/usr/sbin> lsof -i @certcc.or.kr:23
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
in.telnet 104 root 2u inet 0x612df850 0t152 TCP cert:telnet->172.16.2.159:1176 (ESTABLISHED)
in.telnet 28462 root 0u inet 0x61aee578 0t71 TCP cert:telnet->172.16.2.146:4250 (ESTABLISHED)
.....

* 특정 user가 오픈한 프로세스를 확인 : lsof -u <loginname> 혹은 lsof -u <UID>

[cert:root]:/> lsof -u kong
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
csh 21309 kong cwd VDIR 32,4 1536 223602 /user/kong/lsof_4.56
csh 21309 kong txt VREG 32,6 158608 298136 /usr/bin/csh
.......

- 특정사용자 제외시 "^" 심볼을 사용하고, 여러명을 동시에 지정하려면 ","를 이용한다.

[cert:root]:/dev/pts> lsof -u ^root,kong,yjkim
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
csh 8992 yjkim cwd VDIR 32,0 1024 2 /
csh 8992 yjkim txt VREG 32,6 158608 298136 /usr/bin/csh
csh 8992 yjkim txt VREG 32,6 70996 136979 /usr/lib/locale/ko/ko.so.1
csh 8992 yjkim txt VREG 32,6 1024888 6749 /usr/lib/libc.so.1
.....
csh 21309 kong cwd VDIR 32,4 1536 223602 /user/kong/lsof_4.56
csh 21309 kong txt VREG 32,6 158608 298136 /usr/bin/csh
....

* 특정 프로세스가 오픈한 파일 리스트 확인 : lsof -p <PID>

- PID 112를 가진 프로세스가 사용하는 파일들 확인

[cert:root]:/usr/sbin> lsof -p 143
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
inetd 143 root cwd VDIR 32,0 1024 2 /
inetd 143 root txt VREG 32,6 33492 310933 /usr/sbin/inetd
inetd 143 root txt VREG 32,6 10696 6352 /usr (/dev/dsk/c0t0d0s6)
....
....
inetd 143 root 4u inet 0x603cab38 0t0 TCP *:ftp (LISTEN)
inetd 143 root 5u inet 0x610b13c0 0t0 TCP *:telnet (LISTEN)
inetd 143 root 6u inet 0x610b1240 0t0 TCP *:pop3 (LISTEN)
......

* ps 명령이 변조된 시스템에서는 의심스러운 포트 확인하기 예

[root@linux /root]# netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:auth *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:2626 *:* LISTEN
.......
[root@linux /dev]# fuser -n tcp 2626
2626/tcp: 607
[root@linux /dev]# lsof -p 607
PID TTY STAT TIME COMMAND
607 ? S 0:00 /usr/sbin/mingetty


※ 참고자료

1. lsof 4.56 README file and man page

2. Installing, configuring and using lsof 4.50 to list open files on systems running Solaris 2.x
http://www.cert.org/security-improvement/implementations/i042.05.html


공재순/ kong@certcc.or.kr

'Server' 카테고리의 다른 글

리눅스 계정 관리  (0) 2017.01.06
grep  (0) 2017.01.06
syslog.conf 로그파일 종류  (0) 2017.01.06
ssh RSA 암호화 키로 접속하기  (0) 2017.01.06
ab 커맨드  (0) 2017.01.06

syslog.conf

로그파일의 종류

로그이름

로그파일명

관련데몬

설명

커널로그

/dev/console

 

콘솔에 뿌려지는 로그

시스템로그

/var/log/messages

syslogd

리눅스커널로그 및 주된로그

보안로그

/var/log/secure

inetd

inetd에 의한 로그

메일로그

/var/log/maillog

sendmail
popper

메일로그(sendmail에 의한 로그)

크론로그

/var/log/cron

crond

crond에 의한 로그

부팅로그

/var/log/boot.log

 

시스템부팅시의 로그

FTP로그

/var/log/xferlog

ftpd

ftp로그

웹로그

/usr/local/apache/logs/access_log

httpd

아파치(웹서버)로그

네임서버로그

/var/log/named.log

named

네임서버(DNS)로그


'Server' 카테고리의 다른 글

grep  (0) 2017.01.06
LSOF 설치 및 사용가이드  (0) 2017.01.06
ssh RSA 암호화 키로 접속하기  (0) 2017.01.06
ab 커맨드  (0) 2017.01.06
한 유저에게 여러개의 도메인 제공하기  (0) 2017.01.06

At first, customize /etc/ssh/sshd_config, /etc/ssh/ssh_config

[root@wowsecurity ~/work]# su - sist

:: 키 생성
[sist@wowsecurity ~]$ ssh-keygen -t rsa1 -N "sist1234"
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/sist/.ssh/identity):
Your identification has been saved in /home/sist/.ssh/identity.
Your public key has been saved in /home/sist/.ssh/identity.pub.
The key fingerprint is:
30:b3:fe:c2:3f:b1:47:58:4e:9d:46:c0:84:06:c9:45 sist@wowsecurity.net

[sist@wowsecurity ~]$ chmod 755 .ssh
[sist@wowsecurity ~]$ cd .ssh
[sist@wowsecurity ~/.ssh]$ ls
identity identity.pub known_hosts

:: 공개키를 접속할 서버로 전송한다.
[sist@wowsecurity ~/.ssh]$ scp identity.pub sist@211.63.89.93:.ssh/authorized_key;
sist@211.63.89.93's password:
identity.pub 100% 339 0.3KB/s 00:00

:: 접속
[sist@wowsecurity ~/.ssh]$ ssh -1 sist@211.63.89.93

'Server' 카테고리의 다른 글

LSOF 설치 및 사용가이드  (0) 2017.01.06
syslog.conf 로그파일 종류  (0) 2017.01.06
ab 커맨드  (0) 2017.01.06
한 유저에게 여러개의 도메인 제공하기  (0) 2017.01.06
SMTP 동적릴레이 - saslauthd  (0) 2017.01.06

:: 사용법

[root@wowsecurity /var/www/html]# ab -n 100 -c 10 http://www.wowsecurity.net/

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.wowsecurity.net (be patient).....done


Server Software: Apache
Server Hostname: www.wowsecurity.net
Server Port: 80

Document Path: /
Document Length: 6 bytes

Concurrency Level: 10
Time taken for tests: 0.61983 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 19074 bytes
HTML transferred: 612 bytes
Requests per second: 1613.35 [#/sec] (mean)
Time per request: 6.198 [ms] (mean)
Time per request: 0.620 [ms] (mean, across all concurrent requests)
Transfer rate: 290.40 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 1
Processing: 1 5 3.9 3 20
Waiting: 1 4 3.8 3 20
Total: 1 5 3.9 4 20

Percentage of the requests served within a certain time (ms)
50% 4
66% 6
75% 7
80% 7
90% 13
95% 15
98% 18
99% 20
100% 20 (longest request)


:: 사용법
ab [ -k ] [ -i ] [ -n 요청수 ] [ -t 시간제한 ] [ -c 동시접속 ] [ -p
POST file ] [ -A 인증 유저이름:패스워드 ] [ -P 프락시인증 유저이름:패스
워 드 ] [ -H Custom header ] [ -C Cookie name=value ] [ -T content-type
] [ -v verbosity ] ] [ -w HTML 출력 ] ] [ -x 속성 ] ] [ -y 
속성 ] ] [ -z

속성 ] [http://]서버이름[:port]/path

ab [ -V ] [ -h ]

설명
ab 는 Apache Web server의 상태를 측정하는 툴이며 초당 Apache server가얼
마나 많은 요청을 처리할수 있는지를 측정할수 있다.

옵션
-k HTTP KeepAlive (연결 지속성) 요소를 사용 가능 하게 한다. 이
것 은 하나의 HTTP session에서 여러 개의 요청을 처리할 수 있
다. 기본값은 연결 지속성기능을 사용하지 않는다.

-i GET 방식 대신에 HTTP ’HEAD’를 사용한다. POST와 섞어서 사 용
할수 없다.

-n 요청수 측정을 하기 위한 요청수를 지정한다. 따로 지정하지 않는다면
하나의요청만이 수행된다.

-t 시간제한 측정을 어느 정도까지 할 지 초단위로 지정한다. 따로 지정하지
않 으 면측정 세션에 대해서 50000개의 요청을 자동으로 정의한
다. 고정된 시간 동안 서버를 측정하기 위하여 사용한다. 기본
적으로 시간을제한하지는 않는다.

-c 동시접속수
동 시에 요청을 처리할 수 있는 수량을 지정한다. 기본값으로는
한번에 하나의요청만을 수행한다. 즉 동시 접속을 하지 않는 다
는 의미이다.

-p POST file
아 파치 웹서버에 어떠한 HTTP POST 요청을 보내기 위한 data를
가진 파일을지정한다.

-A Authorization username:password
서버로 신용증명을 하는 기본 인증을 지원한다. 사용자 이름 과
패스워드는 하나의 ’:’로 구분하고, uuencoded로 변환한 데이터
를 보낸다. 문자열은 서버가 필요로 하든 안하든 상관없이 보
내며, 401 인증을 보내는 것을 필요로 한다.

-p Proxy-Authorization username:password
프 락시 서버로 신용증명을 하는 기본 인증을 지원한다. 사용자
이름과 패스워드는하나의 ’:’로 구분하고, uuencoded로 변환 한
데이터를 보낸다. 문자열은 프락시가 필요로 하든 안하든 상관
없이 보내며, 407 인증을보내는 것을 필요로 한다.

-C Cookie name=value
요청에 ’Cookie:’ line을 추가한다. 이 인자는 ’name=value’ 의
형태를가진다. 이 옵션은 반복된다.

-H Header string
요청에 임의의 헤더를 추가한다. 이 인자는 유효한 헤더의 형태
를 가지며, 보통 하나의 쌍으로 이루어진 필드 값을 콜론(:) 으
로 구분을 한다. 예를 들어

-T content-type
POST data에 대한 content-type header를 지정한다.

-v 출력 레벨을 지정한다. 4단계는 결과값 상단에 HTML 헤더를 출
력하며, 3단계는결과물 상단에 응답 코드(예를 들어 404, 200
등)를 출력하며, 2단계는 경고와정보 메세지를 출력한다.

-w HTML table로 결과물을 출력한다. 기본 table은 2칼럼이며 흰색
바탕이다.

-x attributes
에 대한 속성을 지정한다. 속성은
과 같
이 들어간다.

-y attributes
에 대한 속성값을 지정한다.

-z attributes
에 대한 속성값을 지정한다.

-V 버전 정보를 출력하고 프로그램을 종료한다.

-h 사용법에 대한 정보를 출력한다.


'Server' 카테고리의 다른 글

syslog.conf 로그파일 종류  (0) 2017.01.06
ssh RSA 암호화 키로 접속하기  (0) 2017.01.06
한 유저에게 여러개의 도메인 제공하기  (0) 2017.01.06
SMTP 동적릴레이 - saslauthd  (0) 2017.01.06
Authoritative-only Name Server  (0) 2017.01.06

# 유저생성
useradd sbsuser
su - sbsuser
vi /etc/httpd/conf/httpd.conf

# httpd.conf 설정
# Own Page

ServerAdmin leopit@wowsecurity.net
DocumentRoot /var/www/html
ServerName wowsecurity.net
ServerAlias www.wowsecurity.net
UserDir public_html
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log common


# leopit

ServerAdmin leopit@wowsecurity.net
DocumentRoot /home/leopit/public_html
ServerName leopit.wowsecurity.net
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log common


# sbs

ServerAdmin sbs@sbs.co.kr
DocumentRoot /www/sbs
ServerName www.sbs.co.kr
UserDir sbshome
ErrorLog /www/sbs/sbs_error_log
CustomLog /www/sbs/sbs_access_log common


# kbs

ServerAdmin kbs@kbs.co.kr
DocumentRoot /www/kbs
ServerName www.kbs.co.kr
UserDir kbshome
ErrorLog /www/kbs/kbs_error_log
CustomLog /www/kbs/kbs_access_log common

# imbc

ServerAdmin imbc@imbc.com
DocumentRoot /www/imbc
ServerName www.imbc.com
UserDir imbchome
ErrorLog /www/imbc/imbc_error_log
CustomLog /www/imbc/imbc_access_log common


# error

ServerAdmin leopit@wowsecurity.net
DocumentRoot /www/error
ServerName error.wowsecurity.net
ServerAlias *.wowsecurity.net
ServerAlias *.sbs.co.kr
ServerAlias *.kbs.co.kr
ServerAlias *.imbc.com


service httpd restart
su - sbsuser

위와같이 설정한 후 sbsuser 홈 디렉토리에 sbshome imbchome kbshome을 생성한후 index 페이지를 만든다

TESTING..

'Server' 카테고리의 다른 글

ssh RSA 암호화 키로 접속하기  (0) 2017.01.06
ab 커맨드  (0) 2017.01.06
SMTP 동적릴레이 - saslauthd  (0) 2017.01.06
Authoritative-only Name Server  (0) 2017.01.06
호스트네임을 이용한 DNS 서버 셋팅하기  (0) 2017.01.06

+ Recent posts