System Security DAY_005

2023. 12. 18. 09:28Information Security 정보보안/System Security 시스템 보안

728x90

배울 내용: 

PAM

su 명령어 제한

FTP service (Xinetd) 

SeLinux 

TCP Wrapper

Xinetd

hosts.allow

host.deny

su 명령어 해킹 방어

해킹과 취약점  

 

 

 

제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때문에 정확하지 않을수 있음을 알려드립니다.

틀린게 있으면 댓글로 써주시면 고치겠습니다.

 

 

 

 

 

 

 

 

 

PAM(Pluggable Autentication Module)

 

 

 

PAM 이란 Linux 에서 사용되는 인증 모듈로

사용자의 사용 권한(접근, 패스워드 등)을 제어하는 모듈이다

 

 

 

 

 

 

좀더 쉽게 보면 

GPT4를 구매기념으로 GPT에게 그림과함께 물어볼게요 

 

 

 

"중앙에는 컴퓨터 시스템이 있으며,

이 시스템으로부터 다양한 방향으로 연결된 안전한 통로들이 나와 있습니다.

 

각 통로의 끝에는 다양한 인종과 성별을 대표하는 사용자들이 서 있으며,

이들 중 일부만이 특별한 키를 가지고 있습니다.

이 키를 가진 사용자들만이 중앙 시스템에 접근할 수 있음을 나타내기 위해,

그들의 통로는 녹색 빛으로 표시되어 있습니다.

나머지 사용자들의 통로는 빨간색으로 표시되어, 접근이 차단된 것을 나타냅니다.

 

중앙 시스템에서는 감시 카메라와 알람, 로그 기록 등의 보안 요소들이 활성화되어 있는 모습을 보여줍니다.

 

 

 

이 그림은 PAM 시스템이 어떻게 중요한 시스템에 대한 접근을 엄격하게 관리하는지를 시각적으로 나타냅니다."

 

 

라고합니다 

 

 

 

 

 

su명령어 제한

지난시간엔 UID, GID를 0으로 바꾸고

su user10(UID,GID가 0 , 즉 root 계정으로 인식하게 하는) 이렇게해서

루트 권한을 얻게 되는걸 하게 되있는 

이러한 방식으로 그걸 방어? 할수있다 

 

먼저 

 

- /etc/pam.d/su

 

로 들어간다 

 



6 #auth           required        pam_wheel.so use_uid
6번째줄 주석해제 ! 

 

 su를 다 인증하겠다는 뜻 

 

이순간부터 su user10 했던것도 다 인증을하기 시작함

(즉 전에 했던 user11 에서 su user10 한게 막힐것임 (한번해보기))

 

 

만약에 그러면 다 막혀버리니깐 어떻게 사용해? 하면

 

vi /etc/group 에 11번째에 wheel 이 있는걸 볼수있는데 여기서 


#usermod -G wheel user1  로  wheel에다가 user1 을 추가해줌 
그러면 

 


vi /etc/group 하면 이렇게 되있는데 이때
wheel:x:10:user1

kali에서 telnet으로 접속한뒤에 su 하면 가능함.

 

 그렇지않으면 그냥 pam.d/su 에 6번째 주석해제후엔 접속불가

 

 

 

 

 

 

 

 

 

 



FTP 서비스 (Xinetd)

 
- /etc/vsftpd/vsftpd.conf 

에 들어간다 .conf 나 config 로 끝나는거는

configuration 으로 환경설정파일이라고 생각하면된다

그리고 vsftp 에 d 같붙은건 d 가 Daemon 을나타내며 

 

서버 프로세스로 시스템이 살아 있는 동안 항상 실행되는 백그라운드 프로세스 상태로 존재하는 것인데

나중에 데몬과 슈퍼데몬을 배우는 그냥 저런게 있다는게 알거나 검색해보길 바란다

간단히말하면 이 2개는 운영 방식의 차이가 있을뿐 같다라고 본다

 

