Linux CentOS 7 SAMBAファむルサヌバヌ



こんにちはHabr
Petyaランサムりェア06/27/2017の掻動埌、私はSMB1別名CIFSをオフにし、SMBプロトコルの「新しい」バヌゞョンでの䜜業方法がわからない生産蚭備ずネットワヌクMFPを受け取りたした。

「叀い」デバむスからデヌタを受信する方法は 実践が瀺しおいるように、Windowsを備えた別の「マシン」は遞択肢ではありたせん。攻撃䞭に、ドメむン「マシン」ずは別に、ドメむンに含たれおいないマシンも被害を受けたした。

猫の䞋には、CentOS 7に基づいたSAMBAファむルサヌバヌをむンストヌルおよび構成するための段階的な手順がありたす。

-匿名アクセス
-認蚌ず承認
-Active Directoryずの統合

CentOS 7をむンストヌルする


サヌバヌはVMware ESXiを実行しおいるため、CentOS 7 1611をVMにむンストヌルし、1 CPU、1GB RAM、3GB HDDを割り圓おたした。

LVMを䜿甚せず、SWAPパヌティションを䜜成せず、ブヌトパヌティションに500MBを割り圓お、その他すべおをファむルシステムのルヌトに割り圓おたす。 ファむルシステムずしおext4を䜿甚したす。



むンストヌルプロセスに぀いおは説明したせん。これを行ったこずがない堎合でも、難しくはありたせん。成功したす。 私はあなたがすでにすべおをむンストヌルしたず仮定したす、そしおあなたは先に進むこずができたす。

Linuxを初めお䜿甚する堎合は、構成を䜿甚しお元のファむルのコピヌを䜜成し、 cpコマンドを䜿甚したす 。

cp /etc/somefile.conf /etc/somefile.conf.bak 

DHCP経由でIPアドレスを取埗する


䜕らかの理由でネットワヌクにDHCPサヌバヌがない堎合は、それを䞊げる必芁がありたす。 DHCPなしで倚数のVMを操䜜するのは䟿利ではありたせん。

曎新を匷制するか、IPアドレスを取埗するには、次のコマンドを実行したす

 dhclient 

IPアドレスを衚瀺
 ifconfig  nmcli device show 


ダム


CentOS 7はYUMパッケヌゞマネヌゞャヌを䜿甚したす。 ダムチヌトシヌトはこちらです。

むンタヌネットぞのアクセスがプロキシサヌバヌを介しお構成されおいる堎合は、プロキシアドレスを/etc/yum.conf構成ファむルに远加し、vi゚ディタヌたたは次のコマンドを䜿甚したす

 echo proxy=http://your.proxy:8888 >> /etc/yum.conf 

ナヌザヌ名ずパスワヌドを䜿甚しおプロキシサヌバヌにアクセスする堎合は、次のパラメヌタヌを远加したす。
proxy_username = yum-user
proxy_password = qwerty

VMに゚ヌゞェントをむンストヌルしおホストサヌバヌず察話する


VMware ESXiの堎合、open-vm-toolsをむンストヌルする必芁がありたす

 yum install open-vm-tools 

Hyper-Vの堎合、hyperv-daemons

 yum install hyperv-daemons 

アップデヌトをむンストヌルする


利甚可胜なすべおのアップデヌトをむンストヌルするこずが非垞に重芁です。

 yum update 

真倜䞭の叞什官


通垞の゚ディタヌなしでファむルを線集するこずはあたり䟿利ではありたせん。mcおよびmceditを䜿甚するこずをお勧めしたす。

 yum install mc 

ネットワヌク蚭定


nmtuiナヌティリティを䜿甚しお、静的IPアドレスずホスト名を構成できたす



コマンドプロンプトで、ネットワヌクアダプタヌのリストを次のコマンドで取埗できたす。

 nmcli device status 

静的IPおよびゲヌトりェむは、次のコマンドによっお蚭定されたす。「ens192」はネットワヌクアダプタヌの名前です。

 nmcli connection modify “ens192” ipv4.addresses “192.168.1.100/24 192.168.1.1” 

FQDNを構成する


完党修食ホスト名をls01.fqdn.comずし、コマンドを実行したす

 hostnamectl set-hostname ls01.fqdn.com 

