Remote Service 1(①Centos 버전 비교 ②Systemd/Service 작동법 ③remoSvc1(telnet) ③-2 방화벽(GUI))
* 강사님 정리 노트 :
* CentOS 7 vs. CenOS 6
CentOS 7 이전(CentOS 6.x 이하)
sysinit 스크립트가 RunLevel(런레벨 : 부팅 운영레벨)과 서비스 관리를 위해 사용되었음
/etc/rc.d/init.d 디렉터리를 사용하고 명령어로는 service와 chkconfig 등을 사용함
- 프로세스간의 통신은 D-Bus에서 담당(socket)
- 전통적인 sysinit의 경우 서비스 감시 기능이 부족했다는 점
- 서비스간의 종속성을 관리하지 못한다라는 점
-복잡한 스크립트를 필요로 했다라는 점
CentOS 7 현재
systemd 리눅스 배포판에서 기본 서비스 관리와 시스템 매니저로 채택
sysinit와 호환되기 때문에 동시에 사용할 수 있음
- 부팅 시 실행되는 서비스를 최소화 시키며 순차적으로 진행되는 방식이 아닌 병렬화 방식으로 진행함
- 부팅 속도가 빨라졌으며 로그 관리, 하드웨어 및 커널의 Control Group과 같은 지원을 한다라는 장점
systemd는 /lib/systemd/system/(/usr/lib/systemd/system) 디렉터리와 /etc/systemd/system 디렉터리를 사용하고 명령어로는 systemctl을 사용함
[sysinit 부팅 과정]
[systemd 부팅 과정]
* Systemd 구성요소
리눅스 커널
- 서비스(daemon)를 사용하게 위해서는 먼저 리눅스 커널에서 이 서비스를 지원하는 옵션이 활성화 되어있어야 함
옵션은
CGroup(Control Group)
→ Process ID 대신에 프로세스를 추적하기 위해서 사용
Autofs
→ 파일 시스템을 자동으로 마운트 하기 위해서 사용
D-bus
→ 어플리케이션 간에 일대일 통신을 지원하기 위해 사용되는 커널의 기능
system 라이브러리
- 커널에서 systemd를 지원하기 위한 옵션이 활성화되면 여러 시스템 라이브러리가 설치되어야
systemd를 사용할 수가 있음
(libpam, libcap, tcpwrapper, ... 등등)
systemd 코어
- service, socket, mount와 같은 모든 system unit를 관리할 뿐 아니라 모든 log(기록) 데이터를 저장하는 역할
- 이 코어부분은 systemctl와 systemd 유틸리티가 담당
systemd 데몬과 타겟
- systemd 서비스를 제공하는 데몬으로써 systemd가 사용 됨
- 시스템 실행모드를 target으로 poweroff, rescue, reboot 등
systemd 유틸리티
- systemd가 제공하는 모든 기능을 사용자가 실제로 사용 가능하게 하는 유틸리티로
systemctl에서 사용 됨
* Service(daemon) 작동 방법
Centos 7 이전 (Centos 6.x 이하) |
CentOS 7 (현재) |
service SERVICE(daemon) start |
systemctl start SERVICE(daemon) |
service SERVICE(daemon) stop |
systemctl stop SERVICE(daemon) |
service SERVICE(daemon) restart |
systemctl restart SERVICE(daemon) |
service SERVICE(daemon) reload |
systemctl reload SERVICE(daemon) |
service SERVICE(daemon) status |
systemctl status SERVICE(daemon) systemctl is-active SERVICE(daemon) |
* Remote Service(원격 서비스)
> Telnet(remoSvc1)
- 시스템 관리를 하는데 있어서 해당 시스템이 내 앞에 없어서 마치 내 앞에 있는 것처럼
사용하여 관리를 할 수 있음
첫번째, 원격 서비스
Telnet
- 패킷을 전송할 때 평문으로 전송함
(즉! 암호화 되어있지 않음)
- 비암호화 프로그램
- 테스트 용도(암호화 필요 없는 곳에서)
- 포트 23번
- 기본적으로 root 접속을 허용하지 않게 설정되어 있음
- 한글지원 안함
[연습]
Windows OS에서 CentOS 7 로 telnet을(원격 서비스) 사용해보기
Client Server
준비물
cmd창
사용형식
1) telnet 입력 후 enter
open Server-IP
2) telnet Server-IP
[cmd]
Error1 >
(참고로 telnet 명령어를 입력 후 에러 메시지가 나오면 ('telnet'은(는) 내부 또는 외부 명령,
실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.) 아래와 같이 작업하세요
Windows OS -> 시작 -> 제어판 -> 보기 기준 : 범주 -> 프로그램 ->
프로그램 및 기능 : Windows 기능 사용/사용 안 함 -> 텔넷 서버와 텔넷 클라이언트 항목 ->
텔넷 클라이언트에 체크 -> 확인
( ∵ 윈도우에서 리눅스로 들어갈거기 때문에)
확인했는데도 에러 메시지가 나온다면 Windows OS를 재부팅 함
Error 2>
! 리눅스 방화벽 문제 해결
1) 방화벽 설정 (GUI)
관리자로 로그인 → 프로그램 → 잡다 → 방화벽
영역 → 서비스 → telnet 선택
Error 3>
동일 에러
리눅스에 telnet 패키지 설치
<실습> cd-rom 마운트 해서 rpm 해보기!
① cd-rom 삽입 : vm > settings> cd/dvd > x86~ everything 선택
② mount 확인
[root@junga ~]# rpm -qa | grep telnet
[root@junga ~]#
[root@junga ~]# mount | tail -1
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2)
[root@junga ~]#
[root@junga ~]# df -h | tail -1
/dev/sr0 8.1G 8.1G 0 100% /run/media/root/CentOS 7 x86_64
[root@junga ~]#
③ mount point 너무 길어서 umount, mkdir 후 다시 mount
[root@junga ~]# umount /dev/sr0
[root@junga ~]#
[root@junga ~]# mkdir /cdrom
[root@junga ~]#
[root@junga ~]# mount /dev/cdrom /cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@junga ~]#
[root@junga ~]# mount | tail -1
/dev/sr0 on /cdrom type iso9660 (ro,relatime)
[root@junga ~]#
[root@junga ~]# df -h | tail -1
/dev/sr0 8.1G 8.1G 0 100% /cdrom
[root@junga ~]#
[root@junga ~]#
③ telnet 패키지 설치
[root@junga ~]# cd /cdrom
[root@junga cdrom]#
[root@junga cdrom]# ls
CentOS_BuildTag GPL RPM-GPG-KEY-CentOS-7 images
EFI LiveOS RPM-GPG-KEY-CentOS-Testing-7 isolinux
EULA Packages TRANS.TBL repodata
[root@junga cdrom]#
[root@junga cdrom]# pwd
/cdrom
[root@junga cdrom]# cd Packages/
[root@junga Packages]#
[root@junga Packages]# ls telnet*
telnet-0.17-64.el7.x86_64.rpm telnet-server-0.17-64.el7.x86_64.rpm
[root@junga Packages]#
[root@junga Packages]# rpm -ivh telnet-0.17-64.el7.x86_64.rpm
준비 중... ################################# [100%]
Updating / installing...
1:telnet-1:0.17-64.el7 ################################# [100%]
[root@junga Packages]#
[root@junga Packages]# rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
준비 중... ################################# [100%]
Updating / installing...
1:telnet-server-1:0.17-64.el7 ################################# [100%]
[root@junga Packages]#
[root@junga Packages]#
[root@junga Packages]# rpm -qa | grep telnet | nl
1 telnet-server-0.17-64.el7.x86_64
2 telnet-0.17-64.el7.x86_64
④ telnet Service 시작
[root@junga Packages]# systemctl is-active telnet.socket
active
[root@junga Packages]# systemctl restart telnet.socket
[root@junga Packages]#
[root@junga Packages]# systemctl is-active telnet.socket
active
[root@junga Packages]# systemctl -l status telnet.socket
● telnet.socket - Telnet Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/telnet.socket; disabled; vendor preset: disabled)
Active: active (listening) since 화 2018-01-16 15:11:41 KST; 43s ago
Docs: man:telnetd(8)
Listen: [::]:23 (Stream)
Accepted: 0; Connected: 0
1월 16 15:11:41 junga.kgitbank systemd[1]: Stopping Telnet Server Activation Socket.
1월 16 15:11:41 junga.kgitbank systemd[1]: Listening on Telnet Server Activation Socket.
1월 16 15:11:41 junga.kgitbank systemd[1]: Starting Telnet Server Activation Socket.
[root@junga Packages]#
⑤ 관리자 로그인
접속 안됨
접속 안되게 설정 되어 있음!
만약 되면 보안성 떨어짐
⑥ 사용자 로그인
접속 OK~!