SAMBA 4.6.5 설치 삽질기

OS/Linux 2017. 6. 23. 19:39 Posted by ­행복
이것을 적어두지 않으면 아까운 지식이므로 내가 적는다.

종합적인 흐름의 기법으로(내가 잘 알아보기만하면 되므로) 이슈를 위해 고뇌한 흔적을 위주로 적을 예정이다.

참고문헌 :
samba 패키지를 yum 없이 수동으로 설치하는 방법
samba.org의 직접 삼바패키지 빌드하는방법
samba 취약점 조치하신분의 티스토리 블로그


상황 : 호스팅업체 나야나의 리눅스서버 samba 랜섬웨어 감염으로 긴급조치 지시 하달

운영하지도 않는 리눅스 서버의 samba 버전 취약으로 버전업을 위한 조치
해당 리눅스 서버는 centos6버전이며 자체가 다음카카오와 동기화된 레포지토리를 구축하고 있다.

현재 samba 버전은 3.6.9-169.el6_5

조치방법 :
1. 그동안 업데이트 안한 레포지토리를 daumkakao repository 와 동기화
lftp -c "set ftp:passive-mode off; mirror -c -e -i rpm http://anonymous@ftp.daumkakao.com/centos/ /SYSLOG-NW/www/centos"

(내 기억에는 daumkakao ip의 80포트로 방화벽을 오픈한 상태)

그다음 레포지토리 데이터베이스를 재구성해야함 우선 centos 6버전의 패키지들은 6.9폴더에 있고, 64비트 os 만 할 것이므로 다음의 명령을 수행

createrepo --no-database /SYSLOG-NW/www/centos/6.9/os/x86_64
createrepo --no-database /SYSLOG-NW/www/centos/6.9/updates/x86_64
createrepo --no-database /SYSLOG-NW/www/centos/6.9/extras/x86_64
createrepo --no-database /SYSLOG-NW/www/centos/6.9/centosplus/x86_64


 그런 다음, 내가 클라이언트 입장에서 서버의 레포지토리에 접속을 해야 하므로 다음과 같이 입력
나는 파일 이름을 el6.repo라고 명명하였으며 /etc/yum.repos.d/ 아래에 텍스트 파일로 저장하면 됨

파일이름 : el6.repo
[i-bases]
name=Rhel $releasever - $basearch - base
baseurl=http://192.168.0.100/centos/6.9/os/$basearch
enabled=1
gpgcheck=0

[i-updates]
name=Rhel $releasever - $basearch - updates
baseurl=http://192.168.0.100/centos/6.9/updates/$basearch
enabled=1
gpgcheck=0

[i-extras]
name=Rhel $releasever - $basearch - extras
baseurl=http://192.168.0.100/centos/6.9/extras/$basearch
enabled=1
gpgcheck=0

[i-centplus]
name=Rhel $releasever - $basearch - centosplus
baseurl=http://192.168.0.100/centos/6.9/centosplus/$basearch
enabled=1
gpgcheck=0


레포지토리 주소가 192.168.0.100이다.


그리고 나서 yum update all 한 후 레포지토리 한번 갱신해주고(설치는안함)
yum update samba 명령으로 samba 버전을 3.6.9-169.el6_5 에서 3.6.23-43.el6_9로 올리게 됨

근데, 랜섬웨어 패치는 samba 4.6버전임...

그래서 다음 명령을 수행
yum remove samba
yum install samba4

그리고 /etc/samba/smb.conf에 다음을 추가해줘야만 했다.

파일이름 : smb.conf
==== Share Definitions ====
[SYSLOG-NW]
        comment = syslog
        path = /SYSLOG-NW
        browseable = yes
        guest ok = no
        writable = yes
        printable = no

그리고 service smb restart
그랬더니 없어졌던 SYSLOG-NW 공유폴더를 다시 사용할 수 있었다.

이제 마운트를 하고 썼던 다른 서버에서 오류가 났다. 그 서버에 다시 마운트하기
(클라이언트 리눅스에서 마운트) mount -t cifs //182.192.0.100/SYSLOG-NW /SYSLOG-NW -o user='root',password='password'


여기까지 성공. 그런데 빌어먹을 다음 레포지토리의 samba4 버전이  4.2.10-10.el6_9로 조치필요한 4.6.5버전보다 훨씬 낮은거 아닌가 참나

그래서 할 수 없이 samba.org에 올라온 버전을 받고, 압축을 풀고, make install 까지 하고도 뭐가 문제인지 몰라 고민하던 와중에

이거대로 했더니 성공하였다.(출처 상단 블로그 링크)
- 구동스크립트 복사
cd ../packaging/RedHat/
cp smb.init /etc/init.d/smb
cp samba.pamd /etc/pam.d/samba

- samba의 데몬과 실행파일들을 PATH 변수의 디렉토리에 모두 링크
ln -s /usr/local/samba/sbin/* /usr/sbin
ln -s /usr/local/samba/bin/* /usr/bin

-samba 서버 시작
/etc/init.d/smb start  또는 service smb start
여기서, 또 퍼미션이 막혀서
chmod 744/etc/init.d/smb 해주니까 실행됨

재부팅되도 실행되도록
chkconfig --level 3 smb on
해당 명령도 적어둠


그런데 smbstatus를 자꾸만 실행해도
Can't load /etc/samba/smb.conf - run testparm to debug it
이렇게 오류 메시지가 나와서
 cp /etc/samba/smb.conf /usr/local/samba/etc/smb.conf
이렇게 조치를 해줌

->새로운 4.6버전은 /usr/local/samba/etc/smb.conf가 기본 설정값임을 확인했다.

Failed to find entry for user root.
이렇게 나와서
smbpasswd -a root
해서 password 넣었더니 samba 사용자가 생김. 기존 yum으로 install 해서 쓰던 samba랑 다른 양상










의문점 :
왜 마운트가 안되는걸까 미치겠네

'OS > Linux' 카테고리의 다른 글

1년 이상 된 로그 삭제해서 삭제목록 리스트 남기기  (0) 2017.12.07
(방화벽) 로그 저장 while문 파일 입력  (0) 2017.02.16
cifs 마운트시 유의점  (0) 2016.08.31
리눅스 파일 시스템 구조  (0) 2016.03.02
PCB  (0) 2016.03.02