So-net無料ブログ作成
スポンサードリンク
前の5件 | -

CentOS7のIPv6無効化設定 [Linux]

IPv6化が進んでいるなかで、CentOS7もインストールした直後はIPv6が有効になっているが,利用する環境によっては無効にしたほうが良い場合もあるので、その時の設定メモ。

インストール後のネットワーク設定表示
IPv6表示がある「inet6」
# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:95:1c:41 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe95:1c41/64 scope link
valid_lft forever preferred_lft forever

grub.cfgを編集する。
編集前
# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

編集後
# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap"
GRUB_DISABLE_RECOVERY="true"

GRUB_CMDLINE_LINUX行に「ipv6.disable=1」を追加する。
ついでに,「rhgb quiet」を削除すると起動時のプログレスバーが表示しなくなる。

grub.cfgへ反映する。
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-ec70996ac21e4bd0accccbb754cc93ea
Found initrd image: /boot/initramfs-0-rescue-ec70996ac21e4bd0accccbb754cc93ea.img
done

再起動をする
# reboot

IPv6の表示が消えた
# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:95:1c:41 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global enp0s8
valid_lft forever preferred_lft forever

OSでIPv6を無効化すると,IPv6を標準で利用するアプリでエラーが発生するので、アプリの設定で無効化する。
postfixのIPv6関連エラー
無効化前は・・・
# tail /var/log/maillog
postfix/pickup[2105]: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postfix/qmgr[2106]: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol

# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since           JST; 1h 16min ago
Process: 2015 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
Process: 2032 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
Process: 2029 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 2024 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 2104 (master)
CGroup: /system.slice/postfix.service
tq2104 /usr/libexec/postfix/master -w
tq2105 pickup -l -t unix -u
mq2106 qmgr -l -t unix -u

postfix[2032]: /usr/sbin/postconf: warning: inet_protocols: disabling IPv6 name/address support: ...rotocol
postfix[2032]: /usr/sbin/postconf: warning: inet_protocols: disabling IPv6 name/address support: ...rotocol
postfix[2032]: postsuper: warning: inet_protocols: disabling IPv6 name/address support: Address f...rotocol
postfix[2032]: /usr/sbin/postconf: warning: inet_protocols: disabling IPv6 name/address support: ...rotocol
postfix/master[2104]: warning: inet_protocols: disabling IPv6 name/address support: Address family...otocol
postfix/master[2104]: warning: inet_protocols: disabling IPv6 name/address support: Address family...otocol
postfix/master[2104]: daemon started -- version 2.10.1, configuration /etc/postfix
systemd[1]: Started Postfix Mail Transport Agent.
postfix/pickup[2105]: warning: inet_protocols: disabling IPv6 name/address support: Address family...otocol
postfix/qmgr[2106]: warning: inet_protocols: disabling IPv6 name/address support: Address family n...otocol
Hint: Some lines were ellipsized, use -l to show in full.

postfixの設定でIPv6を無効にする。
# vi /etc/postfix/main.cf
inet_protocols = all
    ↓
inet_protocols = ipv4

confファイル確認
# postfix check

postfix再起動
# systemctl restart postfix

ステータス確認
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since           JST; 32s ago
Process: 8983 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
Process: 8996 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
Process: 8994 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 8992 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 9068 (master)
CGroup: /system.slice/postfix.service
tq9068 /usr/libexec/postfix/master -w
tq9069 pickup -l -t unix -u
mq9070 qmgr -l -t unix -u

systemd[1]: Starting Postfix Mail Transport Agent...
postfix/master[9068]: daemon started -- version 2.10.1, configuration /etc/postfix
systemd[1]: Started Postfix Mail Transport Agent.

ログ確認
# tail /var/log/maillog
postfix/postfix-script[9066]: starting the Postfix mail system
postfix/master[9068]: daemon started -- version 2.10.1, configuration /etc/postfix

