System Security DAY_009 디렉터리 이동제한, 사용자 접근통제,리눅스 방화벽 제한 설정,특정 사용자 접근 통제,vsftpd, FTP-Server 특정 파일(확장자)제한, 숨기기,시스템 Ping 응답 차단

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

728x90

배울 내용:

디렉터리 이동제한

사용자 접근통제

리눅스 방화벽 제한 설정

특정 사용자 접근 통제

vsftpd

FTP-Server 

특정 파일(확장자) 업로드제한
특정 파일 숨기기

시스템 Ping 응답 차단 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

 

 

 

오늘은 FTP 서버에 

디렉터리 이동 제한을 배워 보자 

 

왜냐면 지난시간보면

 

이곳에 로그인 하게되면 일반사용자도 

루트에 접속할수있기때문이다! 

 

이는 보안으로 보면 굉장한 취약점으로 분명 안전의 문제가 나올것이다.

 

 

이번엔 이를 지워보자 그럼 

 

 


chroot_local_user=YES   <- FTP서버 
allow_writeable_chroot=YES  <- 이건써줘야함  FTP 서버 허용



chroot_local_user=NO 이게 NO면 루트디렉터리까지 다 접근가능함
그래서 자신의 디렉터리로만 쓰게하려면 YES로 해야함

 

 

이렇게 바꿔주자. 

 

그런데 

 

그럼 어디서 바꿀수 있을까?

 

 

 

환경 설정 파일에서 바꾸는것이란걸 이제 어느정도

알수있겟다

 

/etc 가 환경설정파일을 건드는 거니깐 여기서알수있고

ftp 이니깐 vsftpd 인걸알다 그럼 얼추

cd /etc/vsftpd 로 가면

vsftpd.conf 가 있을것다

 

이건 vsftpd. configuration 이라는 것으로 

FPT 서버 환경설정 할수있는걸 유추할수있다.

 

잘 기억해두자

 

/etc/vsftpd/vsftpd.conf

 

 

 

 

 

 

 

 

 

 

이번엔

 디렉터리 이동제한하는데

 

특정 사용자만 상위 디렉터리 이동제한을 해보자

 

다시 가서 

vi /etc/vsftpd/vsftpd.conf

    101 chroot_local_user=NO
    102 chroot_list_enable=YES
    104 chroot_list_file=/etc/vsftpd/chroot_list


이렇게 설정해줌 

 

 

그리고
systemctl restart vsftpd

 

 


그리고 vsftpd 쪽에서 chroot_list 만든뒤에 안에 user1  user2 넣음

그러면 

다시 알드라이브로 FTP 서버로 접근하면

user1, user2 만 root 디렉터리로 이동못함 (나머진 계정은됨)

 

 

 

 

 

 

이렇게 막힌다 

 

 

 

 

 

 

 

 

물론 다른것들은 접속이 되는것을 알수있다.

 

 

 

 

 

 

 

 

 

 

이번엔 특정사용자를 제한아는게 아니라 

특정 사용자만 허용해 보자! 

 

다시 ftp환경설정파일로가서

 

    101 chroot_local_user=YES
    102 chroot_list_enable=YES
    104 chroot_list_file=/etc/vsftpd/chroot_list

 

이렇게 local_user 하고 list_enable을 YES 로 바꿔주자 


systemctl restart vsftpd

이러면 user1, user2 만 가능함 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 이번엔 접속을 하더라도

특정 파일( 확장자)  업로드를 제한해보자 

 

 

이번에도 똑같은 설정파일로 가성 

 deny_file={*.mp3,*.zip}

이렇게 빈칸을  추가해주자! 

 

이렇게 해놓으면 window에서 접속후에 파일 업로드할떄 업로드가&nbsp;안됨

 

 

이렇게 업로드를하면 확장자가 mp3, zip 인 

test.mp3, test.zip 은 뺀 test.txt 만 업로드가 된다 

 

 

 

 

 

 

 

 

 

 

물론 특정 파일 숨기기 도가능하다 

 

이번엔 설정파일에서



