Telnet과 SSH

로커스트·2021년 5월 17일
0

Linux 중급

목록 보기
2/4
post-thumbnail

1일차 정리 (05/17)
_<정리>__

Ip 수동으로 고정시키기 ( ifcfg-ens33 )
Telnet 서버 및 방화벽 설정
SSH서버


Ip 수동으로 고정시키기 ( ifcfg-ens33 )


고정IP 설정하기 위해서는 수동으로 설정해야 한다!!
nmtui → 실무에선 자주사용안한다

[root@Linux01 ~]# cd /etc/sysconfig/network-scripts/
=> 네트워크 설정파일이 있는 디렉토리

[root@Linux01 network-scripts]# ls
ifcfg-ens33 ifdown-isdn ifup-bnep ifup-routes
ifcfg-lo ifdown-post ifup-eth ifup-sit
ifdown ifdown-ppp ifup-ib ifup-tunnel
ifdown-Team ifdown-routes ifup-ippp ifup-wireless
ifdown-TeamPort ifdown-sit ifup-ipv6 init.ipv6-global
ifdown-bnep ifdown-tunnel ifup-isdn network-functions
ifdown-eth ifup ifup-plip network-functions-ipv6
ifdown-ib ifup-Team ifup-plusb
ifdown-ippp ifup-TeamPort ifup-post
ifdown-ipv6 ifup-aliases ifup-ppp
=> network-scripts 디렉토리 안에 있는 파일들

◎ ifcfg-ens33
→ 고정IP설정은 여기에서 설정한다 ( VM에선 ifcfg-ens33 설정하는 경우가 많다 )
→ 설명이 많으므로 다 외워서 작성할수는 없다 ..

BOOTPROTO=”dhcp” : 부팅하면서 DHCP에서 IP를 받아옴

UUID : 범용고유식별자
→ MAC주소하고 다르다 주민번호같으며, 다른장치도 다 가지고 있다.

ONBOOT="yes" : no하면 부팅시 아이피 못받아옴

[root@Linux01 network-scripts]# vim ifcfg-ens33


TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1249e591-aed9-4615-8abb-473ae3561c6a"
DEVICE="ens33"
ONBOOT="yes"


[root@Linux01 network-scripts]# mv ifcfg-ens33 ifcfg-ens33.bak
=> 설정이 많으므로 미리 백업을 만드는것이 좋다

◎ ifcfg-lo

127.0.0.1 -> 자기자신 테스트하는 주소
=> ifcfg-lo ( 루프백 )

[root@Linux01 network-scripts]# cat ifcfg-lo
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0

If you're having problems with gated making 127.0.0.0/8 a martian,

you can change this to something else (255.255.255.255, for example)

BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback


[root@Linux01 network-scripts]# systemctl start httpd
=> 웹서버(http) 시작하기
=> 파이어폭스에서 127.0.0.1 접속하여 ifcfg-lo 정상작동하는지 확인

네트워크 비트수 => /24 : 프리픽스 (prefix)
서브넷마스크 = 넷마스크 => 255.255.255.0
=> 둘다 같은거다 ( 1 네트워크비트 , 0 호스트비트 )

CLI 설치이유 ( 최소버전 설치이유 )
1.보안성 ( GUI로 설치하면 쓸데없는 프로세스가 공격의 타겟 )
2. 리소스 소모율이 적다
◎ ifcfg-lo 이용하여 ifcfg-ens33 파일 만들기

[root@Linux01 network-scripts]# cp ifcfg-lo ifcfg-ens33
=> ifcfg-lo를 복사하여 ifcfg-ens33 만든다

[root@Linux01 network-scripts]# vim ifcfg-ens33


DEVICE=ens33
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.2
DNS1=168.126.63.1
DNS2=8.8.8.8
ONBOOT=yes
NAME=ens33


[root@Linux01 network-scripts]# systemctl restart network
=>리눅스는 설정수정후에는 반드시 재시작해야한다.

→ 게이트웨이 , DNS 1,2 추가 , 나머지는 위와 같이 수정
( DNS 1, 2 2개가 있다 .. 1이 응답이 없을시 2에 쿼리(질의)한다 )
→ 작성순서는 상관없다