エラーが表示されなくなった。
他にもChronyなどもエラーが表示されるので、個別に対応が必要。
(動作はするので、エラーが気になれば)

rsyslogサーバのログファイル名をホスト名にするのと,保存先を月ごとに分けるメモ [Linux]

rsyslogサーバのログファイル名をホスト名にするのと,転送されたログの保存先を月ごとに分けるメモ。

デフォルトのsyslogサーバファシリティ(local0からlocal7)で振り分けし,rsyslog.confに設定された出力先にログが記録される。
この設定だと、どのサーバのログか分かりにくいのと振分数に限界が有るので、送信元サーバが多い場合は対応が難しい。

ホスト名でログを記録する場合は,ファシリティ設定が記述されている箇所より上に設定を入れれば,ホスト単位でログを記録することが可能。

例) hostnameというホスト名で,/var/systemlog配下に,年/ホスト名/月/ホスト名.logで保存する場合。
・ログ出力を下記のようにしたい場合
/var/systemlog/2017/hostname/12/hostname.log

・設定例として
$template hostlog,"/var/systemlog/%$year%/%fromhost%/%$month%/%fromhost%.log"
:fromhost-ip, !isequal, "127.0.0.1" -?hostlog
& stop

ホスト名については,名前解決が出来ないとホスト名にならず,IPアドレスがファイル名となるので,DNSサーバが無い場合は,/etc/hostsファイルに記述すればホスト名で記録される。

%fromhost%を%hostname%にすると,出力元のホスト名になる。

上記の設定だと,1つのサーバで複数プロセスのログを転送していた場合,全て1つのファイルに纏まってしまうので,特定のホストだけ分けたいときは,上記設定の上に

$template aaalog,"/var/log/%$year%/%fromhost%/%$month%/%fromhost%_%programname%.log"
:fromhost-ip, isequal, "192.168.100.110" -?aaalog
& stop

を入れれば,プロセス毎にファイルが分けられる(必要数入れる)。
& stop」の箇所ですが,昔は「& ~」だったよう。
& ~で設定を入れると,
rsyslogd: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
のエラーが表示される(動作はする)。

上記設定で,最後の設定の下に「& stop」を入れないと,これより下のファシリティ設定のログにも記録されるので注意。

rsyslog.confのconfigチェックは
# rsyslogd -N 1
で,エラーが出なければ良い。

ちなみに下記表示は
rsyslogd: unknown priority name ""
は,messagesの設定などで,
*.info;mail.none;authpriv.none;cron.none;
最後に;が有ると表示される。

ログのローテーションはlogrotateを利用する。
/etc/logrotate.d/
配下に設定ファイルを追加する。
/etc/logrotate.d/system-log

