※ standalone

  : 서비스가 메모리에 항상 상주하는 방식

  : 데몬 프로세스들이 독립적으로 수행

  : 자주 실행되는 데몬 프로세스에 적용되는 방식

  : /etc/rc.d/init.d 디렉터리에 위치

 

→ ntsysv

  : standalone 데몬 부팅 시 실행 여부 설정 가능

 

※ xinetd

  : 슈퍼 데몬 (xinetd)이 서비스 요청을 받아 해당 데몬을 실행 시켜 처리하는 방식

  : standalone 보다 서비스 속도 느림

  : 슈퍼 데몬은 standalone 방식

  : 서버 부하를 줄임

  : /etc/xinetd.d 디렉터리에 위치

 

 

※ standalone VS xinetd 테스트 (CentOS 6.x)

VMWARE CentOS6.8 2대

SERVER : 192.168.1.100

CLIENT : 192.168.1.150

 

▶ standalone ( vsftpd )

 

[ LINUX SERVER ]

# chkconfig 또는 chkconfig --list

→ xinetd 또한 standalone 방식

→ xinetd 기반의 서비스들은 xinetd 설치 되어 있을 경우 나타남

 

1. 패키지 설치

# yum -y install vsftpd

# yum -y install ntsysv

 

2. 서비스 시작

# service vsftpd start

 

# netstat -nltup | grep vsftpd

# ps -ef | grep vsftpd

3. 방화벽 설정

# vi /etc/selinux/config

SELINUX=disabled

 

# iptables -I INPUT -s 0.0.0.0/0 -d 192.168.1.100 -p tcp --dport 21 -j ACCEPT

 

# iptables -nL

# service iptables save

# service iptables restart

 

# useradd user1

# passwd user1

// password = 1

 

4. FTP 서버 테스트

[ LINUX CLIENT ]

# yum -y install ftp

// ftp : FTP CLIENT 패키지

 

#ftp [SERVER IP 주소]

user1 / 1

 

[ LINUX SERVER ]

# ps -ef | grep vsftpd

[ LINUX CLIENT ]

FTP 연결 끊기

 

[ LINUX SERVER ]

# ps -ef | grep vsftpd

 

xinetd ( telnet )

 

[ LINUX SERVER ]

1. 패키지 설치

# yum -y install telnet-server

 

2. 설정

# vi /etc/xinetd.d/telnet

disable = yes → no

 

3. 서비스 시작

# service xinetd restart

 

# ps -ef | grep telnet

4. 방화벽 설정

# iptables -I INPUT -s 0.0.0.0/0 -d 192.168.1.100 -p tcp --dport 23 -j ACCEPT

 

# iptables -nL

# service iptables save

# service iptables restart

 

[ LINUX CLIENT ]

# yum -y install telnet

// telnet = TELNET CLIENT 패키지

# telnet [SERVER IP 주소]

user1 / 1

 

[ LINUX SERVER ]

# ps -ef | grep telnet

[ LINUX CLIENT ]

TELNET 연결 끊기

 

[ LINUX SERVER ]

# ps -ef | grep telnet

 

FTP standalone → xinetd 변경

[ LINUX SERVER ]

1. 서비스 중지

# service vsftpd stop

 

2. 주 설정 파일 설정

# vi /etc/vsftpd/vsftpd.conf

:110 Listen=NO

// listen=YES → standalone

   listen=NO → xinetd

 

# cp /etc/xinetd.d/telnet /etc/xinetd.d/vsftp

 

# vi /etc/xinetd.d/vsftp

service ftp

{

disable = no

// yes = standalone, no = xinetd

flags = reuse

socket_type = stream

// 사용하는 TCP/IP 소켓 = stream | dgram

wait = no

user = root

// 해당 사용자 권한으로 실행

server = /user/sbin/vsftpd

log_on_failure += USERID

}

 

# ps -ef | grep vsftpd

# service xinetd restart

 

[ LINUX CLIENT ]

# ftp 192.168.1.100

user1 / 1

 

[ LINUX SERVER ]

# ps -ef | grep vsftpd

[ LINUX CLIENT ]

FTP 연결 끊기

 

[ LINUX SERVER ]

# ps -ef | grep vsftpd

 

 

'LINUX' 카테고리의 다른 글

[LINUX] 그룹 관리  (0) 2020.10.23
[Linux] 사용자 관리  (0) 2020.10.20
[Linux] vi 편집기 명령어  (0) 2020.07.04

※ 리눅스 그룹 관리

 

1. 사용자 그룹 확인