네트워크아이디 = 네크워크 대역 ( 192.168.1.0 )
2^8 -2 = 1 ~ 254 ( 0 네트워크아이디 , 255 브로드캐스트 )

◎ ifcfg-ens33로 변경된 IP 정보 확인하기

[root@Linux01 network-scripts]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fede:db8e prefixlen 64 scopeid 0x20
ether 00:0c:29:de:db:8e txqueuelen 1000 (Ethernet)
=> 변경된 아이피 확인하기

[root@Linux01 network-scripts]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
=> 게이트웨이 정보 확인하기

[root@Linux01 network-scripts]# cat /etc/resolv.conf

Generated by NetworkManager

nameserver 168.126.63.1
nameserver 8.8.8.8
=> DNS 정보 확인하기

[root@Linux01 network-scripts]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=37.1 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 1 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 36.434/36.904/37.471/0.460 ms
=> ping으로 인터넷 되는지 확인하기


→ 실습복습하기
IP : 192.168.1.20 설정하고 나머지는 위 설정 그대로 사용하기
설정된 IP 값 확인하고 인터넷 연결되는지 확인하기

[root@Linux02 ~]# cd /etc/sysconfig/network-scripts/
=> 네트워크 설정 디렉토리로 이동

[root@Linux02 network-scripts]# mv ifcfg-ens33 ifcfg-ens33.bak
[root@Linux02 network-scripts]# cp ifcfg-lo ifcfg-ens33
=> ens33설정파일을 백업파일로 만들고
=> ifcfg-lo를 샘플링(뼈대)로 새로운 ifcfg-ens33 파일을 만들다

[root@Linux02 network-scripts]# vim ifcfg-ens33
[root@Linux02 network-scripts]# systemctl restart network
=> 수동으로 변경할 정보를 입력한다
=> 설정변경후엔 서비스 재시작

[root@Linux02 network-scripts]# ifconfig ens33
[root@Linux02 network-scripts]# netstat -nr
[root@Linux02 network-scripts]# cat /etc/resolv.conf
[root@Linux02 network-scripts]# ping 8.8.8.8
=> 변경된 ip확인
=> 게이트웨이 확인
=> DNS확인
=> 인터넷확인

Telnet 서버 및 방화벽 설정


[root@Linux01 ~]# vim /etc/services
=>포트정보를 확인할 수 있다.

텔넷이란
→ 원격접속서비스 , 보안성이 취약하다 ( 과거에는 모뎀통한 접속 )

systemd -> 슈퍼데몬이면서 단독데몬
telnet -> 하위데몬 , 바로 실행안됨
telnet서비스용청하면 systemd가 telnet을 실행시킴 ( 소켓 )
소켓 : 연결고리 -> 구동시키기위한 하나의 연결고리
종료되면 systemd에서 소켓을 이용해 꺼짐
슈퍼데몬의 종속


  • 방화벽
    방화벽 이란?
    외부로부터 내부망을 보호하기 위한 네트워크 구성요소 중 하나, 외부의 불법침입으로부터 내부의 정보자산을 보호하고 외부로부터 유해정보 유입을 차단하기 위한 정책과 이를 지원하는 H/W 및 S/W를 통칭

주요기능
외부망과 연동하는 유읷한 창구로서 외부로부터 내부망을 보호하기위해 각 서비스 별로 서비스를 요구한 시스템의 IP주소 및 port 번호를 이용하여 외부의 접속을 차단하거나 또는 사용자 인증에 기반을 두고 외부접속을 차단한다.

방화벽 활성화
systemctl start firewalld

인터넷 -- 네트워크

-> 인바운드
<- 아웃바운드

방화벽정책
-> white list : 모두막음 , 몇개만 허용 ( 폐쇠적이고 기본적으로 이거 사용 )
-> black list : 모두허용, 몇개만 막음

보통 나가는건 안막음 들어오는거만 막음 ( 대기업은 나가는것도 막을수도 있다 )

[root@Linux01 ~]# useradd teluser
[root@Linux01 ~]# passwd teluser
=> teluser 생성 및 패스워드 설정
[root@Linux01 ~]# yum -y install telnet-server
[root@Linux01 ~]# systemctl start telnet.socket
=> 텔넷서버 설치 및 서비스 시작

putty 실행


Kernel 3.10.0-1160.el7.x86_64 on an x86_64
Linux01 login: root
Password:
Login incorrect

