System Security DAY_008 리눅스 방화벽 설정,수동 모드 데이터 포트 고정 ,사용자 접근 통제,vsftpd,FTP-Server,PAM,사용자 접근통제,해킹과 취약점,Firewall

2023. 12. 21. 23:58Information Security 정보보안/System Security 시스템 보안

728x90

배울 내용: 

 

리눅스 방화벽 설정
수동 모드 데이터 포트 고정 

사용자 접근 통제

vsftpd

FTP-Server

PAM

사용자 접근통제

해킹과 취약점  

Firewall 

 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

이번 포스팅엔 
FTP Server
를 보자 

 

 

먼저 vi /etc/vsftpd/vsftpd.conf 에
젤밑에  빈칸에 listen_port=2121 써주자

 

이렇게 해주면 port를  ftp로 2121 으로 연결해주는거임
그뒤 systemctl restart vsftpd

 

 

 

 

이제 windows 10 에서 알드라이브로 연결할건데

안깔려있다면 알드라이브를 깔기 바란다. 

간단하게 구글에 검색하면 나온다 

 

 

 

그뒤에 

 

 

접속하기 한뒤에 포트를 2121 해주고 아이디 비번 하면 된다 . 

 

 

 

 

 


그러나 window에 알드라이브로 연결하면안되는데

 

그이유는 포트는열여줘도 

 

방화벽에서 막아버린다 

 

 

그래서 다시 서버(centos)로 가서

명령어로 firewalld-cmd --permanent --add-port=2121/tcp
firewalld-cmd --reload
해준뒤에 연결하면 연결은 된다 

 

 

그러나 아직 지만 또 잘 안되는걸 볼수있다 . 

 

 

 

 


이떄 systemctl stop firewalld 하면 되긴하는 데 이러면 의미없기에 

 

 

 

 

 


다시 listen_port=2121 밑에 이렇게 써줌 
pasv_max_port=5000
pasv_min_port=5000

 

 

 


그리고 방화벽도 설정해주고

 

systemctl restart firewalld
 # firewall-cmd --permanent --add-port=5000/tcp
 # firewall-cmd --reload




이러고 window 알드라이브 다시 들어가면 됨 

(이때 포트2121그대로) 

(방화벽을 5000번으로 고정시켰기 떄문)
passive 모드로 바꾸면 자동으로 dynamic port로 바뀐다는걸 알아야함

(원래는 랜덤인데 위에 처럼고정시키면 서비스 제공받을수있음)

 

 

 

 

 

이제 어떻게 하는지 알았으면 다시 돌아와서 


 아까햇던거 원래대로 돌리기

  vi /etc/vsftpd/vsftpd.conf 
  firewall-cmd --permanent --remove-port=5000/tcp
  firewall-cmd --permanent --remove-port=2121/tcp
  firewall-cmd --permanent --add-service=ftp
  firewall-cmd --reload
  systemctl restart vsftpd

그뒤에 window에서 포트 21로 다시돌아와서 하면 잘됨

 

 

 

 

 

이제 이렇게 보면 


01. 운영 모드 
>능동 모드 (active)
>수동 모드 (passive)

 


02. 수동 모드 데이터 포트 고정 
listen_port=2121  
pasv_max_port=5000
pasv_min_port=5000

 

 

 

 

 

2번까지는 완료 했다 

그럼 위에 썻던걸 어떻게 작동하게 됬던걸까?

 

 

 

vsftpd 는 wellknown 포트가 디폴트면 20번  data를 생성하는데 변경되면

passive Mode로 작동하게됨.

 

 

이떄 dynamic port 로 바뀌고 20번  session을 쓰지않음 

이때부터 5000번 

 

 

근데 이게 랜덤포트로 되기떄문에 5011이되든 다른 포트가 될수도있기때문에 

아까처럼 5000만잡게 고정시켜주는것임.  


pasv_max_port=5000
pasv_min_port=5000

 

이렇게 

 

 

아니면 방화벽 사용하지 않던가 

서버쪽에서 포트를 고정시켜서 client에 알려주던가

 

 

이중에서 우리는 후자를 선택한것.! 

 

 

 

 

 

 

 

 

이제 3번째 것을 보면 

 

 


03. 사용자 접근 통제


 자체 접근 통제
- /etc/vsftpd/user_list

 

 

 

 

 

 


 해당 파일에 사용자 등록(차단)


> PAM을 이용한 접근통제
-/etc/vsftpd/ftpusers 

(users 임!  ) 

 

 

 

 


- /etc/vsftpd/ftpusers 이것들이 다 모여있다 
-rw-------. 1 root root  125  6월 10  2021 ftpusers
-rw-------. 1 root root  361  6월 10  2021 user_list
-rw-------. 1 root root 5177 12월 18 20:41 vsftpd.conf
-rwxr--r--. 1 root root  338  6월 10  2021 vsftpd_conf_migrate.sh


 


user_list에

root
bin
daemon
adm
lp
sync
shutdown
halt
mail

이중에 root를 주석처리 해주고  
ftpusers에서도 지워야함 

 

그리고 


systemctl restart vsftpd 해주고

그러면 window에서 telnet으로도 root 접속이 가능함! (원래는안됨) 

 


만약 user1 차단하고 싶으면  user1을 추가해주면됨

 

 

 

 

 

 


이번엔 등록된 사용자를 허용하기 


vi /etc/vsftpd/vsftpd.conf 에 
userlist_enable=YES
userlist_deny=NO

이거 추가해주면 아까 위에 설정되있던애들만 통과됨 (user1이 userlist에 만 있기떄문에 가능)
default는 yes yes임
userlist_enable=YES
userlist_deny=YES

 

 

 

 


root도 통과하게 하려면 ftpusers에서 주석 처리해줘야함 

systemctl retart vsftpd 해주고

 

 window에서연결
아니면

userlist_enable=no 하면 되는데 userlist가 아예작동안하는것이기 떄문에 무용지물임 . !!

 

 

 


#vi /etc/pam.d/vsftpd 에서
auth       required     pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=succeed

 


sense에 deny되있던걸 allow로 바꿔주고

 

 

 vi /etc/vsftpd/ftpusers 에 root 주석처리한걸 풀어주면
root가 로그인가능해짐

 

 

 

 

 

추가로 그룹으로도 가능하다!

 


auth       required     pam_listfile.so item=group sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

로 group으로 할수있음

 

그러면   
vi groupusers       (groupusers 파일만들기) 

그리고 안에는 이렇게 작성 

 

그리고 나가서 

 groupadd korea   (korea라는 그룹만들기)

          groupadd korea1 (korea1이라는 그룹만들기2)
usermod -G korea user1  (korea그룹에 user1 추가)

이렇게한뒤에 systemctl restart vsftpd 하고 user1 로그인하려고 하면 안댐 
(sense가 deny 이니깐) 

 

 

 

 

 

아직도 헷갈리면 

한번 직접 만들어보자  

 

 

그럼 더 이해되기 쉽다 

 

 

 

728x90