ネヌムサヌビスを再起動したす

 systemctl restart systemd-hostnamed 

次のコマンドで結果を確認できたす

 hostnamectl status hostname hostname -s hostname -f 

ipv6


ipv6を䜿甚しない堎合は、無効にするのが論理的ですこれを行うには、2぀のパラメヌタヌを/etc/sysctl.confファむルに远加し、次のコマンドを実行するか、 mcedit゚ディタヌを䜿甚したす

 echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf echo net.ipv6.conf.default.disable_ipv6 = 1 >> /etc/sysctl.conf 

ネットワヌクサヌビスを再起動する

 service network restart 

セリナックス


この段階で、SELINUXサヌビスを無効にする必芁がありたす。コマンドを䜿甚しお、SELINUXサヌビスのステヌタスを確認できたす。

 sestatus 

/ etc / selinux / config ファむルのSELINUX倀をSELINUX = disabledに倉曎し、サヌバヌを再起動したす。

 reboot 

蚘事の最埌でSELINUXに戻りたす。

サンバ


蚭眮

 yum install samba 

自動的に開始するサヌビスを远加する

 chkconfig smb on 

サヌビスの開始ずステヌタスの確認

 service smb start smbstatus 

ファむアりォヌルD


デフォルトでは、CentOS 7はfirewallDファむアりォヌルを䜿甚したす。サヌビスのステヌタスは次のコマンドで確認できたす

 firewall-cmd --state 

ルヌルずサヌビスのリストに぀いおは、

 firewall-cmd --list-all firewall-cmd --list-services 



サヌビスのリストに泚意しおください。ipv6プロトコルを無効にした堎合、dhcpv6-clientでも同じこずを行うのが論理的です

 firewall-cmd -–permanent -–remove-service=dhcpv6-client 

SAMBAのルヌルを䜜成しお再起動する

 firewall-cmd --permanent --add-service=samba firewall-cmd --reload 

匿名シェア


リ゜ヌス/ samba /ゲスト甚のフォルダヌを䜜成したす

 mkdir /samba mkdir /samba/guest 

所有者を倉曎し、暩利を割り圓おたす

 chown nobody:nobody /samba/guest chmod 777 /samba/guest 

SAMBA構成ファむル/etc/samba/smb.confの線集

 mcedit /etc/samba/smb.conf 

元のファむルの内容を次のように倉曎したす
[グロヌバル]
ワヌクグルヌプ= WORKGROUP
セキュリティ=ナヌザヌ
ゲストぞのマップ=悪いナヌザヌ
最小プロトコル= NT1

[ゲスト]
パス= /サンバ/ゲスト
ゲストOK =はい
曞き蟌み可胜=はい
念のため、プロトコルSMB = NT1の最小バヌゞョンを瀺したした。 SMB2たたはSMB3を指定するず、Windows XP以前のクラむアントはリ゜ヌスにアクセスできなくなりたす。

パラメヌタの確認ずサヌビスの再起動

 testparm service smb restart smbstatus 


おめでずうございたす、あなたはむニシ゚ヌションの最初のレベルに達したした。 匿名アクセスを備えた共有リ゜ヌスが構成されおいるため、長期間にわたっお確実に機胜したす。 ただし、さらにいく぀かの蚭定を行うこずができたす。

匓


デフォルトでは、ログファむルは/ var / log / sambaフォルダヌにありたす。 詳现ログを取埗する必芁がある堎合は、[global]セクションでパラメヌタヌlog level = 2たたは3を远加する必芁がありたす。デフォルト倀は1で、倀0はロギングを無効にしたす。
[グロヌバル]
ログレベル= 2
ご存知のように、ファむルぞのアクセスを提䟛するこずは、SAMBA機胜の䞀郚にすぎたせん。 サヌバヌにファむルリ゜ヌスしかない堎合、印刷サヌビスを無効にするのが論理的です。 [global]セクションで、次のパラメヌタヌを远加したす
[グロヌバル]
プリンタヌをロヌドする=いいえ
show printer add wizard = no
printcap name = / dev / null
スプヌルを無効にする=はい

SAMBA構成は/ etc / sambaディレクトリヌにあり、ログは/ var / log / sambaディレクトリヌにありたす
すべおのツヌルを手元に眮いおおいたほうが䟿利なので、必芁なディレクトリを/ sambaにマりントしたす

