覚書:CentOS5 で Samba 設定
技術系はネットで公開・非公開は自由だが何らかの形で記録を取るべし。
Sambaを設定するのは3年ぶり2度目だが、初めて往生した時の記録が無いためふたたび往生することに。
SambaとはUnix系OSの中身をWindowsエクスプローラで閲覧操作可能にするソフトウェア、社内LAN環境でよく使われる。
と言うわけで下記覚書。設定ファイル系は全て最初にバックアップを取ることと、自己責任で行うこと。
次回から5分以内で設定できることを自分自身に期待する。
sudo yum -y install samba
#Sambaをインストール(良い子になってやっとsudoを使うことにした、以下、sudoは省略)
vi /etc/samba/smb.conf
#設定ファイルを編集
#--------------------------------------
[global] #共通設定
security = share #共有するように
dos charset = CP932 #Windows側の文字コード
unix charset = UTF-8 #Unix側の文字コード
display charset = UTF-8 # 〃
workgroup = ワークグループ名 #Windows端末と同じワークグループ名
hosts allow = 192.168.○. 127. #許可するIPアドレスの上部(127は不要に思うが・・・)
[Windows側に表示される名前]
path = /home/共有するディレクトリ名
writable = yes #書き込み可能
guest ok = yes #誰でもOK(ネットワーク内なら)
guest only = yes #ゲストのみとする
#--------------------------------------
mkdir /home/共有するディレクトリ名
#共有するディレクトリを作成
chmod -R 777 /home/共有するディレクトリ名
chown nobody:nobody -R /home/共有するディレクトリ名
#全てのユーザに読み書き実行権を与える(後者は不要かも)
chkconfig smb on
#サーバ起動時にSambaサービスが立ち上がるように設定
/etc/rc.d/init.d/smb start
#サービスを起動
SMB サービスを起動中: [ OK ]
NMB サービスを起動中: [ OK ]
#________________________________
#既存のSambaがIPアドレスではなく、マシン名で
#名前解決されているのでこちらもがんばる。
#--------------------------------
vi /etc/sysconfig/network
#ネットワークの設定変更(マシン名のところのみ)
#--------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=マシン名.localdomain
#--------------------------------------
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#イーサネットカードの設定?変更
#--------------------------------------
DEVICE=eth0
BOOTPROTO=none
HWADDR=マックアドレス(触らない)
ONBOOT=yes
DHCP_HOSTNAME=マシン名.localdomain
IPADDR=192.168.○.○
NETMASK=255.255.255.0
GATEWAY=192.168.○.○
#--------------------------------------
/etc/rc.d/init.d/network restart
#ネットワーク再起動
#________________________________
#ここまではまぁ順調。この後でひっかかる。
#答えから言いましょう、IPTablesとSELinux。
#--------------------------------
#--------------------------------
#IPTablesから
#--------------------------------
#最初にまずポリシーを決める
#INPUTは全て許可
#OUTPUTは全て許可
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#ルールをひとまずクリア
iptables -F
#pingと自端末からの入力を許可
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#名前解決に必要
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#WebとSSHに必要なポートを許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#Sambaに必要なポートを許可
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
#残りは破棄
iptables -P INPUT DROP
#ルールを保存
/etc/init.d/iptables save
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[ OK ]
#IPTablesを再起動
service iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中filter [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]
#--------------------------------
#SELinuxの設定
#社内サーバの場合は不要と思いつつも勉強がてら
#--------------------------------
cat /etc/sysconfig/selinux
#--------------------------------
SELINUX=enforcing
#enforcingをdisabledにしてサーバ再起動でも良い
#今回はenforcingのままでそのままファイルを閉じる
setsebool -P samba_enable_home_dirs true
#設定は上記コマンドのみ。手強いヤツのわりには1行だけ
shutdown -r now
#サーバ再起動
Windowsのマイネットワークから表示、操作確認。
パチパチパチ
広ブロっち♪ d(^-^)