プロキシサーバを作ってみる

流れ的には rockylinux9 に2本のnicを繋げて片方はインターネットに繋がって、もう片方は内部LANに繋がる。
だけど、

として代わりに

とします。
本家 squid様 https://www.squid-cache.org/

構築

インターネット側のnicにはGWとNSを設定して 192.168.0.86/24 が割り当て、もう片方の内部の方は 10.10.0.1/24 のみ割り当てる.

[root@bridge-router ~]# cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
 
[root@bridge-router ~]# systemctl disable firewalld
[root@bridge-router ~]# systemctl stop firewalld
 
[root@bridge-router ~]# reboot
 
[root@bridge-router ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:ac:33:9b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.86/24 brd 192.168.0.255 scope global dynamic noprefixroute enp6s18
       valid_lft 43195sec preferred_lft 43195sec
    inet6 fe80::be24:11ff:feac:339b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: enp6s19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:d3:ec:86 brd ff:ff:ff:ff:ff:ff
    inet 10.10.0.1/24 brd 10.10.0.255 scope global noprefixroute enp6s19
       valid_lft forever preferred_lft forever
 
[root@bridge-router ~]# ip route
default via 192.168.0.1 dev enp6s18 proto dhcp src 192.168.0.86 metric 100
10.10.0.0/24 dev enp6s19 proto kernel scope link src 10.10.0.1 metric 101
192.168.0.0/24 dev enp6s18 proto kernel scope link src 192.168.0.86 metric 100
 
[root@bridge-router ~]# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:firewalld(1)
 
[root@bridge-router ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@bridge-router ~]#

そしてsquidを入れます

[root@bridge-router ~]# dnf install squid
[root@bridge-router ~]# systemctl enable squid --now
 
(chronyの設定)
[root@bridge-router ~]# vi /etc/chrony.conf
server c.sybyl.local iburst
allow 10.10.0.0/24
 
[root@bridge-router ~]# systemctl enable chronyd --now

squidの設定はあまり弄らずそのままを使ってます。なので、proxy先はこのマシンの3128ポートになります

クライアント

内側のマシンの話.
「10.10.0.2/24」なマシンで GW は付けない

[root@r9 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:bf:25:df brd ff:ff:ff:ff:ff:ff
    inet 10.10.0.2/24 brd 10.10.0.255 scope global noprefixroute enp6s18
       valid_lft forever preferred_lft forever
[root@r9 ~]# ip route
10.10.0.0/24 dev enp6s18 proto kernel scope link src 10.10.0.2 metric 100
[root@r9 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 10.10.0.1                     3   6   377    59  +4601ns[  +15us] +/- 3480us
[root@r9 ~]# cat /etc/yum.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
 
proxy=http://10.10.0.1:3128
[root@r9 ~]#

windows11をプロキシサーバにしてみる

本家様のhttps://wiki.squid-cache.org/KnowledgeBase/Windowsを参照すると https://squid.diladele.com/ から得られるみたい
得られたインストーラーは「squid.msi」(16.6MB)
これを起動してインストールを進めます
2025y11m03d_021300299.png 2025y11m03d_021304873.png 2025y11m03d_021309520.png 2025y11m03d_021312704.png 2025y11m03d_021322904.png 2025y11m03d_021333593.png

インストールが完了するとどうやら稼働しているようで
タスクマネージャの「サービス」に登録されている
2025y11m03d_021451913.png
設定らはインジケーターにあるアイコンで項目が選べて
2025y11m03d_022410958.png
初期設定は下記のようになってます

#
# Recommended minimum configuration:
#
 
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
 
acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
 
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
 
#
# Recommended minimum Access Permission configuration:
#
 
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
 
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
 
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
 
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
 
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
 
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
 
# And finally deny all other access to this proxy
http_access deny all
 
# Squid normally listens to port 3128
http_port 3128
 
# Uncomment the line below to enable disk caching - path format is /cygdrive/<full path to cache folder>, i.e.
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256        <--- squidのキャッシュ機能. 「/cygdrive/d」はD:ドライブを意図するみたい
 
 
# Leave coredumps in the first cache dir
coredump_dir /var/cache/squid
 
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320
 
dns_nameservers 8.8.8.8 208.67.222.222                     <--- squidサーバ自身が参照するDNS, 指定しないと squidサーバの /etc/resolv.conf が使われる.
 
max_filedescriptors 3200

変更箇所としては「dns_nameservers」位でしょうか。
値を修正したらsquidのメニューにある「Stop Squid Service」->「Start Squid Service」で反映.

windows11をプロキシサーバにしてみる - 時計サーバ

windowsには時計合わせとして w32time が入っている. これをサーバとして稼働させる.
まずは現状確認. [スタート]を右クリックして「ターミナル(管理者)」を立ち上げて、「w32tm /query /status」と実行してみる

PS C:\Users\supervisor> w32tm /query /status
 
閏インジケーター: 3 (同期未実行)
階層: 0 (未指定)
精度: -23 (ティックごとに 119.209ns)
ルート遅延: 0.0000000s
ルート分散: 0.0000000s
参照 ID: 0x00000000 (未指定)
最終正常同期時刻: 未指定
ソース: Local CMOS Clock
ポーリング間隔: 10 (1024s)
 
PS C:\Users\supervisor>

windowsPCの内部時計に依存して時計合わせを行っている模様. これを外部の時計サーバを参照して時計合わせするようにします.
使用するコマンドは「w32tm /config /manualpeerlist:"192.168.0.3" /syncfromflags:manual /update」
その後に「w32tm /resync」を実施します

PS C:\Users\supervisor> w32tm /config /manualpeerlist:"192.168.0.3" /syncfromflags:manual /update
コマンドは正しく完了しました。
 
PS C:\Users\supervisor> w32tm /resync
再同期コマンドをローカル コンピューターに送信しています
コマンドは正しく完了しました。
 
(確認)
PS C:\Users\supervisor> w32tm /query /status
閏インジケーター: 0 (警告なし)
階層: 3 (二次参照 - (S)NTP で同期)
精度: -23 (ティックごとに 119.209ns)
ルート遅延: 0.0061856s
ルート分散: 7.7825708s
参照 ID: 0xC0A80003 (ソース IP:  192.168.0.3)
最終正常同期時刻: 2025/11/03 13:19:36
ソース: 192.168.0.3
ポーリング間隔: 10 (1024s)
 
PS C:\Users\supervisor>

これで外部のntpサーバを利用できる形になりました. 次に windowsPC がntpサーバとして動くようにします.
レジストリエディタ「regedit」を起動させ、「コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer」に行き
そこにある名前「Enabled」を「0」から「1」にします
2025y11m03d_133224257.png 2025y11m03d_133439505.png
ターミナルからは「reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 1 /f」と実行すれば同じことになります.

次に「コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config」に行き
そこにある「AnnounceFlags」を「10」から「5」にします
2025y11m03d_133812552.png 2025y11m03d_134053494.png
ターミナルからは「reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 5 /f」と実行すれば同じことになります.

あとは w32time を再起動します。コマンドラインから

net stop w32time
net start w32time

これでwindowsPCがntpサーバになります.

最後にサービスを提供するので相手からの受信を許容するように windows ファイアウォール を修正します。
GUIでの操作もできますが、面倒なのでコマンドラインで下記を実行してください。これで完了となります
「netsh advfirewall firewall add rule name="NTP Server" dir=in action=allow protocol=UDP localport=123」

っで実際内部のlinuxマシンからは

[root@r9 ~]# cat /etc/chrony.conf
server 10.10.0.1 iburst
[root@r9 ~]#

で繋げたけど、10min位でconnectionが叶いました. より高性能なwindows向け ntp サーバを作るなら「Meinberg NTP for Windows」https://www.meinbergglobal.com/english/sw/ntp.htm とかがいいみたい.

最新の60件
2025-12-09 2025-12-08 2025-12-07 2025-12-05 2025-11-30 2025-11-27 2025-11-24 2025-11-23 2025-11-19 2025-11-18 2025-11-16 2025-11-05 2025-11-03
  • proxy/server
2025-11-02 2025-10-31 2025-10-30 2025-10-29 2025-10-28 2025-10-26 2025-10-25 2025-10-24 2025-10-22 2025-10-21 2025-10-17 2025-10-13 2025-10-11 2025-10-06 2025-10-05 2025-09-30 2025-09-29 2025-09-28 2025-09-25 2025-09-24 2025-09-23 2025-09-21 2025-09-20 2025-09-14 2025-09-13

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-11-03 (月) 14:54:42