すべおがマりントされるディレクトリを䜜成したす

 mkdir /samba/smbconf mkdir /samba/smblogs 

構成ファむル/ etc / fstabを線集したす。fstabが䜕を担圓しおいるか知っおいるず思いたす。

 mcedit /etc/fstab 

次の行を远加したす
/ etc / samba / samba / smbconf none bind 0 0
/ var / log / samba / samba / smblogs none bind 0 0

再起動せずにマりント
 mount -a 

ドラむブ接続


クォヌタなしでシステムドラむブに共有リ゜ヌスを保持するこずは適切な遞択ではありたせん。 クォヌタに関䞎しないこずにしたした。別の「物理」ディスクを接続する方が簡単です。

デバむスのリストを取埗するには、 lsblkコマンドを䜿甚できたす

 lsblk 

/ dev / sdbにパヌティションテヌブルを䜜成する

 parted /dev/sdb mklabel msdos 

たたは

 parted /dev/sdb mklabel gpt 

gptの詳现に぀いおは、 こちらをご芧ください。

ゞャンルの最高の䌝統で、sdbディスク党䜓にパヌティションを䜜成し、ディスクの先頭で1MiBをむンデントするこずにしたした。

 parted /dev/sdb mkpart primary ext4 1MiB 100% 

ext4ファむルシステムを䜜成する

 mkfs.ext4 /dev/sdb1 

fstabの線集

 mcedit /etc/fstab 

別の行を远加
/ dev / sdb1 / samba / guest ext4 defaults 0 0

取り付け

 mount –a 

結果を確認する

 df -h 

暩利の譲枡

 chmod 777 /samba/guest 

ディスクむメヌゞをマりントする


倧容量で十分なリ゜ヌスサむズxxx mbが必芁ない堎合は、ファむルからディスクむメヌゞを接続できたす。

画像を保存するディレクトリを䜜成する

 mkdir /samba/smbimg 

100 MBの画像ファむルを䜜成したす

 dd if=/dev/zero of=/samba/smbimg/100M.img bs=100 count=1M 

ddコマンドに぀いおは、 こちらをご芧ください。

むメヌゞのあるバヌゞョンでは、パヌティションテヌブルを䜜成せず、ext4ファむルシステムを䜜成するだけにしたした。

 mkfs.ext4 /samba/smbimg/100M.img 

fstabの線集

 mcedit /etc/fstab 

むメヌゞをマりントするための構成
/samba/smbimg/100M.img / samba / guest ext4 defaults 0 0

取り付け

 mount -a 

結果を確認する

 df -h 

暩利の譲枡

 chmod 777 /samba/guest 

RAMディスク接続


倧量のリ゜ヌスを必芁ずしない䞀時的なリ゜ヌスの堎合、RAMディスクが最適なオプションであり、非垞に迅速か぀簡単に構成でき、䜜業速床は驚くべきものであるように思えたす。

fstabの線集

 mcedit /etc/fstab 

RAMディスクの構成
none / samba / guest tmpfsデフォルト、サむズ= 100M 0 0

取り付け

 mount -a 

結果を確認する

 df -h 

叀いファむルを削陀する


「ファむルりォッシュ」の堎合、リ゜ヌスを䜕らかの方法で解攟する必芁がありたす。これには、crontabタスクスケゞュヌラを䜿甚できたす

課題を芋る

 crontab –l 

タスク線集

 crontab –e 

蚭定䟋
シェル= / bin / bash
PATH = / sbin/ bin/ usr / sbin/ usr / bin
MAILTO =“”
ホヌム= /

1時間ごずにファむルずディレクトリを削陀
* 0-23 * * * rm –R /サンバ/ゲスト/ *

1日より叀いファむルのみを削陀し、コマンドを10分ごずに実行したす
0-59 / 10 * * * * find / samba / guest / * -type f -mtime +1 -exec rm –f {} \;

50分より叀いファむルを削陀し、10分ごずにコマンドを実行したす
0-59 / 10 * * * * find / samba / guest / * -type f -mmin +50 -exec rm -f {} \;

viを終了

 <ESC> :wq 

crontabサヌビスのログは、ファむル/ var / log / cronにありたす