다시돌아와서 

 


124번째 줄에  ( 명령모드로 :124 하고 엔터하면 124번째줄로 가짐) 

 

 listen_ipv6=YES

 

 

-> listen_ipv6=NO 로 변경 

 

 

 

 

그리고 나서 xinetd 에서  ftp 스크립트를 만들어줄거다
#cd /etc/xinetd.d/

가서 


#vi ftp 
 


service ftp
{
        disable = no
        flag    = REUSE
        socket_type     = stream
        wait    =       no
        user    =       root
        server  =       /usr/sbin/vsftpd
        log_on_failure  +=      USERID
}


이렇게 만들어줌
이건전에 telnet 만든걸로 만들면된다 

service,server만 ftp,vsftpd로 바꿔주면댐 

 


그뒤
   systemctl restart xinetd

설정한거 다시 재시작 시켜주고 


   firewall-cmd --permanent --add-service=ssh
   firewall-cmd --permanent --add-service=telnet
   firewall-cmd --permanent --add-service=ftp
   firewall-cmd --reload

하고 kali에서 들어가면 ssh 든 telnet이든 ftp 에서든 접근됨

(방화벽 활성화 된 상태에서 연결) 

(

이때는 xinetd 방식으로 슈퍼데몬방식으로 작동하게 됨 

 

 

 

 

 

크게 보면 3단계 방어가 되있는데

Firewall 이 1차방어를하고

SuperDaemon (Xinetd)  2차 방어하고

service에서 3차방어를함 (아까 ftp 만들었던것)

 

 

 

 

 

나중에 pam 을끼고 TCP Wrapper를 끼면 4단계, 5단계 이상 방어가 됨

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

가끔 방화벽 stop 한뒤에 

setenforce 0 를 할때 SELinux 어쩌고가 뜬다 

 

 

 

 

 

 

 

 

[selinux 활성화/비활성]

#vi /etc/sysconfig/selinux

 

 


SELINUX=enforcing 에서 
  SELINUX=disabled

이렇게 바꾸면 활성화가 되지않음
(setenforce 0 )  


이렇게 기본적으로 방화벽 되있음
firewall
superdeamon(xinetd)
service
tcp wrapper
pam

 

 

 

참고로 이중 진짜 방화벽은 커널안에 있는 netfilter 이라는 것임 (이것으로 제어) 


(netfilter 진짜 방화벽 (나머지는 도구 라고봐야함 (iptables ,firewalld ,ufw)))

 

 

 

 

 

Xinetd 의 방식은 이렇다 Client에서 Server로 바로가는게 아닌 Xinetd 라는 곳에서 한번 들렀다 감

(client 가 xinetd에게 요청을 하면 telnet server 나 ftp server를 실행시켜줌 )

기존에는 xinetd 가없으면 telnet 이나 FTP server에 직접 요첨함 

 

 

그런데 여기서

 

 

 

 

 

또중간에 TCPD 라는게 있음 

 


 TCP Wrapper

 

 

환경 설정 파일
- /etc/hosts.allow  는 

허용 서비스/호스트 IP 주소/네트워크 주소로


vsftpd:ALL -> vsftpd 허용
in.telnetd:ALL -> telnet 허용
이런식으로 [서비스] : 허용범위 를 설정할수있다

192.168.10.100 192.168.10.160  

이 ip 주소들의 호스트 모든 서비스 허용하고 싶으면 
ALL:192.168.10.100 192.168.10.160  

작성후 저장 

 

 

 

 

hosts.allow와 반대로  deny도있는데 


- /etc/hosts.deny 

차단 서비스/호스트 IP 주소/네트워크 주소

이렇게 차단이 가능하다 그대신(차단된것 제외하고 다른건 열어줌)

 

 


 [ALL(서비스):ALL(호스트/네트워크주소)]
ALL:ALL

모든것을 연결해주는것들 

 

 

 

 

728x90