例)日次ローテーションで,ローテーションしたファイルは圧縮。ファイルは365日残す場合。
/var/systemlog/*/*/*/*.log
{
missingok
daily
dateext
compress
nocreate
ifempty
sharedscripts
postrotate
/usr/bin/find /var/syslog/ -mtime +365 -delete
/usr/bin/find /var/syslog/ -mtime +730 | /usr/bin/xargs rm -rf
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

通常rotate設定を使用すればファイル削除コマンドは不要だが,保存先のディレクトリが月が変わると使えないみたいなので,rmで削除する。
nocreateを入れないと既に終わった月フォルダ配下にもファイルが作成されるので、必ず入れたほうが良いと思う。

SRX300ポリシー設定(DestinationNATの場合) [Network]

インターフェースとゾーンの設定した後にポリシー設定。
DestinationNATを利用する設定メモ。DestinationNATを利用する場合,untrust側にきた通信がtrust側のどの端末と通信させるかの設定が必要。
インターネットへ公開するサーバ用の設定などに使用することが多い。

設定例)
untrust側からの要求アドレス100.100.100.100 → SRX300(NAT変換:192.168.100.100(trust側IPアドレス)) → trust側サーバー(192.168.100.100)

・untrustからtrustへの通信(DestinationNAT)
trust側へNAT通信するuntrust側からの要求アドレスのtrust側IPアドレスの割り当て
 アドレスプール名:pool-global1
 trust側IPアドレス:192.168.100.100
 アドレスプール名:pool-global11
set security nat destination pool pool-global1 address 192.168.100.100/32
・ルールセット名(untrustpc)の動作設定
 ルールセット名:untrustpc
 untrust側からtrustへの通信で,destinationNATを使用。
set security nat destination rule-set untrustpc from zone untrust
set security nat destination rule-set untrustpc to zone trust

・untrust側要求IPアドレスのルール設定
 ルールuntrustpcで,untrust側へ100.100.100.1への要求通信がきた場合,アドレスプールpool-global1を適用する。
set security nat destination rule-set untrustpc rule global1 match destination-address 100.100.100.1/32
set security nat destination rule-set untrustpc rule global1 then destination-nat pool pool-global1

・アドレス設定(Addressbook登録)
 アドレスブック名global1のIPアドレスは192.168.100.100/32
set security zones security-zone trust address-book address global1 192.168.100.100/32

・ポリシー設定(100.100.100.1への接続要求あり,25/tcp(smtp)だけ許可)
 接続元は全て
set security policies from-zone untrust to-zone trust policy po-global1 match source-address any
 ポリシー名po-local1で,destのアドレスはアドレスブックglobal1へ
set security policies from-zone untrust to-zone trust policy po-global1 match destination-address global1
 プロトコルはsmtp
set security policies from-zone untrust to-zone untrust policy po-global1 match application junos-smtp
 上記条件は許可する
set security policies from-zone trust to-zone untrust policy po-global1 then permit
※以下は必要に応じて(ログとカウント設定)
 セッションが閉じたタイミングでログを取得
set security policies from-zone untrust to-zone trust policy po-global1 then log session-close
 ポリシーカウント取得
set security policies from-zone untrust to-zone trust policy po-global1 then count

ポリシーが設定されていない通信は全て拒否されるので,別途拒否設定は不要だが,
ログとかが取れないので,有ったほうが良いかと。
 ポリシー名untrustDenyAllを設定。送信元アドレス全て
set security policies from-zone untrust to-zone trust policy untrustDenyAll match source-address any
 送信先アドレス全て
set security policies from-zone untrust to-zone trust policy untrustDenyAll match destination-address any
 プロトコル全て
set security policies from-zone untrust to-zone trust policy untrustDenyAll match application any
 上記条件は拒否する
set security policies from-zone untrust to-zone trust policy untrustDenyAll then deny
※以下はログを取得する場合
 セッション開始時にログ取得
set security policies from-zone untrust to-zone trust policy untrustDenyAll then log session-init

全拒否のポリシーは該当ゾーン(from-zone untrust to-zone trust)の一番下へ移動する。
 ポリシーpo-global1の後ろ(下)にuntrustDenyAllを移動。前(上)に移動する場合は,afterをbeforeにする。
insert security policies from-zone untrust to-zone trust policy po-global1 after untrustDenyAll

ルール名とかプール名はどちら側からの通信か分かるようにした方が整理しやすい。
DestinationNATの場合は
ルール名:Dest-xxx
プール名:DestPool-xxx
など

SRX300ポリシー設定(SourceNATの場合) [Network]

ポリシー設定はインターフェースとゾーンの設定した後に実施する。
SourceNATを利用する設定のメモだが、NATを使用しない場合はNAT設定を外せばよい。
SourceNATを利用する場合,untrust側へ通信するtrust側の端末IPアドレスをどのuntrust側IPアドレスへ割り当てるかの設定が必要。
設定例)
trust側端末192.168.100.2 → SRX300(NAT変換:100.100.100.100(untrust側IPアドレス)) → utrust側サーバー等

・trustからuntrustへの通信(SourceNAT)
untrust側へNAT通信するtrust側端末のutrust側IPアドレスの割り当て
 アドレスプール名:pool-local1
 untrust側IPアドレス:100.100.100.100(ge-0/0/0に設定しているアドレス)
 アドレスプール名:pool-local1
set security nat source pool pool-local1 address 100.100.100.100/32
※untrust側I/FのIPアドレスを利用する場合(グローバルアドレスが1つしか無いときなど)。

アドレスプール名:pool-local1,untrust側IPアドレス:100.100.100.101(他で使用していないアドレス)
set security nat source pool pool-local1 address 100.100.100.101/32
※untrust側I/FのIPアドレスを利用しない場合(グローバルアドレスが複数有る場合など)

ルールセット名(trustpc)の動作設定
 ルールセット名:trustpc
 trustからutrustへの通信で,SourceNATを使用。
set security nat source rule-set trustpc from zone trust
set security nat source rule-set trustpc to zone untrust

trust側IPアドレスのルール設定
 ルールtrustpcで,192.168.100.2から通信がきた場合,アドレスプールpool-local1を適用する。
set security nat source rule-set trustpc rule local1 match source-address 192.168.100.2/32
set security nat source rule-set trustpc rule local1 then source-nat pool pool-local1

アドレス設定(Addressbook登録)
 アドレスブック名local1のIPアドレスは192.168.100.2/32
set security zones security-zone trust address-book address local1 192.168.100.2/32
IPアドレスをホスト名で設定することは可能だが,名前解決が出来ないと設定が出来ない。
キッティングなどで,インターネット接続やDNSサーバへの接続が無いときはホスト名で設定が出来ない。

ポリシー設定(utrust側全て,80/tcp(Web)だけ許可)
 ポリシー名po-local1で,ソースのアドレスはアドレスブックlocal1から
set security policies from-zone trust to-zone untrust policy po-local1 match source-address local1
 接続先は全て
set security policies from-zone trust to-zone untrust policy po-local1 match destination-address any
 プロトコルはhttp
set security policies from-zone trust to-zone untrust policy po-local1 match application junos-http
 上記条件は許可する
set security policies from-zone trust to-zone untrust policy po-local1 then permit
※以下は必要に応じて(ログとカウント設定)
 セッションが閉じたタイミングでログを取得
set security policies from-zone trust to-zone untrust policy po-local1 then log session-close
 ポリシーカウント取得
set security policies from-zone trust to-zone untrust policy po-local1 then count

ポリシーが設定されていない通信は全て拒否されるので,別途拒否設定は不要だが,
ログとかが取れないので,有ったほうが良いかと。
 ポリシー名trusDenyAllを設定。送信元アドレス全て
set security policies from-zone trust to-zone untrust policy trusDenyAll match source-address any
 送信先アドレス全て
set security policies from-zone trust to-zone untrust policy trusDenyAll match destination-address any
 プロトコル全て
set security policies from-zone trust to-zone untrust policy trusDenyAll match application any
 上記条件は拒否する
set security policies from-zone trust to-zone untrust policy trusDenyAll then deny
※以下はログを取得する場合
 セッション開始時にログ取得
set security policies from-zone trust to-zone untrust policy trusDenyAll then log session-init

全拒否のポリシーは該当ゾーン(from-zone trust to-zone untrust)の一番下へ移動する。
 ポリシーpo-local1の後ろ(下)にtrusDenyAllを移動。前(上)に移動する場合は,afterをbeforeにする。
insert security policies from-zone trust to-zone untrust policy po-local1 after trusDenyAll

SourceNAT設定無しに許可ポリシー設定をすると,trust側IPアドレスでuntrust側サーバへ接続するようになる。
untrust側がインターネットの場合は基本的に通信が出来ない。

trust側端末192.168.100.2 → SRX300(NAT変換しない:192.168.100.2(untrust側IPアドレス)) → utrust側サーバー等

その他必要に応じて設定を追加する。

SRX300のインターフェース設定メモ [Network]

SRX300のインターフェース設定をした時のメモ。
SRX300はすぐに使用できるインターフェースが6ポート(0/0から0/5)有るが,
インターネット接続する場合は,基本的に0/0がuntrustゾーン,それ以外はtrustゾーンの
設定になるみたい。あとで変更は可能ですが。
工場出荷時のデフォルト設定では,0/0はdhcpクライアントで,0/1から0/5はdhcpサーバとして
動作しているようです。
ただ、何かしら設定をすると変更されるみたいです。

各インターフェースのゾーン設定は,
0/0がuntrustで,0/1から0/5がtrustになっているが,
0/1と0/5間のインターフェースは同じtrustゾーンでも通信が出来ない。
この間で通信するにはL2Switching機能を有効にし,設定がいるみたい。

物理インターフェースの設定(必要な場合)は
root@SRX300# set interfaces ge-0/0/0 speed 100m ← 100M固定(デフォルトはauto)
root@SRX300# set interfaces ge-0/0/0 link-mode full-duplex ← リンクモードフル固定(デフォルトはauto)
root@SRX300# set interfaces ge-0/0/0 gigether-options no-auto-negotiation ← オートネゴシエーション無効(デフォルトはauto)

インターフェースへIPアドレスを設定(IPは仮のIPアドレスです)
・untrust側
root@SRX300# set interfaces ge-0/0/0 unit 0 family inet address 100.100.100.100/24
・trust側
root@SRX300# set interfaces ge-0/0/1 unit 0 family inet address 192.168.100.1/24
・管理ネットワーク側(使用する場合)
root@SRX300# set interfaces ge-0/0/5 unit 0 family inet address 192.168.254.1/24

インターフェースの状態を確認
root@SRX300> show interfaces terse

ゾーン設定
untrustゾーン作成
root@SRX300# set security zones security-zone untrust
trustゾーン作成
root@SRX300# set security zones security-zone trust
管理セグメントゾーン作成(使用する場合)
root@SRX300# set security zones functional-zone management

各ゾーンにインターフェースを割り当てる
untrustゾーンにge-0/0/0を割り当て
root@SRX300# set security zones security-zone untrust interfaces ge-0/0/0
trustゾーンにge-0/0/1を割り当て
root@SRX300# set security zones security-zone untrust interfaces ge-0/0/1
管理セグメントゾーンにge-0/0/5を割り当て
root@SRX300# set security zones functional-zone management interfaces ge-0/0/5

ゾーンの確認
root@SRX300> show security zones

複数の物理インターフェースを1つのゾーンに割り当てし,インターフェース間で通信をする場合。
利用するインターフェースにIPアドレスが設定されている場合は削除する。
L2機能を有効にする
root@SRX300# set protocols l2-learning global-mode switching

VLANを割り当てる
root@SRX300# set vlans VLAN100 vlan-id 100
root@SRX300# set vlans VLAN100 l3-interface irb.100

irbにアドレスを設定
root@SRX300# set interfaces irb unit 100 family inet address 192.168.100.1/24

利用するインターフェースのモードをスイッチングモードへ変更
root@SRX300# set interfaces ge-0/0/1 unit 0 family ethernet-switching
root@SRX300# set interfaces ge-0/0/2 unit 0 family ethernet-switching
利用するインターフェースにVLANを適用
root@SRX300# set interfaces ge-0/0/1 unit 0 family ethernet-switching interfacemode access
root@SRX300# set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members 100
root@SRX300# set interfaces ge-0/0/2 unit 0 family ethernet-switching interfacemode access
root@SRX300# set interfaces ge-0/0/2 unit 0 family ethernet-switching vlan members 100

irbにゾーンを割り当て
root@SRX300# set security zones security-zone trust interfaces irb.100

本体を再起動する(再起動しないと有効にならない)
root@SRX300> request system reboot

あと同一ゾーン間(trust to trust)のポリシー設定も必要。
前の5件 | -
スポンサードリンク
シャンパン酵母エキス