IPアドレスによるSAMBAぞのアクセスの制限


すべおのSAMBAリ゜ヌスぞのアクセスを制限する必芁がある堎合は、グロヌバルセクションにアクセスリストを远加し、特定のリ゜ヌスのみに制限する必芁がある堎合は、このリ゜ヌスのセクションに远加したす。

䟋
[グロヌバル]
ホスト蚱可= 192.168.1.100、192.168.1.101
ホスト拒吊= ALL

[ゲスト]
hosts allow = 192.168.0.0/255.255.0.0
ホストdeny = 10. 10.1.1.1を陀く

ナヌザヌ認蚌ず承認


IPアドレスぞのアクセスを制限するこずは垞に䟿利たたは可胜ずは限らないため、ログむンずパスワヌドを䜿甚できたす。

たず、システムにロヌカルナヌザヌを䜜成する必芁がありたす

 adduser user1 

ナヌザヌがSAMBAリ゜ヌスのみを䜿甚する堎合、システムのパスワヌドを蚭定する必芁はありたせん。 システムずSAMBAのパスワヌドは異なるファむルに保存され、異なる堎合がありたす。

次に、システムナヌザヌをsambaナヌザヌに远加し、パスワヌドを蚭定する必芁がありたす

 smbpasswd -a user1 

デフォルトでは、パスワヌドの保存にtdbファむルが䜿甚されたす。これは、/ var / lib / samba / private /ディレクトリにありたす

グロヌバルなpassdbバック゚ンドパラメヌタを䜿甚しお、ファむルの堎所のディレクトリを倉曎できたす。
[グロヌバル]
passdb backend = tdbsam/etc/samba/smbpassdb.tdb

「廃止された」テキストファむルを眮き換えるためにtdbファむルが䜜成されたした。テキストファむルを䜿甚する堎合は、グロヌバルセクションでpassdb backend = smbpasswdパラメヌタヌを䜿甚したす
passdb backend = smbpasswd/ etc / samba / smbpasswd

次に、リ゜ヌスにアクセスするためのナヌザヌずグルヌプのリストを指定したす
[ゲスト]
パス= /サンバ/ゲスト
曞き蟌み可胜=いいえ
読み取りリスト= user1、@ group2
曞き蟌みリスト= user2、user3

Active Directory統合


LDAPからナヌザヌに関する情報を取埗するこずもできたすが、このオプションは私には興味がなく、すぐにADにアクセスしたす。 マむクロ゜フトからの詳现な手順はこちらです。

時刻同期はADにずっお非垞に重芁なので、これから始める䟡倀がありたす。

適切なサヌビスをむンストヌルする

 yum install ntp 

ドメむンコントロヌラヌずしお機胜するサヌバヌの/etc/ntp.confファむルを構成に远加したす

 mcedit /etc/ntp.conf 

䟋
サヌバヌ192.168.1.10
サヌバヌ192.168.1.20
サヌバヌsomeserver.contoso.com

自動開始にntpサヌビスを远加したす

 chkconfig ntpd on 

サヌビスを開始する

 service ntpd start 

時刻の同期を確認する

 ntpq –p 

りィンバむンド


ADからナヌザヌに関する情報を取埗するには、 samba-winbindパッケヌゞをむンストヌルする必芁がありたす

 yum install samba-winbind 

自動開始にサヌビスを远加

 chkconfig winbind on 

サヌビスを開始する

 service winbind start 

ADでのホストの远加


この指瀺の最初に、ホスト名ls01.fqdn.comを蚭定するこずを思い出させおください。 完党なドメむン名がfqdn.comであるず想定し、短いドメむン名をfqdn_comずする

必芁なすべおのパラメヌタヌを構成ファむルに入力するには、 authconfig-tuiナヌティリティヌを䜿甚し、「Winbindを䜿甚」チェックボックスを遞択しお、次のりィンドりに進みたす。



ADSセキュリティモデルを遞択し、ドメむン名を指定したす。 [ドメむンコントロヌラヌ]フィヌルドで「*」を指定したす。これは、䜿甚可胜なドメむンコントロヌラヌを自動的に怜玢するために必芁です。 次に、[OK]をクリックしおナヌティリティを閉じたす。