# id

# groups

 

 

2. 그룹 관리에 사용되는 파일

FILE 설명
/etc/group 그룹의 기본 정보를 저장하는 FILE
/etc/gshadow 그룹의 PW에 관련된 내용을 저장하는 FILE

 

▶ /etc/group

# grep mail /etc/group

  mail:x:12:postfix

내용 설명
mail 그룹의 이름, groupadd를 사용해 그룹 생성이 가능
x 패스워드, 암호화된 패스워드가 /etc/gshadow 파일에 저장
12 Group ID (GID)
postfix User List, postfix 사용자가 가입되어 있음

 

▶ /etc/gshadow

# grep mail /etc/gshadow

  mail:!:hsh:postfix

내용 설명
mail 그룹의 이름
! ! 또는 * : 이 그룹으로 전환 시 패스워드를 사용할 수 없다
명령어 gpasswd로 설정 가능

NULL 또는 !
hsh 그룹의 관리자
NULL
postfix User List

 

 

3. 그룹 관리 명령어

 

▶ 그룹 생성 (groupadd)

# groupadd [옵션] [그룹명]

# groupadd -g 1100 hsh

// GID 1100을 부여하며 hsh 그룹 생성

 

▶ 그룹 정보 수정 (groupmod)

# groupmod [옵션] [그룹명]

 

# groupmod -g 1200 hsh

// hsh 그룹의 GID를 1200으로 변경

# groupmod -n centos hsh

// hsh 그룹의 이름을 centos로 변경

 

▶ 그룹 삭제 (groupdel)

# groupdel centos

 

그룹 패스워드 설정 (gpasswd)

# gpasswd hsh

 

# grep hsh /etc/gshadow

// 암호화된 패스워드 확인

 

▶ 그룹 변경 (newgrp)

# newgrp hsh

// 로그인된 계정의 그룹을 hsh로 변경

 

# id

// 변경된 그룹 확인

 

그룹 변경 불가

# gpasswd -R hsh

// -R (restrict) 변경 불가

 

# newgrp hsh

// 변경 불가 확인

 

▶ 그룹 패스워드 삭제

# gpasswd -r hsh

// hsh 그룹의 패스워드 삭제

 

# grep hsh /etc/gshadow

// 패스워드 삭제된 것을 확인

 

* grpunconv / grpconv

  : grpunconv 사용할 경우 /etc/gshadow 파일이 삭제되고 그룹 패스워드를 /etc/group에 저장

  : grpconv 사용할 경우 /etc/gshadow 파일이 생성되고 그룹 패스워드를 /etc/gshadow에 저장

 

* 그룹 파일의 무결성 검사

# grpck

'LINUX' 카테고리의 다른 글

LINUX 서비스 운영 방식 - standalone / xinetd  (0) 2021.08.02
[Linux] 사용자 관리  (0) 2020.10.20
[Linux] vi 편집기 명령어  (0) 2020.07.04

※ 리눅스 사용자 관리

 

1. 사용자 관리 기본 파일

FILE 설명
/etc/passwd 사용자의 기본 정보를 저장하는 FILE
/etc/shadow 사용자의 PW에 관련된 내용을 저장하는 FILE

 

/etc/passwd

# grep hsh /etc/passwd

  hsh:x:500:500:hsh:/home/hsh:/bin/bash

내용 설명
hsh 사용자 이름
x - x : PW 암호화, /etc/shadow에 저장
- * : 로그인 불가능
-   : 패스워드 없이 로그인 가능
500 UID
500 GID
hsh 사용자 별명
/home/hsh 홈 DIR
/bin/bash 사용자 SHELL

 

/etc/shadow

# grep hsh /etc/shadow

  hsh:!!:18338:0:99999:7:::

내용 설명
hsh 사용자 이름
!!  !! : PW 생성되지 않았음
 * : 로그인이 불가능
18338 1970.01.01 부터 변경된 날짜까지 총 날짜 수
0 사용자 PW 변경 후 최소한 그 PW를 사용해야 되는 날짜 수
0
99999 사용자 PW 생성 또는 변경 후에 다시 변경 없이 최대로 사용가능한 날짜 수
99999
7 PW 만료 며칠 전부터 경고 메세지를 보낼지 결정하는 날짜 수
7
:: PW 만료된 이후 계정도 그 이후 얼마 후에 사용 불능으로 할지 결정하는 날짜
NULL
:: 1970.01.01 부터 며칠째 되는 날짜에 사용자의 계정이 만료될 것인지 결정
NULL
: 특수한 플래그로 미래에 사용하기 위한 목적으로 빈 공간
NULL

