#author("2023-08-28T17:30:50+09:00","default:kuji","kuji") CONTENTS #contents ---- Lastmodified &lastmod; ---- *ipfw [#q1e3d21e] [[ipfw でフィルタリング:https://www.kkaneko.jp/tools/freebsd/ipfw_rule.html]] [[FreeBSD 12.1で ファイアウォール ( ipfw )の設定:https://blog.t-mitarai.com/infra/freebsd/security/ipfw/]] [[ipfwでファイアーウォールを設定:https://phoenixknight.jp/set-firewall-with-ipfw/]] [[FreeBSD: ipfwを使ってみよう:https://www.zabutone.com/freebsd-ipfw/]] ● [[FreeBSDでファイアウォール(ipfw):https://server-setting.info/freebsd/freebsd_ipfw.html]] [[sshd へのブルートフォース攻撃 DoS攻撃 SMTP:https://blog.masaoka.jp/2021/05/16/sshd-%E3%81%B8%E3%81%AE%E3%83%96%E3%83%AB%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%94%BB%E6%92%83-dos%E6%94%BB%E6%92%83-smtp/]] [[FreeBSDでipfwを学ぶ。keep-stateって何ができるか、どう使うか知っていますか?:https://syotarow.hatenablog.com/entry/2020/01/06/215106]] **/etc/rc.conf で ipfw を有効にする [#y9842986] /etc/rc.conf に、以下の行を追加する。em0 の部分は、適切な device名 に変更す ること(ifconfig -a で確認できる)。 firewall_enable="YES" firewall_logdeny="YES" firewall_script="/usr/local/etc/ipfw.rules" firewall_interface="em0" firewall_type="workstation" sudo sysrc firewall_enable="YES" && sudo sysrc firewall_logdeny="YES" && sudo sysrc firewall_type="workstation" echo "net.inet.ip.fw.verbose_limit=5" >> /etc/sysctl.conf sudo sysrc firewall_script="/usr/local/etc/ipfw.rules" **Well Known Port [#va8dc07e] -20,21 ・・・ ftp, ftp-data # ftp 要求を受け付けたいか -22 ・・・ ssh -25 ・・・ sendmail -42,53 ・・・ DNS (UDP) -123 ・・・ NTP (UDP) -80, 3128, 8000, 8001, 8080 ・・・ WWW -110 ・・・ pop3 -143 ・・・ imap -280 ・・・ http-mgmt -443 ・・・ https -515 ・・・ lpd (プリンタ) -1755 ・・・ ストリーミング -5999 ・・・ cvsup ***ipfw 設定ファイルの例 [#k8150331] 【参考サイト】[[FreeBSDでファイアウォール(ipfw):https://server-setting.info/freebsd/freebsd_ipfw.html]]~ /usr/local/etc/ipfw.rules #! /bin/sh # IPF="ipfw -q add" ipfw -q -f flush #loopback $IPF 10 allow all from any to any via lo0 $IPF 20 deny all from any to 127.0.0.0/8 $IPF 30 deny all from 127.0.0.0/8 to any $IPF 40 deny tcp from any to any frag # statefull $IPF 50 check-state $IPF 60 allow tcp from any to any established $IPF 70 allow all from any to any out keep-state $IPF 80 allow icmp from any to any # open port ftp (20,21), ssh (22), mail (25) # http (80), dns (53) , ntp(123) , https(443) mail-over(587) imaps(993 or 995) etc $IPF 90 allow tcp from any to any 20 in $IPF 100 allow tcp from any to any 20 out $IPF 110 allow tcp from any to any 21 in $IPF 120 allow tcp from any to any 21 out $IPF 130 allow tcp from any to any 22 in $IPF 140 allow tcp from any to any 22 out $IPF 150 allow tcp from any to any 25 in $IPF 160 allow tcp from any to any 25 out $IPF 170 allow udp from any to any 53 in $IPF 175 allow tcp from any to any 53 in $IPF 180 allow udp from any to any 53 out $IPF 185 allow tcp from any to any 53 out $IPF 200 allow tcp from any to any 80 in $IPF 210 allow tcp from any to any 80 out $IPF 220 allow tcp from any to any 123 in $IPF 230 allow tcp from any to any 123 out $IPF 240 allow tcp from any to any 443 in $IPF 250 allow tcp from any to any 443 out $IPF 260 allow tcp from any to any 587 in $IPF 270 allow tcp from any to any 587 out $IPF 280 allow tcp from any to any 993 in $IPF 290 allow tcp from any to any 993 out $IPF 300 allow tcp from any to any 995 in $IPF 310 allow tcp from any to any 995 out # deny and log everything $IPF 500 deny log all from any to any **設定内容の確認 [#o96ee8d4] ipfw の設定情報(ルールリスト)は、ipfw show で確認できる. # ipfw show **ipfw ルールの動作確認 [#k0b75c61] まずは,実在するマシンに telnet してみる.多分 接続が拒否されると思いますが、それはそれで良いのです.つまり, telnet のパケットが外部に出ているということが分かります. [image] sysctl コマンドで、net.inet.ip.fw.verbose=1 を設定すると、 /var/log/secuty ファイルにログが記録されるようになる. (システムを再起動すると、net.inet.ip.fw.verbose の値は元に戻る)。 ipfw show sysctl net.inet.ip.fw.verbose=1 cd /var/log cat security [[ログファイルのローテーションを設定する方法:https://docs.netscaler.com/ja-jp/citrix-adc/current-release/system/troubleshooting-citrix-adc/how-to-configure-log-file-rotation.html]]~ /var/log/security は、ログローテーションに設定済み ---- Total access &counter(total);:本日 &counter(today);:昨日 &counter(yesterday); #counter([total|today|yesterday]);