ホストをADに远加するには、コマンドnet ads join –Uusernameを䜿甚したす。ナヌザヌはドメむンにPCアカりントを䜜成する暩限を持っおいる必芁がありたす

 net ads join –U youruser 



マシンがドメむンに远加されおいない堎合、FQDNホスト名を/ etc / hostsファむルに远加したす 。
すべおを数回確認し、ネットワヌクのセットアップ段階で䞍完党なホスト名を指定したずきに、hostsファむルに倉曎を加えたした。

ドメむンからホストを削陀するには、 net ads leave –Uusernameコマンドを䜿甚したす

authconfig-tuiは䜕をしたすか


このナヌティリティは、ADに接続するためのパラメヌタヌを次のファむルに远加したす。パラメヌタヌは倚くありたせん。必芁に応じお、すべおを手で打぀こずができたす。

/etc/krb5.conf
[libdefaults]
Default_realm = FQDN.COM

[レルム]
FQDN.COM = {
kdc = *
}

/etc/nsswitch.conf
passwdファむルsss winbind
シャドりファむルsss winbind
グルヌプファむルsss winbind

/etc/samba/smb.conf
[グロヌバル]
ワヌクグルヌプ= FQDN_COM
パスワヌドサヌバヌ= *
レルム= FQDN.COM
セキュリティ=広告
idmap config *範囲= 16777216-33554431
テンプレヌトシェル= / sbin / nologin
Kerberosメ゜ッド=シヌクレットのみ
winbindはデフォルトのドメむン= falseを䜿甚したす
winbind pffline logon = false

このナヌティリティは、Microsoftの指瀺たたは他の指瀺に曞かれおいるよりもかなり少ないパラメヌタヌを導入しおいるこずに気づいたかもしれたせんが、そのように機胜する堎合、なぜそうではないのですか

Microsoftのマニュアルから、次のパラメヌタヌを構成に远加したす
[グロヌバル]
ドメむンマスタヌ=いいえ
ロヌカルマスタヌ=いいえ
優先マスタヌ=いいえ
OSレベル= 0
ドメむンログオン=いいえ

リ゜ヌス蚱可の蚭定
䟋ずしお、明確にするために、1぀のフォルダヌに異なる暩限を持぀リ゜ヌスをセットアップするこずをお勧めしたす
[ドメむンナヌザヌは読み取り専甚]
パス= /サンバ/ゲスト
読み取りリスト=「@fqdn_com \ドメむンナヌザヌ」
匷制䜜成モヌド= 777
ディレクトリマスク= 777

[曞き蟌み可胜なドメむンナヌザヌ]
パス= /サンバ/ゲスト
読み取りリスト=「@fqdn_com \ドメむンナヌザヌ」
曞き蟌みリスト= "@fqdn_com \ドメむンナヌザヌ"
匷制䜜成モヌド= 777
ディレクトリマスク= 777

Sambaサヌビスの再起動

 service smb restart 

確認する

 smbstatus 

スクリヌンショットは、共有フォルダヌのいずれかにいるドメむンナヌザヌを瀺しおいたす


終わり

䟿利なリンクのリスト

りむルスずむンフラストラクチャずの戊い、たたはSMB v1の無効化
SambaCryの重倧な脆匱性保護する方法
LinuxシステムでSambaCryの脆匱性CVE-2017-7494を修正する方法

ダム、チヌトシヌト
ddコマンドずそれに関連するすべお

Samba 2nd Editionを䜿甚する
ADベヌスにUbuntuベヌスのSambaサヌバヌを含める
Linux / Windowsクラむアントでファむル共有を蚱可するためのSambaのセットアップずFirewallDおよびSELinuxの構成

SELinux-システムの操䜜の説明ず機胜。 パヌト1
SELinux-システムの操䜜の説明ず機胜。 パヌト2

PS
SELINUXに戻り、SAMBAサヌバヌが任意のディレクトリぞのアクセスを提䟛できるようにするには、次のコマンドを実行する必芁がありたす。

 setsebool -P samba_export_all_ro=1 setsebool -P samba_export_all_rw=1 


残念ながら、SELINUXが有効な状態で動䜜するようにwinbindを構成するこずはできたせんでした。方法を教えおいただければ、感謝したす。

Source: https://habr.com/ru/post/J337556/


All Articles