hide_file={*.txt}
txt는 모두 가려짐

 

아 참고로 *은 뭐든지 올수있다는것이다

 

리눅스를 한사람이거나 배운사람이면 알지만 

살짝 설명하자면

 

 파일이 4개가있다고하면 

hi.txt

hi2.txxt 

hi3.txt

hi4_txt

 

 

이 4개중에 *.txt 에 해당하는건

hi.txt

hi3.txt

 

이것들인걸 알겠지? 

 

 

 

 

 

 

 

 

 

 

 

이젠 FTP 서버는 내려놓고 

 

시스템 Ping 응답 차단 에 대해서 알아보자

 

먼저 

#cd /proc/sys/net/ipv4
여기로 간뒤에 


 vi icmp_echo_ignore_all 

 

을 해본다 . 

 

 

 

여기엔 0 이라는 것 밖에 없다 

 

 

참고로  여기에선 수정 이 불가능하다!   default 값은 0 이다 

 

0이라면 다른 서버에서 ping 192.168.10.101(서버) 

하면 

 

 

 

잘되는걸 볼수있다 그러나 이걸 1로 바꾸면 

 

 

 

 

 

 


이렇게 설정하고 window에서 로그인시 

 

 

안되는걸 확인할수있다 

 

 

이걸 가르치시는 유능하신 강사님이 어떤 보안 IT 회사에 들어갈때 그회사 홈페이지?에  

ping 했을때 전송이 되면 거르라던... 

 

쨋든 

 

 

 

이건 아까 파일에서는 vi 로 열어서 수정이 불가능하다! 

 

 

 

그래서 명령어로 써줘야하는데 

 


 echo 0 > icmp_echo_ignore_all  -> 명령어로 0을 써줌(응답허용)  

 

이건 허용이고 차단하려면  0을 1로 바꿔주면 된다 .

 

 

 

참고로 자신에게도 ping 테스트 할수있는데 

 ping localhost   

이렇게하면 된다 

 

 

 

 

 

또다른방법은 

sysctl -w net.ipv4.icmp_echo_ignore_all=1 

 


sysctl -w net.ipv4.icmp_echo_ignore_all=0
이렇게 하면댐 
(w - write)

 


그러나
위에방법은 reboot하면 취소 됨 

 

 

 

 

 

 

 

 

그러면 
영구로 적용 하는법을 알아보자 

 

 
vi /etc/sysctl.conf

 

 

앞에#은 없애주고 


net.ipv4.icmp_echo_ignore_all=1 
이렇게 해주면된다 

 

 

그러나 


이거는 reboot 해야지 적용이됨 

 

 

참고하도록 ! ㅋㅋ 

 

 

 

 

 

마지막으로 

방화벽에서 차단하는법을 보면 

 

< 연결 차단> 
 # firewall-cmd --permanent --add-icmp-block=echo-request
 # firewall-cmd --permanent --add-icmp-block=echo-reply
 # firewall-cmd --reload         (적용하기)

 

이렇게 하면된다  전에 많이쓰던 명령문이라 조금 익숙할것이다


 # firewall-cmd --list-all (열려있는 포트보기)

이걸로 확인하고 연결시도하면 차단된걸 볼수있다 

 

 


그리고 한번 열려있는걸 보면 차단 

 

참고로 허용은 remove 로 바꿔주면된다. 


<연결 허용> 
 # firewall-cmd --permanent --remove-icmp-block=echo-request
 # firewall-cmd --permanent --remove-icmp-block=echo-reply
 # firewall-cmd --reload 

 

 

헷갈릴수있는데 이렇게만 생각해보자

앞에선 icmp_echo_ignore_all 에 1 이들어가면 

차단이란걸 알수있다

 

그럼 default 값이 0 이였으니 그떄는 ping 이됐고 

1이면 안됐으니 0에서 add (1) 가 되면 차단되고

1을 (remove)로  0으로 만들어주면 된다고 생각하면

어느정도 헷갈림이 사리질것이다. 

 

 

 

 

그럼 20000 

 

 

 

 

728x90