Linkstation ls-hgl にSquidをインストールしてプロキシサーバにしよう


はじめに

 

タイトルの通りです。外部からアクセスできるサーバにしたい場合は、モデムやルータからls-hglへのポートを解放しておく必要があります。

※以下の作業は、すべてsshでログインしたls-hgl上で、ネイティブ開発環境で行います。

Squidをインストールする

※現時点の最新版は3.2.5です。 squidのソースをダウンロードし、展開します。

LIBTOOL=/usr/local/develop/bin/libtool MAKE=/usr/local/develop/bin/make CFLAGS="-O2 -I/include -I/usr/local/develop/include " ./configure --prefix=/usr/local/develop --enable-gettext=no --without-debug --without-normal --with-shared

make
make install

Confファイルを設定する

プロキシサーバの設定ファイルです。

/usr/local/develop/etc/squid.conf を編集します。以下設定例です。



#                                                                                
# 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       
forwarded_for on                                                       
request_header_access X-FORWARDED-FOR deny all                       
request_header_access VIA deny all                                     
request_header_access CACHE-CONTROL deny all                      
icp_port 0                                                             
auth_param basic program /usr/local/develop/libexec/basic_pam_auth   ←linuxのアカウントで認証する  
acl password proxy_auth REQUIRED                                     ←linuxのアカウントで認証する    
http_access allow password                                             
                                                                       
# 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 8888                                                         ←ポート番号
                                                                       
# Uncomment and adjust the following to add a disk cache directory.    
#cache_dir ufs /usr/local/develop/var/cache/squid 100 16 256           
                                                                   
# Leave coredumps in the first cache dir                           
coredump_dir /usr/local/develop/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      				   

pam認証の設定

ls-hglのアカウントを使用して、proxyサーバにログインするためsquidからpamライブラリを使用できるように設定します。

/etc/pam.d/squid というファイルを作成します。内容は以下の通りです。


auth    required        /lib/security/pam_unix.so
account required        /lib/security/pam_unix.so

起動時に自動でproxyサーバを起動するための設定

/etc/init.d/squid.sh というファイルを作成します。 内容は以下の通りです。


#! /bin/sh
#
# Start/stop the Squid daemons.
#
#


start_squid()
{
/usr/local/develop/sbin/squid -z
/usr/local/develop/sbin/squid                                            
}

#
# Start the Squid server processes.
#

start()
{
        echo  $"Starting Squid services: "
        killall "squid" > /dev/null 2>&1
        start_squid  
}
#
# Stop the Squid server processes.
#

stop()
{
        echo 'Stop servecies: squid'
	/usr/local/develop/sbin/squid -k kill
	sleep 2
}

#
# Usage statement.
#

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	*)
		echo "usage: $0 {start|stop}"
		exit 1
		;;
esac


rcスクリプトとして登録します。

cd /etc/rc.d/sysinit.d 
ln -s ../init.d/squid.sh S31squid.sh
/TOP/