SAMBA
/ SAMBA
- 리눅스 운용체제간 파일, 자원 공유 : nfs (rpc)
- 리눅스 - Windows 자원 공유 : samba, smb(cifs)
- Servr Message Block
- 근거리네트워크에서 자원을 공유하게 하는 서비스
- cifs : Common Internet Files System (윈도우가 끼게 될때)
- nfs와 smb의 차이점을 검색해보자.
- 공유되는 자원이 리눅스 환경일 경우 삼바를 많이 쓴다.
/ 전체적인 실습플로우
- 리눅스 서버에 삼바서버 설치
- 삼바서버에 특정 공간 공유
- 리눅스 클라이언트에서 삼바 영역에 접근할 수 있도록 설정
- 호스트pc에서도 삼바 영역을 접근할 수 있도록 설정
/ 설치
- 설치 전 확인
# rpm -qa | grep samba
- yum에 설치할 수 있는 패키지가 있는지 확인
- 아래 명령줄을 확인해보면 samba는 확인가능하지만 'system-config-samba'는 보이지 않는다.
- 'system-config-samba'는 wget으로 가져와야 한다.
# yum list samba system-config-samba
- samba 설치
# yum -y install samba
# yum -y localinstall system-config-samba*
* system-config-samba는 그래픽컬하게 해주는 패키지라 cli환경에서는 안될 수 있다.
/ samba 서비스 포트
- 139/tcp : Netbios 세션 서비스
- 445/tcp : SMB ; 랜섬웨어(워너크라이)
- 137/udp : Netbios 이름 확인
- 138/udp : Netbios 데이터그램 서비스
* Netbios : Network basic input output service
/ 설치 확인 및 활성화
# rpm -qa | grep smb
# systemctl start smb
# systemctl enable smb
# systemctl status smb
/ ps -ef 및 netstat확인
# ps -ef | grep smb
# netstat -antup | grep smbd
/ 설정파일 찾기
- rpm qc로 보이지 않아서 find로 찾아야 한다.
# find / -name smb*
/ testparm
- 설정파일 수정 후 유효성 확인할때 쓰이는 명령어
/ gui환경이므로 'system-config-samba'를 이용해 설정을 할것이다.
# system-config-samba
- 그 전에 설정할것이 있다.
- 공유시킬 디렉토리가 필요하다.
# mkdir /share
- 권한 확인
# ls -ld /share
- other유저가 파일을 업로드 할 수 있어야 하기때문에 권한이 7이어야 한다.
# chmod o+w /share
# chmod 757 /share
- 다시 'system-config-samba'를 실행하고 '서버 설정'에 들어간다.
- 작업그룹은 나중에 뭐가 잘 안되면 윈도우랑 맞춰야할 경우가 생길 수 있다.
- 미등록된 사용자 계정을 centos로 설정한다.
- 이번에는 Samba사용자를 설정한다.
- Unix사용자명은 centos로 선택한다.
- Windows 사용자명과 비밀번호를 적당히 넣는다.
/ 공유할 폴더 지정
- 파일 > 공유 추가를 클릭한다.
- 아까 만든 '/share'를 지정한다.
- 접근탭에서는 디렉토리에 접근할 수 있는 권한을 설정할 수 있다.
- 실습이므로 모든 사용자에게 부여한다.
- 모두 확인하고 나오면 결과를 목록에서 확인할 수 있다.
/ 서비스 재시작
- 설정파일을 건드렸으므로 서비스를 재시작한다.
# systemctl restart smb
/ /etc/samba 디렉토리 확인
# cd /etc/samba
# ls -al
- 없었던 smbusers가 생겼다. 확인해보자
- 이제 설정파일을 확인한다.
- 설정을 하기전 파일과 비교해보자.
# vi smb.conf
/ testparm명령어를 한번 써보기
# testparm
- share부분이 conf파일에서는 4줄이었는데 testparm으로 확인하면 2줄만 나온다.
/ smb 계정에 대해 패스워드를 설정하기
# smbpasswd -a centos
/ smb 계정 생성
- 일단 일반 계정 생성
# useradd testuser
# cat /etc/passwd | grep testuser
# passwd testuser
# cat /etc/shadow | grep testuser
- smb 사용자 패스워드 설정
# smbpasswd -a testuser
- gui화면에서 확인가능하다.
/ 방화벽 설정
- config에서 설정하거나
- cli로도 등록할 수 있다.
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --permanent --add-port=139/tcp
# firewall-cmd --permanent --add-port=445/tcp
# firewall-cmd --permanent --add-port=138/udp
# firewall-cmd --permanent --add-port=137/udp
# firewall-cmd --reload
# firewall-cmd --list-all
/ 삼바서버 상태 확인
# smbstatus
/ 자체적으로 smb서버 접속 확인
- '-L'옵션은 실제로 접속하는 것이 아니라 정보만 확인할 수 있는 옵션이다.
- 접속하기 전에 먼저 정보를 확인한다.
# smbclient -L 192.168.111.101 -U centos
/ 리눅스 클라이언트에서 접속확인을 해본다.
/ smb 서버에 파일하나 만들어주기
- 서버에 들어오면 여기가 로컬인지 서버인지 헷갈릴 수 있어서 확인용 파일을 하나 만들어준다.
/ smb서버 접속하기
- 서버에서 자체적으로 접속해본다.
# smbclient //localhost/share -U centos
- 서버 상태를 확인한다.
- 이번엔 리눅스 클라이언트에서 접속해본다.
# smbclient //localhost/share -U testuser
- 서버 상태를 확인해본다.
/ 윈도우에서 smb서버 접속
- cmd창에서 'start \\192.168.111.101\share'로 접근하면 계정정보를 입력하고 접속할 수 있다.
- 서버 상태 확인
- netstat확인
# netstat -antup | grep smbd
- 포트로 확인하는 법
# netstat -ant | egrep "139|445"
/ smbclient
- 리눅스
> smbclient -L 서버IP|이름 -U 계정이름
> smbclient //서버IP|공유이름 -U 계정이름
- 윈도우
> \\서버IP|공유이름
> 입력창이 뜨면 id와 pw입력
/ 클라이언트쪽에 smb서버와 연결되는 디렉토리 생성
- 계속 접속하고 끊고 그러면 귀찮으니깐 생성한다.
- 클라이언트에 만드는 디렉토리에는 권한작업을 따로 하지 않아도 된다.
# mkdir /smbshare
# mount -t cifs //192.168.111.101/share /smbshare -o username=testuser
- 마운트 명령으로 확인해본다.
# mount -l | grep smbshare
# mount -l | grep ^//192
- 서버에서 smbstatus를 확인해본다.
/ fstab등록
- 클라이언트가 접속을 끊으면 정보가 사라지는데 이것을 방지한다.
- 클라이언트가 접속하는 정보를 유지하는 방법이다.
# vi /etc/fstab
- 이때 컴퓨터를 부팅할때 계정정보를 묻게 된다.
- 해서 계정정보를 아래와같이 적어놓을 수 있다.
- 근데 위 방법도 비밀번호가 노출이 된다.
- 더 보완을 하는 방법은 아래와 같다.
# touch .smbcredentials
# vi .smbcredentials
- 이 파일을 fstab에 적용한다.
- 윈도우에서는 홈>빠른연결 >네트워크 드라이브 연결에 설정한다.
- '마침'을 누르면 계정정보를 입력하는 창이 나타나고 계정정보를 입력하면 컴퓨터를 껏다켜도 계속 연결되게 된다.
* 크리덴셜 스터핑 (Credential stuffing) : 확보한 정보로 다른 인증시스템들에게 다 대입해보는 것
/ umount 시키기
- 클라이언트 서버에서 언마운트해본다.
# umount /smbshare
/ samba서버를 특정 이름으로 접속하고 싶은 경우
# vi /etc/hosts
- 호스트이름에 지정한 이름으로 접속을 확인해본다.
# smbclient -L linuxsamba -U testuser
/ 로그 확인
- 별로그가 안남아서 따로 설정을 해줘야 한다.
# vi /etc/samba/smb.conf
log file = /var/log/samba/log.%m
log level = 3
vfs objects = full_audit
# Audit settings
full_audit: prefix = %u|%I|%m|%S
full_audit:failure = connect
full_audit:success = connect mkdir rmdir open read pread write pwrite rename unlink
full_audit:facility = local5
full_audit: priority = notice
- 서비스를 재시작한다.
# systemctl restart smb
-
#vi /etc/rsyslog.conf
- rsyslog.conf의 RULES쪽에도 추가해준다.
- rsyslog 재시작
# systemctl restart rsyslog
- 로그 폴더에 다시 가서 확인해본다.
# cd /var/log/samba
# cat log.192.168.111.128
/ 윈도우 net use
- 한번에 여러 접속을 하고 있으면 에러가 나는 경우가 있다.
- 이 경우 net use의 정보를 삭제하면 된다.
# net use
# net use \\192.168.111.101\share /d
'정보보안학원 > 과정평가형 일지' 카테고리의 다른 글
61일차 - 네트워크 보안 운영 (0) | 2022.07.15 |
---|---|
60일차 - 정보시스템 진단 (0) | 2022.07.14 |
58일차 - 정보시스템 진단 (0) | 2022.07.12 |
57일차 - 정보시스템 진단 (0) | 2022.07.11 |
56일차 - 네트워크 보안 운영 (0) | 2022.07.08 |