$6$PwJc4eD8/pqQFK.C$pMdaV.RWud8GVv7Q/LxSebKE3Wwc/Ae4V1HKyIzySN

   $6$

  : 암호화하는 해시 함수의 종류

              SHA-512   6

              MD5         1

              Blowfish   3

              NT Bash    3

              SHA-256    5

 

   $PwJc4eD8/pqQFK.C$

  : SALT = 서로 다른 사용자가 같은 PW 사용해도 SALT 때문에 다른 암호화된 부분이 생성됨

 

   $pMdaV.RWud8GVv7Q/LxSebKE3Wwc/Ae4V1HKyIzySN

           : 암호화된 (encrypted) PW

             SHA-512   86문자

             MD-5       22문자

             SHA-256   43문자

 

* pwconv / pwunconv

  : pwconv 명령어 적용시 /etc/passwd 과 /etc/shadow 이 분리되어 암호화된 비밀번호가 shadow 파일에 저장

  : pwunconv 명령어 적용시 /etc/shadow 이 사라지고 /etc/passwd에 암호화된 비밀번호가 저장

 

 

2. 사용자 생성 환경 설정 DIR / FILE

DIR / FILE 설명
/etc/skel/ 사용자 생성 시 홈 DIR에 복사되는 FILE, DIR를 포함하는 DIR
/etc/default/useradd 사용자 생성에 사용되는 기본 내용을 정의한 FILE
/etc/login.defs 암호화된 사용자의 PW FILE을 구성하는 요소들이 포함된 FILE

 

/etc/skel

# ls -a /etc/skel/

  . .. .bash_logout .bash_profile .bashrc

FILE 설명
.bash_logout 로그인 SHELL이 종료할 때마다 읽고 실행, 사용자 환경 설정 능력을 향상시킬 때 사용
.bash_profile bash가 로그인할 때마다 이 FILE을 읽어들여 그 안의 명령 실행
.bashrc 새로운 SHELL을 시작하는 경우 .bashrc FILE에서 명령 실행

  : /etc/profile

        - 계정에 상관없이 SHELL 환경설정 FILE

  : /etc/bashrc

        - 계정에 상관없이 SHELL 구동 FILE

 

 

/etc/default/useradd

설정 설명
GROUP=100 그룹 아이디, 사용자 생성 시 사용자 이름과 동일한 그룹 생성되는 것을 피하고 싶은 경우
-n 사용 시 사용자는 기본적으로 이 그룹에 속하게 된다
HOME=/home 사용자 생성 시 사용자의 홈 DIR 생성될 DIR 정의
INACTIVE=-1 PW 만료 후 계정이 비활성화되는 날짜 의미
-1 = 옵션 사용 X / 0 = PW 만료되자마자 계정 비활성화
EXPIRE= 계정 만료 날짜 YYYY-MM-DD
SHELL=bin/bash 사용자 생성 시 기본적으로 사용할 SHELL
/etc/shells에 저장된 다른 SHELL 사용 가능
SKE=/etc/skel 사용자 생성 시 사용할 skel DIR 정의
CREATE_MAIL_SPOOL=yes 사용자 생성 시 사용자의 메일을 저장할 FILE 생성 여부 정의

# useradd -D

// /etc/default/useradd 파일 내용 확인

 

 

/etc/login.defs

설정 설명
MAIL_DIR
사용자의 메일이 저장되는 DIR 정의
/var/spool/mail
PASS_MAX_DAYS PW 변경하지 않고 사용할 수 있는 최대 날짜 수
99999
PASS_MIN_DAYS PW 변경 후 그 PW를 사용해야 하는 최소 날짜 수
0
PASS_MIN_LEN PW 최소 길이
5
PASS_WARN_AGE PW 변경 전 경고 메세지를 보내는 날짜 수
7
UID_MIN 사용자 생성 시 할당되는 최저 UID
1000
UID_MAX 사용자 생성 시 가지게 되는 최대 UID
60000
SYS_UID_MIN 시스템 사용자에게 사용되는 최소 UID
201
SYS_UID_MAX 시스템 사용자에게 사용되는 최대 UID
999
CREATE_HOME 사용자 생성 시 홈 DIR를 만들지 결정
yes
GID_MIN 그룹에 사용되는 최소 GID
1000
GID_MAX 그룹에 사용되는 최대 GID
60000
UMASK 사용자의 홈 DIR 생성 시 갖게 되는 DIR 권한
077
USERGROUPS_ENAB 사용자 제거 시 그 사용자의 그룹에 다른 사용자가 없다면 그 그룹도 삭제
yes
ENCRYPT_METHOD PW 암호화하는 알고리즘 정의
SHA512

 

