透過型proxyの構築まで~その2~

次に透過型proxyへの設定を行う。

考え方として、クライアントのデフォルトゲートウェイproxyサーバに設定し、

80番ポートにアクセスしてきたらsquidの8080番ポートへポートフォワードしてやればよい、という方針。

 

まず、クライアントのデフォルトゲートウェイを設定するために、

DHCPサーバを構築する。

# yum -y install dhcp

# vi /etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0{
    range dynamic-bootp 192.168.1.10 192.168.1.50;
    option routers 192.168.1.3;
    option domain-name "xxx.yyyy.zzz.jp";
    option domain-name-servers 192.168.1.1;

 

    default-lease-time 600;
    max-lease-time 7200;
}

 

# 最低限これくらいを設定しておけば良い。

 

# 当然、proxyサーバ自身は固定IPにしておく必要がある。

# nmcli c modify eth0 ipv4.method manual

# nmcli c modify eth0 ipv4.addresses 192.168.1.3/24

# nmcli c modify eth0 ipv4.gateway 192.168.1.1

 

# systemctl start dhcp

# systemctl enable dhcp

DHCPが正しく動作していることを確認したら、Squidを透過型に変更する。

# vi /etc/squid/squid.conf

http_port 8080 transparent

 

# systemctl restart squid

 次にFirewallを設定する。ポートフォワードに関してもrich-ruleを使う方が分かりやすかった。過去、iptablesに慣れている人はそちらでどうぞ。

# firewall-cmd --permanent --add-masquerade  #IPマスカレードを有効化

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source\

 address="192.168.1.0/24" forward-port port="80" protocol="tcp" to\

-port="8080" to-addr="192.168.1.3"

# firewall-cmd --reload

# firewall-cmd --list-all

public (default, active)
    interfaces: eth0
    sources:
    services: dhcp dhcpv6-client samba squid ssh
    ports:
    masquerade: yes
    forward-ports:
    icmp-blocks:
    rich rules:
        rule family="ipv4" source address="192.168.1.0/24" forward-port

        port="80" protocol="tcp" to-port="8080" to-addr="192.168.1.3"

 クライアントを再起動する等して、DHCPによるデフォルトゲートウェイが変わっている事、Webブラウザのproxy設定を外してWebサイトへ接続できる事を確認する。

接続できたら、アクセス先がproxyサーバアクセスログに記録されている事が確認できたら成功!

アクセスログ:/var/log/squid/access.log

また、HTTP以外のネットワーク通信ができる事も確認しておく。