青木 様 Sun, 10 Jul 2016 17:55:51 +0900 Tomoaki AOKI <junch...@dec.sakura.ne.jp> writes:
>一応念の為。 > >FreeBSDだと > 1./etc/defaults/rc.confを読み込む。 ええ、それは承知しています。PC-BSDではこの /etc/defaults/rc.conf の中に rc_conf_files="/etc/rc.conf.pcbsd /etc/rc.conf /etc/rc.conf.local" という行がある(つまり元祖FreeBSDの /etc/defaults/rc.conf をいじって いる)ので、 2./etc/rc.conf.pcbsdを読む 3./etc/rc.confを読む 4./etc/rc.conf.localがあれば読む となります。なお、/etc/rc.conf.pcbsd の中で重要な設定は pcdm_enable="YES" で、これを rc.conf で NO に設定すると、一見したところFreeBSDと区別がつか なくなると思います。 > 2./etc/rc.confがあれば/etc/defaults/rc.conf内の処理で読み込む。 > 3./etc/rc.conf.localがあれば/etc/defaults/rc.conf内の処理で読み込む。 > 4./etc/defaults/vendor.confがあれば/etc/defaults/rc.conf内の処理で > 読み込む。 >という流れになっており、後の設定で前の設定を上書きできるようになって >おり、デフォルトでは、/etc/defaults/rc.confしか存在しません。 >一応の使い分けとして、 > > ・/etc/defaults/rc.confはFreeBSDの動作上必要な設定のデフォルトを > 纏めてあり、管理者・ユーザによる編集は一切想定しない。 従って、PC-BSDが /etc/defaults/rc.conf の中の rc_conf_files という変数を いじったのは、元祖 FreeBSDの設計者の「想定外」かも知れませんね。 > ・/etc/rc.confはサイト(職場や自宅)内の全サーバ・端末で共通の > 設定を行う。 デフォルトで不都合のある場合のみ作成要。 > > ・/etc/rc.conf.localはそのサーバ・端末固有の設定を行う。 > /etc/rc.confまでの設定で不都合のある場合のみ作成要。 このような「階層的な」考えは私には非常に納得できるのもですが、しかしそれ なら hostname や ifconfig_(インターフェース名)は/etc/rc.conf.local に入 れるべき、という議論になると思います。FreeBSDのインストーラーではどう設 定されますか?また皆さんはどうしていますか?PC-BSDはこれらは /etc/rc.conf に設定されてしまいます。 (引用途中略) >/etc/defaults/vendor.confを使う意味は、ベンダーとしての保証上、何がなん >でもユーザ側で上書きされると困る設定がある場合への対応でしょうか。 >PC-BSDでそちらを使っていないのなら、「設定したのに反映されない。 なん >で?」という不平を産んでまで強制したい設定は無い、ということでしょう。 > >...と書いていて気になったのでsvnwebで確認したら、stable/10では >/etc/defaults/vendor.donfに関する処理は入っていませんでした。 11系から >の新機能のようです。 もしかするとPC-BSDの10系からはこちらの仕組みが >使われるかも? というより、 PC-BSDの /etc/rc.conf.pcbsd を「参考にして」、あるいは「影 響されて」/etc/defaults/vendor.conf が 11 で導入されたのではないですか? PC-BSDは、FreeBSDを基本としながらも、いくかの点で「本家FreeBSDの改良を先 導したい」というような意図を感じるところがあります。例えば package がtbz から txz に変わったのは、本家 FreeBSDよりも PC-BSDの方が先でした。このよ うな態度を取るPC-BSDのチームが本家FreeBSDのコアメンバーとどういう人間関 係なのか、私は少し気になっていたのですが、今回PC-BSDのKris Mooreが Core.9 に加わった(7月6日の FreeBSD-Announce参照)ので、PC-BSDとFreeBSDの 間の「乖離」はこれまでよりも少なくなるだろうと考えています。 >> # grep firewall rc.conf.pcbsd >> firewall_enable="YES" >> firewall_type="open" >> firewall_enable="YES" >> firewall_script="/etc/ipfw.rules" >> firewall_type="open" >> >> となっております。 > >/etc/ipfw.rulesというのはPC-BSD独自のようですね。 >FreeBSDの場合、/etc/defaults/rc.confにfirewall_script="/etc/rc.firewall" >の設定がありますので、/etc/rc.firewallを置き換える形で使うことになり >ます。 従って、同じfirewall_type="open"でもFreeBSDと処理が異なる >可能性があります。 PC-BSD10.2, 10.3 の /etc/ipfw.rules は以下のようになっております。 #!/bin/sh # To re-apply rules, you can run "sh /etc/ipfw.rules" # Flush out the list before we begin. ipfw -q -f flush # Set rules command prefix cmd="ipfw -q add" # No restrictions on loopback #################################################################### $cmd 00020 allow all from any to any via lo0 #################################################################### # Check the state of packets #################################################################### $cmd 01000 check-state $cmd 01050 allow tcp from any to any established $cmd 01100 allow udp from any to any established #################################################################### # Allow all outgoing packets #################################################################### $cmd 02000 allow ip from any to any out keep-state $cmd 02050 allow ip6 from any to any out keep-state $cmd 02100 allow ipv6-icmp from any to any keep-state $cmd 02150 allow icmp from any to any keep-state #################################################################### # Allow specific ports IN now # Add items to /etc/ipfw.openports in the format # {tcp|udp} <portnum> #################################################################### nextnum=10000 if [ -e "/etc/ipfw.openports" ] ; then while read line do echo $line | grep -q "^#" if [ $? -eq 0 ] ; then continue ; fi proto="`echo $line | awk '{print $1}'`" port="`echo $line | awk '{print $2}'`" if [ -z "$proto" -o -z "$port" ] ; then continue ; fi $cmd $nextnum allow $proto from any to any $port in keep-state nextnum=`expr $nextnum + 1` done < /etc/ipfw.openports fi #################################################################### # Allow specific IPs incoming traffic now (Used for jails mainly) # Add items to /etc/ipfw.openip in the format # {ip4|ip6} <ip> #################################################################### nextnum=20000 if [ -e "/etc/ipfw.openip" ] ; then while read line do echo $line | grep -q "^#" if [ $? -eq 0 ] ; then continue ; fi proto="`echo $line | awk '{print $1}'`" ip="`echo $line | awk '{print $2}'`" if [ -z "$proto" -o -z "$ip" ] ; then continue ; fi $cmd $nextnum allow $proto from any to $ip in keep-state nextnum=`expr $nextnum + 1` done < /etc/ipfw.openip fi #################################################################### # Deny all other incoming troublemakers #################################################################### $cmd 64000 deny log all from any to any #################################################################### # Check for user custom rules if [ -e "/etc/ipfw.custom" ] ; then sh /etc/ipfw.custom fi >> PC-BSD をNFSサーバーにするには、あと /etc/hosts.allow もいじる必要があり >> ますが、皆様に披露するような話でもないと思いますので、省略します。 > >潜在的に需要はありそうな気もしますが、少なくともFreeBSDではこのファイル >自体が事例集のようになっているので、見たいという声が挙がったらでいいか >と。 PD-BSD10.2 の /etc/hosts.allow は以下の通りです。 # # hosts.allow access control file for "tcp wrapped" applications. # $FreeBSD: src/etc/hosts.allow,v 1.19.8.1 2006/02/19 14:57:01 ume Exp $ # # NOTE: The hosts.deny file is deprecated. # Place both 'allow' and 'deny' rules in the hosts.allow file. # See hosts_options(5) for the format of this file. # hosts_access(5) no longer fully applies. # _____ _ _ # | ____| __ __ __ _ _ __ ___ _ __ | | ___ | | # | _| \ \/ / / _` | | '_ ` _ \ | '_ \ | | / _ \ | | # | |___ > < | (_| | | | | | | | | |_) | | | | __/ |_| # |_____| /_/\_\ \__,_| |_| |_| |_| | .__/ |_| \___| (_) # |_| # !!! This is an example! You will need to modify it for your specific # !!! requirements! # Start by allowing everything (this prevents the rest of the file # from working, so remove it when you need protection). # The rules here work on a "First match wins" basis. #ALL : ALL : allow # Wrapping sshd(8) is not normally a good idea, but if you # need to do it, here's how #sshd : .evil.cracker.example.com : deny # Protect against simple DNS spoofing attacks by checking that the # forward and reverse records for the remote host match. If a mismatch # occurs, access is denied, and any positive ident response within # 20 seconds is logged. No protection is afforded against DNS poisoning, # IP spoofing or more complicated attacks. Hosts with no reverse DNS # pass this rule. ALL : PARANOID : RFC931 20 : deny # Allow anything from localhost. Note that an IP address (not a host # name) *MUST* be specified for rpcbind(8). ALL : localhost 127.0.0.1 : allow # Comment out next line if you build libwrap with NO_INET6=yes. ALL : [::1] : allow ALL : my.machine.example.com 192.0.2.35 : allow # To use IPv6 addresses you must enclose them in []'s ALL : [fe80::%fxp0]/10 : allow ALL : [fe80::]/10 : deny ALL : [2001:db8:2:1:2:3:4:3fe1] : deny ALL : [2001:db8:2:1::]/64 : allow # Sendmail can help protect you against spammers and relay-rapers sendmail : localhost : allow sendmail : .nice.guy.example.com : allow sendmail : .evil.cracker.example.com : deny sendmail : ALL : allow # Exim is an alternative to sendmail, available in the ports tree exim : localhost : allow exim : .nice.guy.example.com : allow exim : .evil.cracker.example.com : deny exim : ALL : allow # Rpcbind is used for all RPC services; protect your NFS! # (IP addresses rather than hostnames *MUST* be used here) rpcbind : 192.0.2.32/255.255.255.224 : allow rpcbind : 192.0.2.96/255.255.255.224 : allow rpcbind : ALL : deny # NIS master server. Only local nets should have access ypserv : localhost : allow ypserv : .unsafe.my.net.example.com : deny ypserv : .my.net.example.com : allow ypserv : ALL : deny # Provide a small amount of protection for ftpd ftpd : localhost : allow ftpd : .nice.guy.example.com : allow ftpd : .evil.cracker.example.com : deny ftpd : ALL : allow # You need to be clever with finger; do _not_ backfinger!! You can easily # start a "finger war". fingerd : ALL \ : spawn (echo Finger. | \ /usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \ : deny # The rest of the daemons are protected. #ALL : ALL \ # : severity auth.info \ # : twist /bin/echo "You are not welcome to use %d from %h." # denyhosts sshd : /etc/hosts.deniedssh : deny sshd : ALL : allow -------- 丸山直昌@統計数理研究所 _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"