3. 사용자 관리 명령어

 

사용자 생성 (useradd / adduser)

# useradd [옵션] [사용자 계정]

# adduser [옵션] [사용자 계정]

옵션 설명
-u UID
-g GID
-G 보조 그룹 GID
-d 홈 DIR 지정
-e 계정 만료일 지정
# usermod -e YYYY/MM/DD [사용자 계정]
# usermod -e "" [사용자 계정]
-f 계정 유효일자 지정
-s 로그인 시 사용할 기본 SHELL 지정
-M 홈 DIR 생성하지 않음
-c 주석
-mk skel 파일 변경

 

 

사용자 정보 수정 (usermod)

# usermod [옵션] [사용자 계정]

옵션 설명
-u UID
-g GID
-G 보조 그룹 GID
-d 홈 DIR 지정
-e 계정 만료일 지정
-f 계정 유효일자 지정
-s 로그인 시 사용할 기본 SHELL 지정
-c 주석
-l 계정 이름 변경
-md 홈 DIR 변경
-L 사용자 일시 잠금
-U 사용자 잠금 해제

 

사용자 제거 (userdel)

# userdel [옵션] [사용자 계정]

옵션 설명
-r 홈 DIR과 메일 FILE 까지 같이 삭제
-f 로그인 상태에서 삭제

 

 

4. 사용자 정보 모니터링

FILE 설명
/var/run/utmp 각 사용자의 현재 로그인 정보 기록
who, w
/var/log/wtmp 사용자의 모든 로그인과 로그아웃을 기록하는 FILE
last
/var/log/btmp 사용자의 로그인 실패를 기록하는 FILE
lastb
/var/log/lastlog 모든 사용자의 가장 최근 로그인 정보를 기록하는 FILE
lastlog
/var/log/secure 인증 및 권한 부여에 대한 정보를 저장, 특히 ssh 관련된 모든 정보를 기록
#vi /var/log/secure

 

 

5. DIR / FILE 소유권자 변경 (chown)

 

 chown

# chown [user]:[group] [DIR | FILE]

 

# chown -R [user]:[group] [DIR | FILE]

// 하위 파일과 디렉토리까지 소유권자 변경

 

* 모든 사용자 접근 차단

  1) /etc/nologin 파일 생성

  2) 로그인 시도할 경우 출력될 내용 입력

  3) root 아닌 다른 아이디로 로그인 시도

  4) 로그인 막힌 것 확인

 

 

6. 패스워드 에이징

  : 명령어 chage (패스워드 에이징) 사용해 /etc/shadow 의 사용자 정보 변경

  : GUI → system-config-users 패키지 설치

 

사용자 정보 확인

# chage -l [USERNAME]

 

최소 (m) , 최대 (M) , 경고 날짜 (W) 변경

# chage -m 5 -M 60 -W 10 [USERNAME]

// 패스워드를 최소 5일 , 최대 60일까지 사용가능 , 만료 10일 전부터 경고 메세지를 받는다

 

계정 만료 기간 설정

# chage -I 10 -E 2020-12-31 [USERNAME]

// 패스워드 만료 후 10일동안 로그인 하지 않을 경우 강제로 계정 잠금상태로 변경

// 만료날짜 2020-12-31 로 설정

 

* 패스워드 파일 무결성 검사

# pwck

'LINUX' 카테고리의 다른 글

LINUX 서비스 운영 방식 - standalone / xinetd  (0) 2021.08.02
[LINUX] 그룹 관리  (0) 2020.10.23
[Linux] vi 편집기 명령어  (0) 2020.07.04

1. vi  편집기 구조

 명령 모드 (Command Mode)

 입력 모드 (Insert Mode)

 마지막 행 모드 (Last Line Mode) = 콜론 모드, EX 모드

입력 모드 ESC -->
<-- i, a, o, I, A, O
명령 모드 : (콜론) -->
<-- ESC OR ENTER
EX 모드

 

2. vi  편집기 명령어

▶ 저장 및 종료

명령 설명
:q vi 편집기 종료
:q! 작업 내용 저장 X, 강제 종료
:w [파일명] 작업 내용 저장, 파일명 지정시 새 파일로 저장
:wq 작업 내용 저장, vi 편집기 종료
:wq! 작업 내용 저장, vi 편집기 강제 종료
:f [파일명] 파일 이름을 [파일명]으로 변경

 

 입력 모드 전환

