FreeBSD ネットワーク設定
ネットワークカードの設定
ネットワークカードを2枚差ししているときは、 /etc/rc.confに以下のような行を加える. なお、network_interfaces 変数の設定は非推奨であり、 ifconfig_<デバイス名> の行だけを書けばよい.
ifconfig_外部側デバイス名="inet 外部側IPアドレス netmask ネットマスク"
ifconfig_内部側デバイス名="inet 内部側IPアドレス netmask ネットマスク"
defaultrouter="デフォルトゲートウェイのIPアドレス"
|
デバイス名はifconfigコマンドで調べる
「外部側」というのはインターネットに接続する側で、「内部側」というのは自分がNATやDHCPなどのサービスを提供する側
DHCP でアドレスを取得する場合は、次のように書く.
ifconfig_デバイス名="DHCP"
セキュリティ設定
/etc/rc.conf で sendmail_enable="NONE"
FreeBSD 14.0 以降では、既定のメール転送エージェント (MTA) は dma であり、 sendmail は既定で無効である. sendmail が有効になっている環境で、メールサーバとして運用しないのであれば、 /etc/rc.conf に「sendmail_enable="NONE"」と設定して無効にする. "NO" ではなく "NONE" と設定すると、sendmail 関連の rc スクリプト (sendmail_submit, sendmail_outbound, sendmail_msp_queue) がまとめて無効になる.
sendmail_enable="NONE"
/etc/ttys の設定
使用しない getty を停止する. /etc/ttys を編集する.
設定例は次の通りである.設定の「意味」を理解して行うこと。
# 設定の「意味」を理解して行うこと(ここに書いたのは、あくまでも例です)。 ttyv1 の行: secure を insecure へ(root の直接ログインを禁止する) ttyv2 から ttyv7 の行: 3番目のフィールドを off にする ttyu0 から ttyu3 の行(シリアル端末): 3番目のフィールドを off にする
insecure を指定した端末では、root で直接ログインできなくなる(一般ユーザでログインして su を使う). off を指定した端末では getty が起動しなくなる.
パケットフィルタ pf の設定
遠隔からの接続を制限したいときは、パケットフィルタ pf を使う. /etc/rc.conf に次を設定する.
pf_enable="YES"
pf_rules="/etc/pf.conf"
/etc/pf.conf の設定例は次の通りである(ext_if は自ホストのデバイス名に書き換える). 「外向きの通信は許可し、内向きは ssh のみ許可する」という設定である.
ext_if = "デバイス名"
set skip on lo0
block in all
pass out all keep state
pass in on $ext_if proto tcp to ($ext_if) port 22 keep state
設定を読み込み、状態を確認する.
service pf start
pfctl -s rules
/etc/hosts.allow
TCP Wrappers による接続制御を行いたいときは、/etc/hosts.allow を設定する. FreeBSD では /etc/hosts.deny は使用されず、拒否の設定も /etc/hosts.allow に記述する.
TCP Wrappers が効くのは inetd 経由のサービスと libwrap に対応したサービスに限られる. OpenSSH は libwrap に対応していないため、sshd への接続は /etc/hosts.allow では制御できない. ホスト全体で通信を制限したいときは、上記の pf を使う.
ALL : 127.0.0.1 : ALLOW
ALL : ALL : DENY
/etc/ssh/sshd_config
/etc/ssh/sshd_config に次のような設定を書き加える.
hoge1 hoge2 hoge3 は, 遠隔からの ssh 接続を許すユーザ名を列挙する(つまり「hoge1 hoge2 hoge3」 のところは必ず書き換える).
PermitRootLogin no
AllowGroups wheel
AllowUsers hoge1 hoge2 hoge3
Match User hoge1
X11Forwarding yes
AllowTcpForwarding yes
Match User hoge2
X11Forwarding yes
AllowTcpForwarding yes
Match User hoge3
X11Forwarding yes
AllowTcpForwarding yes
ホスト鍵は初回起動時に自動生成されるため、HostKey の行を書く必要はない. SSH プロトコルバージョン 1 と DSA 鍵は現在の OpenSSH では廃止されているので、 「Protocol 2」や「HostKey /etc/ssh/ssh_host_dsa_key」の設定は不要である.
設定を変更したら、構文を確認してから反映する.
sshd -t
service sshd reload
研究室ネットワークにつないで使うための設定
/etc/resolv.conf の確認
/etc/resolv.conf が正しく設定されているかどうかの確認を行う
/etc/resolv.confには、 DNSで使うドメイン名の設定などを行う。 search, nameserver の行が正しく設定されていることをよく確認すること
DHCP を使っている場合、/etc/resolv.conf は dhclient によって自動的に書き換えられる.
- グローバルIPアドレスを持つマシン
(xxx.yyy.zzz の部分は、DNS サーバのネットワークアドレス)。
search <DNS ドメイン名> nameserver <DNS サーバの IP アドレス> # for example, xxx.yyy.zzz.160 - (参考)プライベートIPアドレスを持つマシン
ルータが DNS の問い合わせを転送する機能(DNS フォワーダ)を持っていることが多いので、確認の上、 そのIPアドレスを設定する
search <DNS ドメイン名> nameserver <ルータ(DNS フォワーダ)の IP アドレス> # for example, 192.168.33.1
名前解決の確認は次のコマンドで行う.
host www.freebsd.org
(固定 IP アドレスを持つマシンの場合) DNS への登録
固定 IP アドレスを使うマシンは、ネットワーク管理者に依頼して DNS に登録する. DNS サーバ側では次の作業を行う.
- 正引きゾーンファイルにホスト名と IP アドレスの A レコードを追加する
- 逆引きゾーンファイルに PTR レコードを追加する
- それぞれのゾーンファイルの Serial(シリアル番号)の値を増やす
- 設定を再読み込みする
rndc reload
/etc/shells
ログインシェルに指定できるのは、/etc/shells に記載されているシェルだけである. tcsh を使いたいときは、パッケージをインストールする. インストール時に /usr/local/bin/tcsh が /etc/shells に自動的に追加される.
pkg install tcsh
ログインシェルの変更は chsh コマンドで行う.
chsh -s /usr/local/bin/tcsh
FreeBSD の基本システムにも /bin/tcsh が含まれているので、パッケージを入れずに 「chsh -s /bin/tcsh」としてもよい.
(オプション) NIS クライアントとしての設定
共有マシンなどでは、 NIS クライアントとしての設定を行ない、 NIS サーバで管理したデータ(アカウントデータ等)を受けとるように設定するのが便利である. NIS は通信を暗号化しないため、信頼できるネットワーク内でのみ使用し、 外部と接続するマシンでは LDAP over TLS や Kerberos などの方式を検討する.
/etc/rc.conf の設定
NIS ドメイン名と、NIS クライアント (ypbind) の起動を /etc/rc.conf に設定する
nisdomainname="<NISドメイン名>"
nis_client_enable="YES"
現在の NIS ドメイン名は domainname コマンドで確認できる
domainname
vipw の実行
vipw コマンドで、パスワードファイルを開き,末尾に 「+:::::::::」を書き加えておく
これは「パスワードのデータを NIS サーバからも取り込む」という意味
vipw # 最終行に次の1行を追加 ----- +::::::::: -----
/etc/group の変更
グループの情報も NIS サーバから取り込む
vi /etc/group # 最終行に次の1行を追加 ----- +::: -----
再起動し、エラーメッセージが出ないことの確認
shutdown -r now
NIS クライアント動作確認
/usr/bin/rpcinfo -p localhost # rpcbind, ypbind についての情報が表示される /usr/bin/rpcinfo -u localhost ypbind # ypbind についての情報が表示される ypcat hosts # NIS サーバで管理されている host が表示される
再起動
以上で、設定作業は終了したので、再起動する.
shutdown -r now