Linux01 login: teluser
Password:
[teluser@Linux01 ~]$


=> putty를 통하여 root 사용자 및 일반 사용자 로그인하기
=> root 사용자는 로그인이 불가능하다

[root@Linux01 ~]# systemctl start firewalld
[root@Linux01 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since 월 2021-05-17 19:48:11 KST; 7s ago
Docs: man:firewalld(1)
Main PID: 2986 (firewalld)
=> 방화벽 실행하기

[root@Linux01 ~]# mv /etc/securetty /etc/securetty.bak
=> 보안상 루트 접속금지에 관한 파일

네트워크 방화벽(경계네트워크 - 별도 장치) , 호스트 방화벽
=> 2개가 있으면 2개 다 풀어줘야한다 !
=> 우리는 네트워크 방화벽은 없다

현업에서 방화벽을 올리고 시작하지않다
서비스 시험할때 서비스만으로 실험후 방화벽을 올린다.

방화벽 키고 putty 접속하면 접속이 안된다


◎ 방화벽설정하기

[root@Linux01 ~]# firewall-config
=> 방화벽이 실행이 되고 있어야 가능한 모드 ( GUI )
ssh는 기본적으로 허용되어있다

설정 -> 영구적
telnet 체크
옵션의 파이어월 다시 불러오기

[root@Linux01 ~]# systemctl stop firewalld
실습끝났으니 종료


리눅스2 실습복습하기

1.텔넷 설치
2. 방화벽 실행
3. 방화벽에서 telnet 서버 허용
4. root 사용자 접속기 가능
5. putty -> root 접속
6.방화벽 중지

[root@Linux02 ~]# yum -y install telnet-server
[root@Linux02 ~]# systemctl start telnet.socket
=> 텔넷서버 설치 및 실행

[root@Linux02 ~]# systemctl start firewalld
=> 방화벽 실행

[root@Linux02 ~]# firewall-config
=> 방화벽 설정 / 영구적 telnet 체크 , 다시 불러오기

[root@Linux02 ~]# mv /etc/securetty /etc/securetty.bak
=> 루트 접속가능하게 하기 ( 기본값 텔넷으로 루트 접속 금지 )

putty로 접속


Kernel 3.10.0-1160.el7.x86_64 on an x86_64
Linux02 login: root
Password:
Last login: Mon May 17 19:14:52 on :0


[root@Linux02 ~]# systemctl stop firewalld
=> 방화벽 종료

SSH 서버


<<PDF - 2장 SSH >>

Secure Shell
기존의 텔넷을 대처 -> 안정성 // port : 22

보안접속을 위해 rsh,rcp,rlogin,rexec,telnet,ftp 등을 제공
IP spoofing방지 -> 아이피 속여서 접속이 금지
x11 패킷 포워딩 및 TCP/IP 패킷 포워딩 제공
SSH 암호화 알고리즘 ( 유럽 개발 )

192.168.1.10 ( 컴퓨터 ) // 192.168.1.30 ( 텔넷 )
아이피스캐너 -> 같은 네트워크속 살아있는 아이피 검색
192.168.1.100 로 우회에서 접속하는걸 방지


SSH 단독데몬이다

기본방화벽은 체크 되어있찌만
포트번호를 변경하면 수동으로 다시 설정해야한다

=> 보안성 강화
1. 루트사용자금지
2. 특정그룹만 접속 ( setuid )
3. 포트변경


  1. PAM.d 설정

PAM(Pluggable Authentication Module)

  1. PAM(Pluggable Authentication Module)
    사용자를 인증하고 그 사용자의 서비스에 대한 액세스를 제어하는 모듈화된 방법
    PAM은 관리자가 응용프로그램들의 사용자인증방법을 선택할 수 있도록 해준다.
    ((( 모듈화 -> 모듈화주택 .. 넣다 뺏다 가능 )
    ((( wheel 그룹 ))) => 시스템그룹 , 우리가 만든 그룹과 다른
    => 이미 정해져있는 권한이 있다 ( su를 사용할수 있는 그룹 )
    => 조정을 해줘야한다
    http://blog.naver.com/PostView.nhn?blogId=jammu193&logNo=150046037764

[root@Linux01 ~]# which su
/usr/bin/su
[root@Linux01 ~]# ls -l /usr/bin/su
-rwsr-xr-x. 1 root root 32128 10월 1 2020 /usr/bin/su
=> setuid 설정되있는 su
=> setuid 제거하면 일반사용자 사용 못함

[root@Linux01 ~]# chmod 777 /usr/bin/su
[root@Linux01 ~]# ls -l /usr/bin/su
-rwxrwxrwx. 1 root root 32128 10월 1 2020 /usr/bin/su
=> 777 변경

[root@Linux01 ~]# su - centos
[centos@Linux01 ~]$ su -
암호:
su: 인증 실패
=> su가 안됨 ,, 디렉토리 커미션이 없기때문에
=> 최소한 5 이상되어야 실행이 가능하다

t@Linux01 ~]# chmod 4755 /usr/bin/su
[root@Linux01 ~]# ls -l /usr/bin/su
-rwsr-xr-x. 1 root root 32128 10월 1 2020 /usr/bin/su
=> setuid 다시 설정

[centos@Linux01 ~]$ su -
암호:
마지막 로그인: 월 5월 17 19:57:22 KST 2021 ::ffff:192.168.1.1에서 시작 일시 pts/1
=> su 사용가능해짐


연습문제
그룹생성 sgroup
리눅스1 ssh => 포트번호 :23000으로 변경
root 사용자 접근금지
sshuser01, sshuser02 사용자 생성
setuid 이용해서
sshuser01 => su 이용해서root 사용자전환 가능
sshuser02 => su 명령을 사용금지

→ 속성변경하면 setuid는 깨진다 ( 퍼미션, 소유자 , 소유그룹 등등 )

[root@Linux01 ~]# id sshuser01
uid=1002(sshuser01) gid=1002(sgroup) groups=1002(sgroup)
[root@Linux01 ~]# id sshuser02
uid=1003(sshuser02) gid=1003(sshuser02) groups=1003(sshuser02)

[root@Linux01 ~]# vim /etc/ssh/sshd_config
=> 포트 22000 , 루트로그인X

[root@Linux01 ~]# systemctl restart sshd
=> 설정 변경에 대한 재시작

[root@Linux01 ~]# netstat -nlp | grep ssh
tcp 0 0 0.0.0.0:23000 0.0.0.0: LISTEN 4378/sshd
tcp6 0 0 :::23000 :::
LISTEN
=> 네트워크 리스트 프로토콜 ,, 포트 번호 확인

putty


login as: sshuser02
sshuser02@192.168.1.10 s password:
[sshuser02@Linux01 ~]$ su -
암호:
마지막 로그인: 월 5월 17 20:59:20 KST 2021 일시 pts/1
마지막 로그인 실패: 월 5월 17 21:05:50 KST 2021 192.168.1.1에서 시작 일시 ssh:notty
마지막 로그인 후 1 번의 로그인 시도가 실패하였습니다.


[root@Linux01 ~]# chown root.sgroup /usr/bin/su
[root@Linux01 ~]# ls -l /bin/su
-rwxr-xr-x. 1 root sgroup 32128 10월 1 2020 /bin/su
=> 소속그룹 변경 및 확인 ( setuid 해체됨 )

[root@Linux01 ~]# chmod 4750 /usr/bin/su
[root@Linux01 ~]# ls -l /bin/su
-rwsr-x---. 1 root sgroup 32128 10월 1 2020 /bin/su
=> setuid 다시 적용하기

putty - sshuser01 과 sshuser02 비교하기

login as: sshuser02
sshuser02@192.168.1.10 s password:
Last login: Mon May 17 21:10:30 2021 from 192.168.1.1
[sshuser02@Linux01 ~]$ su -
-bash: /usr/bin/su: 허가 거부
[sshuser02@Linux01 ~]$
=> 권한이 없어서 su 사용 못함

login as: sshuser01
sshuser01@192.168.1.10 s password:
Last login: Mon May 17 21:12:04 2021 from 192.168.1.1
[sshuser01@Linux01 ~]$ su -
암호:
마지막 로그인: 월 5월 17 21:12:08 KST 2021 일시 pts/2
[root@Linux01 ~]#
=> su 사용 가능

profile
늦은 개발자의 길

0개의 댓글