정보보안 스터디 - 7주차 6일 - FTP/NFS/Samba 서버
포트번호
telnet 23
ssh 22
ftp 21: 연결
20 : ls등 파일 조회 및 전송
☞ FTP 서버
파일공유를 하며 프로그램으로는 filezila가 있죠.
ftp는 파일을 주는 서버에서는
vsftpd를 설치해야하고
클라이언트는 ftp를 설치해야합니다.
참고로 파일을 설치하면 경로부터 확인해줍니다.
rpm -qa vsftpd
rpm -ql vsftpd | egrep -v "/lib|/doc|/man"
접속방법
ftp
>open
>192.168.2.200 또는
보통 ftp 192.168.2.200 로 많이 접속합니다.
ftp에 접속을 하면
명령어를 넣어 ls, cd처럼 이동과 get,put처럼 파일교환이 가능하지만
!를 붙혀넣으면 본래 터미널에서 명령어를 쓸 수 있습니다.
lcd만 조금 명령어가 다릅니다.
ftp에서 설정은 vi /etc/vsftpd/vsftpd.conf에서 파일에 대한 접근 등을 세부적으로 설정할 수 있습니다.
보통 처음 설정하기 전에 cp -p vsftpd.conf vsftpd.conf.bak 또는 old로 백업해둡니다.
세부 설정
- banner 배너를 설정하는 이유는 초기세팅의 배너가 ftp 버전이 노출되기 때문입니다. 버전이 노출되면 취약성을 이용해 악의적인 접근을 할 수 있습니다. text banner처럼 길이가 길다면 txt파일을 만들어 연결을 시키고 짧다면 vi에 추가해넣습니다. |
- 루트계정에 대한 접속 on/off 기본은 off입니다. |
- 익명 접속 on/off 기본적으로 차단이 되지만 on을 한다면 읽기도 제한을 해야합니다. 그래서 홈디렉토리가 실제로는 /var/ftp > pub 로 설정됩니다. 다운만 가능하지만 익명 업로드를 가능하게 하려고 한다면? 예를 들어 100개의 PC에서 보고서를 받으려고 할 때 익명업로드는 허용해야하지만 읽기나 수정, 삭제는 차단해야합니다. 그래서 기본적으로 삭제는 안되게 되어있어서 다행이고 w는 줘서 업로드 가능하되 디렉토리에 대한 읽기권한을 안주면 디렉토리의 파일들이 안보이게 됩니다. |
- chroot 정해진 파일 빼고는 상위디렉토리로 올라가지 못합니다. 아무나 상위디렉토리로 올라가서 파일을 읽을 수 있게되면 보안에 취약하기 때문입니다. |
- 특정유저로의 접속 차단 vi user_list, vi ftpusers 에 등록을 해두면 user_list > ftpusers 순으로 차단이 됩니다. 잘모르겠다면 둘다 등록하면 됩니다. |
- 포트 설정 기본설정은 21이지만 기본설정으로 하면 예상가능하고 앞에 있는 번호라서 포트스캐너가 쉽게 찾을 수 있습니다. 그러므로 임의로 10024로 변경 합니다. >> ftp 192.168.2.200 10024 접속 |
- max_client 클라이언트 연결 수 제한 |
- max_per_ip 중복접속 제한으로 공격 방어 |
- xferlog 업/다운로드한 내역확인이며 기본설정되어있습니다. |
systemctl restart vsftpd
연결확인
netstat -ntp
ftp연결 등 네트워크로 연결된 프로세스를 포트와 함께 확인
로그인 실패되어도 tcp:21로 연결되어 있습니다.
ps -ef | grep
서버1 내에서 모든 유저의 프로세스 확인
220 로그인 연결메세지 330 패스워드 요구 530 로그인 실패 230 로그인 성공 221 로그아웃 |
☞ NFS 서버
nfs은 네트워크 파일 시스템으로
원래는 내부PC에서 하드디스크끼리 마운트를 해서 사용을 했다면 서로 다른 네트워크간의 마운트를 할 수 있습니다.
1. 예를 들어 PC 각각 용량을 크게 하는 것이 아니라 용량이 큰 서버를 하나 놓고 PC를 마운트로 연결시켜 쓰는 방식이 가장 많습니다.
2. 그리고 한 시스템의 용량이 부족해서 물리적으로 디스크를 추가하려면 서비스를 재부팅해야하는데 그렇게 된다면 서비스의 연속성이 떨어져 손실이 발생하기 때문에 용량이 큰 서버를 두고 마운트 하는방법입니다.
기본포트는 111번/2049번이며
netstat -ntl을 확인해보면 기본적으로 listen으로 켜져있습니다.
설정과정
클라이언트1은 서버1에 읽기,쓰기 모두로
클라이언트2는 서버2와 읽기전용으로 마운트합니다.
서버에서 폴더, 파일을 만들어주고
chmod 777 share1 share2 로 모든권한을 줍니다.
어짜피 아래 설정에서 권한제한이 적용됩니다.
vi /etc/exports에서
192.168.2.201 클라이언트에게 /test/share1 을 공유하겠다고 설정해주고
/test/share1 192.168.2.201 (rw)
/test/share2 192.168.2.201 (rw)
exportfs -a
exportfs
로 확인
클라이언트에서
폴더, 파일을 만들어주고
마운트해줍니다.
mount -t nfs 192.168.2.200:/test/share1 /mnt/nfs1
mount -t nfs 192.168.2.200:/test/share2 /mnt/nfs2
df -h
로 마운트된 리스크를 봅니다.
재부팅해도 설정을 유지하려면
vi /etc/fstab 에서
마운트 사항들을 추가해줍니다.
그러면
umount -a
mount -a
를 해도 유지가 됩니다.
실제로 클라이언트 /mnt/nfs1에 보면 잘연결되어서
share1에 대한 파일이 있는 것을 확인할 수 있습니다.
쓰기가 가능하다면 파일도 만들어 공유할 수 있습니다.
읽기전용이라면 불가능합니다.
삭제
테스트가 끝났다면 마운트를 해제하고
설정도 원래대로 돌리고
파일을 삭제해줍니다.
클라
vi /etc/fstab < 삭제
umount -a
df -h
rm -rf /mnt/nfs*
서버
rm -rf /test/share*
vi /etc/exports < 삭제
systemctl restart nfs-server
exportfs -a
exportfs
☞ Samba 서버
samba는 윈도우와 리눅스 운영체제끼리 정보 교환을 하기 위해서 사용합니다.
smbd: 파일 공유, 권한 부여 (tcp 139, 윈도우 445)
nmbd ; Netbios Nameserver 지원, 서비스 알림 (udp 137, 138)
설치
yum -y install samba samba-client cifs-utils
systemctl enable --now smb nmb
systemctl status smb nmb
포트번호 확인
netstat -ntpl
ps -ef | egrep "smbd|nmbd" 으로
프로세스 확인하면 연결없지만 잡혀있습니다.
standalone 방식 입니다.
설정
vi /etc/samba/smb.conf
workgroup을 workgroup으로변경
허용가능한 ip주소대 추가
readonly/writable 수정
윈도우 실행창에서 \\192.168.2.200 실행하여
아이디와 비밀번호를 입력하면 따로 프로그램이 없어도 공유가 가능합니다.
디렉토리는 public으로 실제 디렉토리와 다르게 나옵니다.
readonly/writable 수정한다면 업로드 가능여부 설정할 수 있습니다.
netstat -ntp 또는
smbstatus로 연결도 확인해줍니다.
history
최근 사용했던 명령어가 1000개까지 노출됩니다.