명령 설명
i 현재 커서 앞에 입력
a 현재 커서 뒤에 입력
o 커서 위치의 다음 행에 입력
I (대문자 i) 커서 위치 행의 처음으로 이동하여 입력
A 커서 위치 행의 끝으로 이동하여 입력
O 커서 위치 행의 이전 행에 입력

 

 커서 이동

명령 설명
h 커서를 위로 이동
j 커서를 아래로 이동
k 커서를 왼쪽으로 이동
l 커서를 오른쪽으로 이동
0 (숫자 0) 커서를 현재 행의 처음으로 이동
$ (Ctrl + 4) 커서를 현저 행의 마지막으로 이동
H 커서를 화면의 첫 행으로 이동
M 커서를 화면의 중간 행으로 이동
L 커서를 화면의 마지막 행으로 이동
w 커서를 다음 단어의 첫 글자로 이동
b 커서를 앞 단어의 첫 글자로 이동
e 커서를 다음 단어의 마지막 글자로 이동
G 커서를 파일의 마지막 행으로 이동
:행번호 커서를 지정한 행 번호로 이동

 

 화면 이동

명령 설명
Ctrl + u 화면의 절반 만큼 위로 이동
Ctrl + d 화면의 절반 만틈 아래로 이동
Ctrl + b / Page Up 한화면 위로 이동
Ctrl + f / Page Down 한화면 아래로 이동
Ctrl + y 화면을 한 행 위로 이동
Ctrl + e 화면을 한 행 아래로 이동

 

 수정

명령 설명
r 커서가 위치한 글자를 다른 글자로 수정
cw 커서 위치에서부터 현재 단어의 끝까지 수정
글자 수 + cw 커서 위치로부터 지정한 숫자의 단어만큼 수정
cc 커서가 위치한 행의 내용을 모두 수정
C 커서 위치에서 행의 끝까지 수정
yy 커서가 위치한 행 복사
행 수 + yy 커서 위치에서 행 수 만큼 복사
dd 커서가 위치한 행 잘라내기
행 수 + dd 커서 위치에서 행 수 만틈 잘라내기
p 커서가 위치한 행의 아래쪽에 붙여넣기
P 커서가 위치한 행의 위쪽에 붙여넣기
:s/문자열/문자열 커서가 위치한 행에서 첫 번째로 나오는 대상문자열을 바꿀 문자열로 바꿈
:%s/문자열/문자열 파일 전체에서 모든 대상 문자열을 바꿀 문자열로 바꿈
:범위s/문자열/문자열 범위 내 모든 각 행에서 첫 번째로 나오는 대상 문자열을 바꿀 문자열로 바꿈
:범위s/문자열/문자열/g 범위 내 모든 행에서 대상 문자열을 바꿀 문자열로 바꿈
:범위s/문자열/문자열/gc 범위 내 모든 행에서 대상 문자열을 바꿀 문자열로 바꾸고 수정 여부를 물음

  : 범위 (Range)

      .,$s          : 현재부터 끝까지 치환

      N,N2s      : N 부터 N2 행까지 치환

      -N,+N2    : 현재 커서 위치 기준으로 -N ~ +N2 행까지 치환

  : Option

      g            : 한 줄 내의 모든 패턴 변경

      i             : 대소문자 구분 안함

      c            : 변경여부 확인

 

 

삭제

명령 설명
x 커서가 위치한 글자 삭제
글자 수 + x 커서 위치에서 글자 수 만큼 삭제
dw 커서가 위치한 단어 삭제
단어 수 + dw 커서 위치에서 단어 수 만큼 삭제
dd 커서가 위치한 행을 삭제
행 수 + dd 커서 위치에서 행 수 만큼 삭제
D 커서 위치로부터 행의 끝까지 삭제

 

명령 취소

명령 설명
u 명령 취소
U 해당 행에서 한 모든 명령을 취소

 

 검색

명령 설명
/문자열 문자열 커서 아래 방향으로 검색
?문자열 문자열 커서 위 방향으로 검색
n 원래 방향으로 다음 문자열을 검색
N 반대 방향으로 다음 문자열을 검색

 

'LINUX' 카테고리의 다른 글

LINUX 서비스 운영 방식 - standalone / xinetd  (0) 2021.08.02
[LINUX] 그룹 관리  (0) 2020.10.23
[Linux] 사용자 관리  (0) 2020.10.20

+ Recent posts