PepoLinux

PepoLinux(ぴぽりなっくす)はXWindowを捨てネットワークとサーバーに徹した軽量コンパクトな約250MBの1CDLinuxです。 初期設定でdns,web,mail,snmp,mrtg,webalizer等々が立ち上がっていますので、直ぐにサーバーの実験が出来ます。

NTTdocomoのFOMA携帯でUSB接続ケーブルさえあればインターネットを経由しない高セキュリティの64kデジタル通信によるリモートハンドが実現できます。

これは通信モードが選択できるFOMA携帯電話で機種を選ばない仕様で当サイトが開発している、Linux USB Driver acm-FOMAを利用したものです。

サーバー構築やネットワークの検証などで、ちょっと話の分かるサーバーが欲しい時もFDやUSBメモリに設定をちょこと書いて立ち上げるだけで、色々なサーバーを建てれます。

ネットワークの勉強やSEの方にも大変便利CDROMやUSBメモリから起動出来るPCがあればどこでも自前のサーバーが建てれますし、WindowsXPのHDDやUSBメモリにインストールも出来ます。

CentOS5をベースに開発環境も構築しています、Vmplayerを利用したDriver開発用のVmware appliance(Remote-Hand-v0.2)やシリアルDIOとgmail経由でやり取り出来る applianceRemote-Hand_DIO も用意しています。

Linux USB Driver acm-FOMAKernel makeを合わせてインストールすれば、Kernel makeやDriverのDebugなどの実験もできます。

http://www.pepolinux.com

PepoLinux boot

boot_img.png

PepoLinux login

pepolinux_login.png

PepoLinux login small mode

メモリが256M以下の場合自動的にスモールモードを選択、必要最低限のサービスとdhclientを起動して表示するIPアドレスへsshでログインする事が出来ます。

pepolinux_login_small.png

PepoLinux 設定ファイル

MS_Windowsのテキストエディタで簡単にPepoLnuxの設定ファイルを変更してUSBメモリや、C:\Windows\pepolinux\startup.sへ保存します。

  1. #!/bin/sh
  2. #
  3. # PepoLinux Main Configuration Scripts. This startup.s scripts change by your idea.
  4. # note! (This file is a copy of startup.s.org. When correcting it, it is a thing of the edit as for startup.s.org of the original.)
  5. # Copyright pepolinux.com pepolinux@users.sourceforge.jp
  6. # Written by IZAMUKARERA 2001.4.12 last-update 2010.6.13
  7. # この startup.s スクリプトを自分の環境に合うように編集して下さい。
  8. # #を消すだけで dhcp、dns、http、mail等のサーバー機能がすぐ使える様にしています。
  9. # デフォルトでdns、http、mailサーバが立ち上がります。
  10. # 使用するIPが、かぶらないようにAPIPA(Automatic Private IP Addressing 169.254.0.0 - 169.254.255.255)が
  11. # デフォルトで設定しています。先ずはIPアドレスを実環境に設定しましょう。それだけ設定して
  12. # C:\peplinux\startup.s へ置いてCDROMやUSBメモリから起動すればPepoLinuxのネットワーク・ワールドが開けます。
  13. # バージョン情報です。
  14. export Ver=Ver0.47
  15. # 1番目の eth カードのIPアドレスの設定です、前述のCLIENTの数を足して254以上にならないようにする。
  16. # IPADDRだけは最低限設定して下さい。dhcpdを起動させる時はGATEWAYを必ず設定しコメントを外す事。
  17. export IPADD=168.254.100.100/16
  18. # デフォルトゲートウェイの設定です。
  19. export GATEWAY=168.254.100.100
  20. # 2番目の eth カードのIPアドレスを記述する。
  21. export IPADD1=169.254.200.100/16
  22. # ホスト名を変更する場合 # を削除して hostname XXXX とします、初期値のホスト名は epicon です。
  23. #hostname epicon
  24. #これはコメントアウトしないで下さい。
  25. export HOSTNAME=`hostname`
  26. # DHCP、DNSのクライアント数を指定、これから自動で設定ファイルを作成します。
  27. export CLIENT=10
  28. # DHCP、DNSで使うホスト名を設定します。初期値はホスト名の先頭4文字とクライアント数20で epic1?epic10 です。
  29. export HOST=`hostname | cut -c 1-4`
  30. # ドメインの設定です。
  31. export DOMAIN=pepolinux.local
  32. # ホストネームとドメインを合わせたFQDN(Fully Qualified Domain Name)です、触らないで下さい。
  33. export HOSTNAME_TDL=$HOSTNAME.$DOMAIN
  34. # ネームサーバの設定です。DNS_1の初期値は、自分自身のIPADDをネームサーバーに設定します。
  35. # DNS_2 はプロバイダのDNSです、"202.234.232.6" はOCN西日本のDNSへフォワードする設定です。
  36. export DNS_1=`echo $IPADD|awk 'BEGIN{FS="/"};{print $1}'`
  37. export DNS_2=$GATEWAY
  38. # 外部宛てのメールを内部サーバーへリレーするホストをFQDN "mail.pepolinux.local" などで設定します。
  39. export RELAYHOST=
  40. # 自動認識出来ないドライバのモジュールを設定します。 
  41. #modprobe e1000 #Intel(R) PRO/1000
  42. #modprobe bcm5700 #Broadcom Gigabit ethernet driver
  43. #modprobe dm9601 #Corega FEther USB-TXC
  44. # ここからはIPアドレスの詳細情報を自動作成するので触らない下さい。
  45. export IF_PORT=10baseT
  46. export NETMASK=`ipcalc -m $IPADD|awk 'BEGIN{FS="="};{print $2}'`
  47. export BROADCAST=`ipcalc -b $IPADD|awk 'BEGIN{FS="="};{print $2}'`
  48. export NETWORK=`ipcalc -n $IPADD|awk 'BEGIN{FS="="};{print $2}'`
  49. export MASK=`echo $IPADD|awk 'BEGIN{FS="/"};{print $2}'`
  50. export IPADDR=`echo $IPADD|awk 'BEGIN{FS="/"};{print $1}'`
  51. export NETMASK1=`ipcalc -m $IPADD1|awk 'BEGIN{FS="="};{print $2}'`
  52. export BROADCAST1=`ipcalc -b $IPADD1|awk 'BEGIN{FS="="};{print $2}'`
  53. export NETWORK1=`ipcalc -n $IPADD1|awk 'BEGIN{FS="="};{print $2}'`
  54. export IPADDR1=`echo $IPADD1|awk 'BEGIN{FS="/"};{print $1}'`
  55. # ここまではIPアドレスの詳細情報を自動作成するので触らない下さい。
  56. # MRTG(Multi Router Traffic Grapher)で監視するSNMPエージェントのIPアドレスを設定します。(初期設定ではepiconです。)
  57. MRTG_IP=$IPADDR
  58. # Registration No 設定をします。
  59. # pepolinuxの#を消すと定期的な登録を促すメッセージが解除されます。
  60. cd /etc
  61. cat>SERIAL<<Z
  62. pepolinux
  63. Z
  64. # #を外すとWELCOMEメッセージがシンプルになります。
  65. #rm /etc/WELCOME
  66. # PPPのIPアドレスの設定
  67. export PPPSERVER=169.254.198.1
  68. export PPPCLIENT=169.254.198.2
  69. # VTun(Virtual Tunnel over TCP/IP network)用のアドレスを設定します。
  70. export TUNSERVER=169.254.197.1
  71. export TUNCLIENT=169.254.197.2
  72. # VTunの相手LANのネットワーク設定をします。
  73. export TUNHOST=169.254.200.100
  74. export TUNNETWORK=169.254.200.0
  75. export TUNMASK=255.255.255.0
  76. domainname $DOMAIN
  77. # PCMCIA 設定をします。
  78. cat>/etc/pcmcia.conf<<Z
  79. PCMCIA=yes
  80. # Should be either i82365 or tcic
  81. PCIC=i82365
  82. # Put socket driver timing parameters here
  83. #PCIC_OPTS=poll_interval=100 pci_csc=1 irq_list=3,9,10
  84. # Put pcmcia_core options here
  85. CORE_OPTS=
  86. # Put cardmgr options here
  87. CARDMGR_OPTS=
  88. # To set the PCMCIA scheme at startup...
  89. SCHEME=
  90. Z
  91. #service hotplug start
  92. # PCMCIAの無いPCはコメントアウトして下さい。
  93. if grep -vq pcmcia /proc/devices ;then `service pcmcia start >/dev/null 2>&1`;fi
  94. sleep 3
  95. # ネットワークの初期化をします。
  96. # 1番目スロットのethカードの設定をします。
  97. ifconfig lo 127.0.0.1 up
  98. ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK up
  99. route add -net $NETWORK netmask $NETMASK eth0
  100. route add -net default gw $GATEWAY netmask 0.0.0.0 metric 1
  101. # デフォルトゲートウェイが2つある場合(下記の設定は1番目が2番目に比べ10倍早い時
  102. #ip route add default nexthop via $GATEWAY weight 100 nexthop via $GATEWAY1 weight 10
  103. # 必要であれば、ethカードのMACアドレスを変更します。
  104. #ip link set eth0 down ; ip link set eth0 address 00:01:02:03:04:05 ; ip link set eth0 up
  105. # ダイヤルUPクライアントで起動する場合下記行の設定は#でコメントアウトして下さい。
  106. #route add -net default gw $GATEWAY netmask 0.0.0.0 metric 1
  107. route add -net 127.0.0.0 netmask 255.0.0.0 lo
  108. #route add default dev ppp0
  109. # 2番目スロットのethカードの設定をします。
  110. if grep -q eth1 /proc/net/dev; then
  111. ifconfig eth1 $IPADDR1 broadcast $BROADCAST1 netmask $NETMASK1 up
  112. fi
  113. #route add -net $NETWORK1 netmask $NETMASK1 eth1
  114. # route コマンドにてネットワークアドレスを参照する時に使用する。
  115. cat>networks<<Z
  116. loopback 127.0.0.0
  117. $DOMAIN $NETWORK
  118. Z
  119. # ホストファイルの設定です、知っている ip アドレスとホスト名を列記します。
  120. cat>hosts<<Z
  121. 127.0.0.1 localhost
  122. #$IPADDR $HOSTNAME
  123. #$DNS_1 dns
  124. Z
  125. # ppp サーバーの為の設定です、IPアドレス部分は使用するネットワークアドレスを書いて下さい。
  126. # 左辺($PPPSERVER)がサーバー側、右辺($PPPCLIENT)がクライアント側のIPとなります。
  127. cat>ppp/ppplogin<<Z
  128. #!/bin/sh
  129. mesg n
  130. stty -echo
  131. exec /usr/sbin/pppd passive -detach $PPPSERVER:$PPPCLIENT
  132. Z
  133. chmod 755 /etc/ppp/ppplogin
  134. chmod +s /etc/ppp/ppplogin
  135. # 64K接続用のpppdサーバーのオプションを設定します
  136. cat>ppp/options.ttyACM0<<Z
  137. lock
  138. modem
  139. kdebug 1
  140. crtscts
  141. $PPPSERVER:$PPPCLIENT
  142. defaultroute
  143. ms-dns $DNS_1
  144. ms-wins $DNS_1
  145. idle 120
  146. Z
  147. # パケット接続用のpppdサーバーのオプションを設定します
  148. cat>ppp/options<<Z
  149. debug 7
  150. kdebug 6
  151. updetach
  152. 115200
  153. usepeerdns
  154. defaultroute
  155. lock
  156. Z
  157. # 携帯電話を使った、ダイヤルイン・サーバーのスクリプトを設定します。
  158. # 起動方法は→ /etc/ppp/ppp-in
  159. cat>ppp/ppp-in<<Z
  160. #!/bin/sh
  161. /usr/local/bin/epicon -l /dev/ttyACM0 -s 115200 -c /usr/local/bin/pepop2pchat
  162. Z
  163. chmod +x ppp/ppp-in
  164. # ppp クライアント側の設定です、TELEPHONE=ダイヤルUP先の電話番号を書いて下さい。
  165. # 相手サーバー側がpepolinuxを想定していますがクライアントはwin95,98の方が便利の
  166. # 為あまり使う事は無いでしょう、又/etc/inittabのc50、c51の#でコメントアウトが必要
  167. # です、 ppp-on でダイヤルUPを開始し ppp-off でダイヤルアウトします。
  168. cat>ppp/ppp-on<<Z
  169. #!/bin/sh
  170. export TELEPHONE=09012345678
  171. export PPPACCOUNT=ppp
  172. export PPPPASSWORD=fradfrad
  173. LOCAL_IP=0.0.0.0
  174. REMOTE_IP=0.0.0.0
  175. PPPNETMASK=255.255.255.0
  176. DIALER_SCRIPT=/etc/ppp/pppscript
  177. exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyUSB0 19200 \\
  178. idle 120 \\
  179. asyncmap 20A0000 escape FF kdebug 0 \$LOCAL_IP:\$REMOTE_IP \\
  180. noipdefault netmask \$PPPNETMASK defaultroute connect \$DIALER_SCRIPT
  181. Z
  182. chmod 777 /etc/ppp/ppp-on
  183. chmod +s /etc/ppp/ppp-on
  184. # pppのダイレクト接続の設定、COMポートに事前にクロスケーブルで相手
  185. # シリアルポートを接続しておきます。
  186. # サーバー側の設定です。
  187. #pppd -detach crtscts lock $PPPSERVER:$PPPCLIENT /dev/ttyS0 115200 &
  188. # クラインと側の設定です。
  189. #pppd -detach crtscts lock noipdefault /dev/ttyS0 115200 &
  190. # slipのダイレクト接続の設定、COMポートに事前にクロスケーブルで相手
  191. # シリアルポートを接続しておきます。
  192. #slattach -p cslip -s 19200 /dev/ttyS0 &
  193. # サーバー側の設定です。
  194. #ifconfig sl0 $PPPSERVER pointopoint $PPPCLIENT up
  195. # クラインと側の設定です。
  196. #ifconfig sl0 $PPPCLIENT pointopoint $PPPSERVER up
  197. # pppoe-serverの設定をします。(設定は、pppoeクライアントも同じです。)
  198. cat>/etc/ppp/pap-secrets<<Z
  199. # Secrets for authentication using PAP for FOMA packet
  200. * pepolinux "" *
  201. Z
  202. cat>/etc/ppp/chap-secrets<<Z
  203. # Secrets for authentication using CHAP for FOMA 64k
  204. "ppp" * "fradfrad" *
  205. Z
  206. # pppoe-serverの起動をします。(pppoeクライアントは、adsl-startで起動します。)
  207. #pppoe-server -L $PPPSERVER -R $PPPCLIENT
  208. # pptp-serverの設定をします。
  209. cat>/etc/pptpd.conf<<Z
  210. option /etc/ppp/options.pptpd
  211. localip $PPPSERVER
  212. remoteip `echo $PPPCLIENT.$CLIENT|awk 'BEGIN{FS="."};\
  213. {print $1"."$2"."$3"."$4"-"$4+$5}'`
  214. Z
  215. # pptp-serverのoptions設定をします。
  216. cat>/etc/ppp/options.pptpd<<Z
  217. lock
  218. # debug
  219. name $HOSTNAME
  220. domain $DOMAIN
  221. nodefaultroute
  222. proxyarp
  223. auth
  224. refuse-pap
  225. refuse-chap
  226. refuse-mschap
  227. require-mschap-v2
  228. require-mppe-128
  229. ms-dns $DNS_1
  230. ms-wins $DNS_1
  231. Z
  232. # pptp-serverを起動します。
  233. #/usr/sbin/pptpd
  234. # ipsecの設定をします。(OpenSwanV2.Xを使いKernel2.6.Xのみ対応)
  235. # 起動と停止は→ service ipsec start ; service ipsec stop
  236. cat>/etc/ipsec.conf<<Z
  237. #/etc/ipsec.conf - Openswan IPsec configuration file
  238. #RCSID $Id: ipsec.conf.in,v 1.13 2004/03/24 04:14:39 ken Exp $
  239. #This file: /usr/local/share/doc/openswan/ipsec.conf-sample
  240. #
  241. #Manual: ipsec.conf.5
  242. version 2.0 # conforms to second version of ipsec.conf specification
  243. #basic configuration
  244. config setup
  245. # Debug-logging controls: "none" for (almost) none, "all" for lots.
  246. # klipsdebug=none
  247. # plutodebug="control parsing"
  248. #Add connections here
  249. conn net-to-net
  250. authby=secret # Key exchange method
  251. left=$PPPSERVER # Public Internet IP address of the
  252. # LEFT VPN device is myself(自サイト)
  253. #leftsubnet=192.168.0.0/24 # Subnet protected by the LEFT VPN device
  254. #leftnexthop=%defaultroute # correct in many situations
  255. #
  256. right=$PPPCLIENT # Public Internet IP address of the
  257. # RIGHT VPN device is Other party(相手サイト)
  258. #rightsubnet=10.0.0.0/24 # Subnet protected by the RIGHT VPN device
  259. #rightnexthop=192.168.0.200 # correct in many situations
  260. auto=start # authorizes and starts this connection on booting
  261. #Disable Opportunistic Encryption
  262. include /etc/ipsec.d/examples/no_oe.conf
  263. Z
  264. # ipsecの事前共有鍵を設定します。
  265. cat>/etc/ipsec.secrets<<Z
  266. #vpn-ip-address vpn2-ip-address : PSK "key in quotations"
  267. $PPPSERVER $PPPCLIENT : PSK "pepopa@pepolinux.com"
  268. Z
  269. # iptablesを使ったFirewallを設定します。
  270. cat>/etc/sysconfig/iptables<<Z
  271. # Firewall configuration written by system-config-securitylevel
  272. # Manual customization of this file is not recommended.
  273. *filter
  274. :INPUT DROP [0:0]
  275. :FORWARD DROP [0:0]
  276. :OUTPUT DROP [0:0]
  277. :Pepo-Firewall - [0:0]
  278. -A INPUT -j Pepo-Firewall
  279. -A FORWARD -j Pepo-Firewall
  280. -A OUTPUT -j Pepo-Firewall
  281. -A Pepo-Firewall -p icmp --icmp-type any -j ACCEPT
  282. -A Pepo-Firewall -p 50 -j ACCEPT
  283. -A Pepo-Firewall -p 51 -j ACCEPT
  284. -A Pepo-Firewall -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
  285. -A Pepo-Firewall -p udp -m udp --dport 631 -j ACCEPT
  286. -A Pepo-Firewall -m state --state ESTABLISHED,RELATED -j ACCEPT
  287. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
  288. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --sport 20 -j ACCEPT
  289. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
  290. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --sport 21 -j ACCEPT
  291. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  292. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
  293. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
  294. -A Pepo-Firewall -p udp --dport 53 -j ACCEPT
  295. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
  296. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
  297. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  298. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
  299. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
  300. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
  301. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 8022 -j ACCEPT
  302. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
  303. -A Pepo-Firewall -p udp --dport 67 -j ACCEPT
  304. -A Pepo-Firewall -p udp --dport 123 -j ACCEPT
  305. -A Pepo-Firewall -p udp --dport 161 -j ACCEPT
  306. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 137 -j ACCEPT
  307. -A Pepo-Firewall -p udp --dport 138 -j ACCEPT
  308. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
  309. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
  310. -A Pepo-Firewall -p udp --dport 389 -j ACCEPT
  311. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
  312. -A Pepo-Firewall -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
  313. -A Pepo-Firewall -p gre -j ACCEPT
  314. -A Pepo-Firewall -i ppp+ -m state --state NEW -m tcp -p tcp -j ACCEPT
  315. -A Pepo-Firewall -i lo -m state --state NEW -m tcp -p tcp -j ACCEPT
  316. -A Pepo-Firewall -j REJECT --reject-with icmp-host-prohibited
  317. COMMIT
  318. Z
  319. # Firewallを有効にします。
  320. service iptables start
  321. # 以下はiptablesを使ったip マスカレードの設定です。
  322. # PepoLinuxがPPPでダイヤルUPしクライアントがPepoLinuxへデフォルトゲートを
  323. # 向ければマスカレードルータの出来上がり。
  324. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
  325. # 以下はネットワークカードを2枚挿しでrouterとして動作させた場合のマスカレード
  326. #iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
  327. #iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $IPADDR1
  328. # もし$NETWORK1から$NETWORKを経由インターネットへ接続する必要がある時は以下の
  329. # 設定で接続出来ます。(勿論DNS、デフォルトゲート等は手動で設定する必要がありますが)
  330. #iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
  331. # 色々なiptablesの設定をテストした後の設定をセーブする時は以下コマンド実行
  332. #iptables-save >settei
  333. # 設定をsetteiに戻す時は以下コマンド実行
  334. #iptables-restore <settei
  335. # 以下はPPPサーバーとして動作させた場合のマスカレードの設定。クライアントからダイヤル
  336. # UPすればイントラネット内のアクセスが出来る。
  337. #iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $IPADDR
  338. # ブリッジの起動を行います。イーサネットカードを2枚挿入され認識している時の設定です。
  339. #pepobrct eth1 start
  340. # ブリッジの起動が終わっている場合、brouterの設定を行います。
  341. # ebtables(Ethernet bridge tables)はMACレイヤで高度なフィルタリングが機能
  342. # するものです、ここではブルータ機能のみ設定をしています。
  343. cat>/etc/brouter.sh<<Z
  344. #!/bin/sh
  345. #This script making brouter,a precondtion is enabled pepobrctl.
  346. MAC_OF_ETH0=`ifconfig eth0 2>/dev/null|awk '/HWaddr/ {print $5}'`
  347. MAC_OF_ETH1=`ifconfig eth1 2>/dev/null|awk '/HWaddr/ {print $5}'`
  348. ifconfig br0 0.0.0.0
  349. ifconfig eth0 $IPADDR netmask $NETMASK
  350. ifconfig eth1 $IPADDR1 netmask $NETMASK1
  351. ebtables -t broute -A BROUTING -p ipv4 -i eth0 --ip-dst $IPADDR -j DROP
  352. ebtables -t broute -A BROUTING -p ipv4 -i eth1 --ip-dst $IPADDR1 -j DROP
  353. ebtables -t broute -A BROUTING -p arp -i eth0 -d \$MAC_OF_ETH0 -j DROP
  354. ebtables -t broute -A BROUTING -p arp -i eth1 -d \$MAC_OF_ETH1 -j DROP
  355. Z
  356. chmod 755 /etc/brouter.sh
  357. # brouterの起動をします。(ブリッジの起動をさせた後に起動させて下さい)
  358. #/etc/brouter.sh;echo brouter start!
  359. # VTun(Virtual Tunnel over TCP/IP network⇒トンネルデバイス)を設定します。
  360. # VTunはC/S間で仮想IPネットワークを構築しデータの暗号化と圧縮をするものです。
  361. # 相手Vtunホストのルーティングの設定、ネットワーク単位やデフォルトゲートの設定はしない事。
  362. #route del default gw $GATEWAY ; route add -host $TUNHOST gw $GATEWAY
  363. # サーバー側のIPアドレスの設定
  364. sed -e "s/TUNSERVER/$TUNSERVER/" -e "s/TUNCLIENT/$TUNCLIENT/" /etc/vtund.conf.server >/etc/vtund.conf.new
  365. # クライアント側のIPアドレスの設定
  366. #sed -e "s/TUNSERVER/$TUNSERVER/" -e "s/TUNCLIENT/$TUNCLIENT/" /etc/vtund.conf.client >/etc/vtund.conf.new
  367. # 相手VtunのLANネットワークを設定します。(ここは触らない)
  368. sed "s/IPADDR/$IPADDR/" /etc/vtund.conf.new >/etc/vtund.conf.tmp
  369. sed -e "s/TUNNETWORK/$TUNNETWORK/" -e "s/TUNMASK/$TUNMASK/" /etc/vtund.conf.tmp >/etc/vtund.conf.new
  370. # サーバー側の起動です。(IPトンネル、ブリッジもサーバー側の起動は変わらない)
  371. #modprobe tun ; vtund -f /etc/vtund.conf.new -s
  372. # IPのトンネリングを行う。
  373. # サーバー側のIPアドレスが$TUNHOSTに設定されているものとする。
  374. # クライアント側の起動です。
  375. #modprobe tun ; vtund cobra -f /etc/vtund.conf.new $TUNHOST
  376. # イーサーネットトンネリング(リモートブリッジ)の設定。
  377. # クライアント側の起動です。
  378. #modprobe tun ; vtund lion -f /etc/vtund.conf.new $TUNHOST
  379. # VLANの設定です。設定例ではeth0に3番のVLANを設定しIPアドレスをTUNSERVER又
  380. # はTUNCLIENTのアドレスを設定します。
  381. # サーバー側の起動です。(VLANにクライアント&サーバーの概念はありません)
  382. #vconfig add eth0 3 ; ifconfig eth0.3 $TUNSERVER network $TUNNETWORK
  383. # クライン側の起動です。(VLANにクライアント&サーバーの概念はありません)
  384. #vconfig add eth0 3 ; ifconfig eth0.3 $TUNCLIENT network $TUNNETWORK
  385. # サブインターフェースの設定、1つのethに1つ以上のIPアドレスを設定しましす。
  386. #ifconfig eth0:0 192.168.1.1
  387. #ifconfig eth0:1 192.168.2.1
  388. # etc/inittab の設定です、ここへ登録すると殺(kill)されても不死鳥の如く蘇ります
  389. # 以下の設定は run レベル 5 で常に dos で言うcom1、com2のダイヤルイン監視してい
  390. # ます、もしダイヤルアウトする必要がある場合 # でコメントアウトして下さい。
  391. # 一度ダイヤルイン監視で立ち上げた場合#でコメントアウト後モデムをダイヤルアウト
  392. # 用に設定変更をして下さい。(epicon でモデムへ at&f コマンドを書く)
  393. # もし respawming to fast :disable for 5 minutes が煩ければ#でコメントアウトして下
  394. # さい又モデムが無ければやはり同様のメッセージが出力されます。
  395. # pcmciaのモデムカードがttyS2で認識される時はc51の#を外してc50を#でコメントアウト
  396. # 後に再起動して下さい。
  397. # Winmodemでダイヤルインさせる場合はc53を#でコメントアウトします。(2003.8.10動作せず)
  398. # USBモデム(SUNTAC・U-Cable・TypeD2-V)を認識している場合c55を#でコメントアウトします。
  399. # com1にクロスケーブルでコンソールを接続する場合はc54を#でコメントアウトします。
  400. # Docomo FOMA携帯電話を接続してダイヤルインする場合はc58を有効にします。
  401. cat>>inittab<<Z
  402. #c50:5:respawn:/sbin/agetty -I 'at&fe0q1&d2&c1s0=1\015' 38400 ttyS1
  403. #c51:5:respawn:/sbin/agetty -I 'at&fe0q1&d2&c1s0=1\015' 38400 ttyS2
  404. #c52:5:respawn:/sbin/agetty -I 'at&fe0q1&d2&c1s0=1\015' 38400 /dev/ttyACM0
  405. #c53:5:respawn:/sbin/agetty -I 'at&fe0q1&d2&c1s0=1\015' 38400 /dev/ttyS15
  406. #c54:5:respawn:/sbin/agetty 38400 ttyS0
  407. #c55:5:respawn:/sbin/agetty -I 'at&fe0q1&d2&c1s0=1\015' 38400 /dev/ttyUSB0
  408. #c56:5:respawn:/usr/local/bin/peporemote
  409. #c57:5:respawn:/usr/local/bin/epicon -l /dev/ttyACM0 -c /usr/local/bin/pepop2pchat
  410. #c58:5:respawn:/usr/bin/svscanboot
  411. Z
  412. # レゾルバを設定します dhcp クライアント時の設定はサーバーよりドメインとネーム
  413. # サーバー情報を取得します、この為#でコメントアウトする必要があります。
  414. # DNSサーバーで起動する時は二つとも#を削除します。
  415. cat>resolv.conf<<Z
  416. domain $DOMAIN # DNSサーバーで起動する時は#を削除します。
  417. nameserver $DNS_1 # DNSサーバーで起動する時は#を削除します。
  418. Z
  419. # 以下 DNS サーバーの設定をします、まずはこれで動かして色々設定を試し下さい。
  420. cat>/var/named/chroot/etc/named.conf<<Z
  421. options {
  422. directory "/var/named";
  423. forward only;
  424. forwarders {
  425. $DNS_2;
  426. };
  427. listen-on port 53 { any; };
  428. };
  429. controls {
  430. inet 127.0.0.1 port 953 allow { localhost; } keys { rndckey; };
  431. };
  432. zone "$DOMAIN" IN {
  433. type master;
  434. file "named.hosts";
  435. allow-update {
  436. $IPADD;
  437. };
  438. };
  439. zone "`echo $IPADDR|awk 'BEGIN{FS="."};{print $3"."$2"."$1".in-addr.arpa"}'`" IN {
  440. type master;
  441. file "named.rev";
  442. allow-update {
  443. $IPADD;
  444. };
  445. };
  446. zone "localdomain" IN {
  447. type master;
  448. file "localdomain.zone";
  449. allow-update { none; };
  450. };
  451. zone "localhost" IN {
  452. type master;
  453. file "localhost.zone";
  454. allow-update { none; };
  455. };
  456. zone "0.0.127.in-addr.arpa" IN {
  457. type master;
  458. file "127.0.0.rev";
  459. allow-update { none; };
  460. };
  461. #zone "." IN {
  462. # type hint;
  463. # file "named.ca";
  464. #};
  465. include "/etc/rndc.key";
  466. Z
  467. cat>/var/named/chroot/var/named/named.hosts<<Z
  468. \$TTL 600
  469. @ IN SOA $DOMAIN. $HOSTNAME.$DOMAIN. (
  470. 20070101 ;Serial
  471. 10800 ;Refresh after 3 hours
  472. 3600 ;Retry after 1 hours
  473. 604800 ;Expire after 1 week
  474. 86400) ;Minimum TTL of 1 day
  475. IN NS $HOSTNAME.$DOMAIN.
  476. IN MX 10 mail.$DOMAIN.
  477. ftp IN A $IPADDR
  478. dns IN A $IPADDR
  479. www IN A $IPADDR
  480. mail IN A $IPADDR
  481. _ldap._tcp.$DOMAIN. SRV 0 100 389 $HOSTNAME.$DOMAIN.
  482. _kerberos._tcp.$DOMAIN. SRV 0 100 88 $HOSTNAME.$DOMAIN.
  483. _ldap._tcp.dc._msdcs.$DOMAIN. SRV 0 100 389 $HOSTNAME.$DOMAIN.
  484. _kerberos._tcp.dc._msdcs.$DOMAIN. SRV 0 100 88 $HOSTNAME.$DOMAIN.
  485. `echo $IPADDR.$HOSTNAME|\
  486. awk 'BEGIN{FS="."};\
  487. {printf ("%s\tIN\tA\t%d.%d.%d.%d\n",$5,$1,$2,$3,$4)}'`
  488. `echo $IPADDR.$CLIENT.$HOST|\
  489. awk 'BEGIN{FS="."};\
  490. {for (i=1; i<=$5 ;i++) \
  491. printf ("%s\tIN\tA\t%d.%d.%d.%d\n",$6i,$1,$2,$3,$4+i)}'`
  492. gw IN A $GATEWAY
  493. HINFO "PepoLinux" "IZAMUKARERA"
  494. TXT "Router"
  495. Z
  496. cat>/var/named/chroot/var/named/named.rev<<Z
  497. \$TTL 86400
  498. @ IN SOA $DOMAIN. $HOSTNAME.$DOMAIN. (
  499. 20070101 ;Serial
  500. 10800 ;Refresh after 3 hours
  501. 3600 ;Retry after 1 hours
  502. 604800 ;Expire after 1 week
  503. 86400) ;Minimum TTL of 1 day
  504. IN NS $HOSTNAME.$DOMAIN.
  505. `echo $IPADDR,$HOSTNAME,$DOMAIN|\
  506. awk 'BEGIN{FS=","};\
  507. {split($1,IP,".");\
  508. IP4=IP[4];\
  509. printf ("%d\tIN\tPTR\t%s.%s.\n",IP4,$2,$3)}'`
  510. `echo $IPADDR,$DOMAIN|\
  511. awk 'BEGIN{FS=","};\
  512. {split($1,IP,".");\
  513. IP4=IP[4];\
  514. printf ("%d\tIN\tPTR\tmail.%s.\n",IP4,$2)}'`
  515. `echo $IPADDR,$CLIENT,$HOST,$DOMAIN|\
  516. awk 'BEGIN{FS=","};\
  517. {split($1,IP,".");\
  518. IP4=IP[4];
  519. for (i=1; i<=$2 ;i++) \
  520. printf ("%d\tIN\tPTR\t%s.%s.\n",IP4+i,$3i,$4)}'`
  521. Z
  522. cat>/var/named/chroot/var/named/localdomain.zone<<Z
  523. \$TTL 86400
  524. @ IN SOA localhost. root.localhost. (
  525. 20070101 ;Serial
  526. 10800 ;Refresh after 3 hours
  527. 3600 ;Retry after 1 hours
  528. 604800 ;Expire after 1 week
  529. 86400) ;Minimum TTL of 1 day
  530. IN NS localhost.
  531. localhost IN A 127.0.0.1
  532. Z
  533. cat>/var/named/chroot/var/named/localhost.zone<<Z
  534. \$TTL 86400
  535. @ IN SOA localhost. root.localhost. (
  536. 20070101 ;Serial
  537. 10800 ;Refresh after 3 hours
  538. 3600 ;Retry after 1 hours
  539. 604800 ;Expire after 1 week
  540. 86400) ;Minimum TTL of 1 day
  541. IN NS localhost.
  542. IN A 127.0.0.1
  543. Z
  544. cat>/var/named/chroot/var/named/127.0.0.rev<<Z
  545. \$TTL 86400
  546. @ IN SOA localhost. root.localhost. (
  547. 20070101 ; Serial
  548. 28800 ; Refresh
  549. 14400 ; Retry
  550. 3600000 ; Expire
  551. 86400 ) ; Minimum
  552. IN NS localhost.
  553. 1 IN PTR localhost.
  554. Z
  555. touch /var/named/chroot/var/named/named.root;chmod 644 /var/named/chroot/var/named/named.root
  556. chown named.named /var/named/chroot/var/named/*
  557. # named コントロール用のkeyを生成します。
  558. #rndc-confgen -a
  559. # dhcp サーバーの設定を設定します。
  560. # dhcp
  561. #/bin/sh
  562. cat>/etc/dhcpd.conf<<Z
  563. ddns-update-style none;
  564. server-identifier $HOSTNAME.$DOMAIN;
  565. option domain-name "$DOMAIN";
  566. option domain-name-servers $DNS_1,$DNS_2;
  567. shared-network $HOSTNAME{
  568. option subnet-mask $NETMASK;
  569. default-lease-time 3600;
  570. max-lease-time 7200;
  571. subnet $NETWORK netmask $NETMASK {
  572. range `echo $IPADDR.$CLIENT|awk 'BEGIN{FS="."};
  573. {print $1"."$2"."$3"."$4+1" "$1"."$2"."$3"."$4+$5";"}'`
  574. option routers $GATEWAY;
  575. }
  576. }
  577. Z
  578. #システムの安定を待ちます。
  579. sync
  580. sleep 5
  581. # デバイス検出の為にメッセージ・バスデーモンを起動します。
  582. service messagebus start
  583. # dns サーバーを起動させます。
  584. service named start #echo Starting named
  585. # dhcp サーバーを起動させます。
  586. #service dhcpd start
  587. # dhcp クライアントを起動させます、他の pc にdhcpサーバーが必要です。
  588. #dhclient eth0;echo Starting dhcpcd
  589. # routed ルーティングデーモンを起動させます。(RIP-1によるルーティングを行う)
  590. #routed ;echo Starting routed
  591. # MOUSEのコピー&ペーストユーティリテを起動させます。
  592. service gpm start
  593. # USB MOUSEのコピー&ペーストユーティリテを起動させます。
  594. #gpm -m /dev/input/mice -t ps2;echo starting usb_mouse_gpm
  595. # snmp デーモンの起動させます。
  596. sed -e "s/_HOSTNAME/$HOSTNAME_TDL/" -e "s/_DOMAIN/$DOMAIN/" /etc/snmp/snmpd.conf.org >/etc/snmp/snmpd.conf
  597. service snmpd start # echo Starting snmpd
  598. # 「ntp3.jst.mfeed.ad.jp」と時刻を同期させます。
  599. /usr/sbin/ntpdate ntp3.jst.mfeed.ad.jp
  600. # ntp サーバーの起動させます。
  601. #service ntpd start
  602. # portmap サーバーを起動します。(RPCサービスやnfsを使う時に必要です)
  603. #service portmap start
  604. # nfs サーバーを起動します。(公開するディレクトリは予めメモリディスク以外をマウントしてから /etc/exportfs を編集します)
  605. #service nfs start
  606. # ssh サーバーの起動させます。
  607. service sshd start
  608. # proxy サーバーの起動させます。
  609. sed -e "s/IPADDR/$NETWORK\/$MASK/" /etc/squid/squid.conf.org >/etc/squid/squid.conf
  610. #mkdir -p /var/log/squid ; chown squid.squid /var/log/squid ; service squid start
  611. # mail デーモンを起動させます。
  612. sed -e "s/_HOSTNAME/$HOSTNAME_TDL/" -e "s/_DOMAIN/$DOMAIN/" -e "s/_RELAYHOST/$RELAYHOST/" /etc/postfix/main.cf.org >/etc/postfix/main.cf
  613. sed "s/localhost.localdomain/$DOMAIN/" /etc/mail/sendmail.mc >/etc/mail/sendmail.mc.bak;cp /etc/mail/sendmail.mc.bak /etc/mail/sendmail.mc
  614. if [ -n $RELAYHOST ];then
  615. echo "define(\`SMART_HOST', \`$RELAYHOST')dnl" >>/etc/mail/sendmail.mc
  616. fi
  617. #service sendmail start
  618. service postfix start
  619. # pop,imap (dovecot)デーモンを起動します。
  620. #service dovecot start
  621. # www サーバーの設定です。ホームページデータの転送と、 www (Apache)サーバーを
  622. # 動作させます、 ssi、cgi 、perlスクリプトもOK。
  623. # /tftpboot/home/~xxxx/public_html/ に各ユーザーがホームページを作成出来ます。
  624. sed -e "s/IPADDR/$NETWORK\/$MASK/" -e "s/_HOSTNAME/$HOSTNAME_TDL/" /etc/httpd/conf/httpd.conf.org >/etc/httpd/conf/httpd.conf
  625. sed -e "s/_HOSTNAME/$HOSTNAME_TDL/" -e "s/_DOMAIN/$DOMAIN/" -e "s/Ver0.47/Ver$Ver/" /var/www/html/index.html.org >/var/www/html/index.html
  626. PE=/dos/peplinux
  627. T=/var/www
  628. if [ -d "$PE" ]; then
  629. cd $PE
  630. cp -ap *.html *.htm *.shtml *.dat *.php $T/html >/dev/null 2>&1
  631. cp -ap *.png *.gif *.jpg $T/html/img >/dev/null 2>&1
  632. if [ -f counter.pl ];then
  633. lfcut.s counter.pl $T/cgi-bin/counter.pl
  634. fi
  635. cd /
  636. fi
  637. chmod 777 $T $T/* $T/cgi-bin/* $T/html/* $T/html/img/* >/dev/null 2>&1
  638. # www サーバーの起動です
  639. service httpd start
  640. # mrtgとanalogの設定です。ルーターとWWWサーバーの統計データーを定期的に集計しWEBで公開します。
  641. MEM_T=`free |awk -F" " '/Mem/{print $2}'`
  642. COMMUNITY=public
  643. #MRTG_IP=$IPADDR
  644. /usr/bin/cfgmaker --global 'WorkDir: /var/www/mrtg' --global 'Language: eucjp' \
  645. --global 'options[_]: growright,bits' --output=/etc/mrtg/mrtg.cfg.old $COMMUNITY@$MRTG_IP
  646. cat>>/etc/mrtg/mrtg.cfg.old<<Z
  647. #
  648. # httpdプロセス数の数 # httpdプロセス数
  649. #
  650. Target[httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.4.1:$COMMUNITY@$MRTG_IP
  651. ThreshMaxI[httpd]: 20
  652. SetEnv[httpd]: EMAIL="root@$DOMAIN"
  653. URL="http://$MRTG_IP/mrtg/httpd.html"
  654. MaxBytes[httpd]: 100
  655. Title[httpd]: Number of httpd
  656. PageTop[httpd]: <H1> Number of httpd on WebServer</H1>
  657. YLegend[httpd]: Number of httpd
  658. ShortLegend[httpd]: httpd
  659. LegendI[httpd]: 起動中のhttpd
  660. LegendO[httpd]: 起動中のhttpd
  661. #
  662. # CPUのロードアベレージ# 1分間平均の%および15分平均の%
  663. #
  664. Target[la]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.3:$COMMUNITY@$MRTG_IP
  665. ThreshMaxI[la]: 50
  666. SetEnv[la]: EMAIL="root@$DOMAIN"
  667. URL="http://$MRTG_IP/mrtg/la.html"
  668. MaxBytes[la]: 100
  669. Title[la]: Load Average
  670. PageTop[la]: <H1> Load Average on WebServer</H1>
  671. YLegend[la]: Load Average
  672. ShortLegend[la]: %
  673. LegendI[la]: 1分平均
  674. LegendO[la]: 15分平均
  675. #
  676. # メモリ使用状況 # MaxByteには非試験機のトータルメモリを指定
  677. #
  678. Target[mem]: .1.3.6.1.4.1.2021.4.4.0&.1.3.6.1.4.1.2021.4.6.0:$COMMUNITY@$MRTG_IP
  679. ThreshMaxI[mem]: 80
  680. SetEnv[mem]: EMAIL="root@$DOMAIN"
  681. URL="http://$MRTG_IP/mrtg/mem.html"
  682. MaxBytes[mem]: $MEM_T
  683. Title[mem]: Memory Usage "real" and "swap"
  684. PageTop[mem]: <H1>Memory Usage "real" and "swap" on WebServer</H1>
  685. YLegend[mem]: Memory Usage
  686. ShortLegend[mem]: kbyte
  687. LegendI[mem]: Swap使用量
  688. LegendO[mem]: 実メモリ使用量
  689. Z
  690. # mrtgの設定ファイルをeucへ変換します。
  691. nkf -e /etc/mrtg/mrtg.cfg.old >/etc/mrtg/mrtg.cfg
  692. # mrtgの各統計用のHTMLファイルを一つのindex.htmlにまとめます。
  693. /usr/bin/indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/pepolinux.html
  694. #WEBサーバの解析ソフトwebalizerの設定をしてcronに登録します。
  695. sed -e "s/_HOSTNAME/$HOSTNAME_TDL/" /etc/webalizer.conf.org >/etc/webalizer.conf
  696. # 定期的に収集出来るようにと2時間毎に時刻同期をcronに設定します。
  697. cat>/etc/mrtg.sh<<Z
  698. LANG=C
  699. /usr/bin/mrtg /etc/mrtg/mrtg.cfg
  700. Z
  701. chmod 755 /etc/mrtg.sh
  702. cat>/etc/cronpepo<<Z
  703. 0-59/5 * * * * /etc/mrtg.sh
  704. 0-59/5 * * * * /usr/bin/webalizer -c /etc/webalizer.conf
  705. 00 0-23/2 * * * /usr/sbin/ntpdate gpsntp.miz.nao.ac.jp
  706. Z
  707. crontab /etc/cronpepo
  708. # Disable kernel messages. If you wish to verbose mode please comment out.
  709. echo "0" > /proc/sys/kernel/printk
  710. # インターネット・スーパーデーモン xinetd 様の起動です、これを起動さないとFTP、TELNET等が不可。
  711. service xinetd start
  712. # デバイス検出デーモンを起動します。
  713. service haldaemon start
  714. # WindowsXPが起動出来なくなった時、DISKをマウントして共有フォルダで公開します。
  715. #pepomsrescue
  716. #Kernel Debugger(i386系CPUのKernelデバッガ。Pauseキーで起動します。)を無効にします。有効→ echo "1" >/proc/sys/kernel/kdb
  717. #echo "0" >/proc/sys/kernel/kdb
  718. # 透過プロキシの設定をします。・・この前にsquidの起動がされ、eth1へDHCPサーバーからIPが取得されている事。
  719. # eth1のdhcpサーバーから取得したIPアドレスをゲットします。
  720. #DHCPCLIENT_IP=`ifconfig eth1|awk '/inet addr:/{gsub(/addr:/,"");print $2}'`
  721. # dhcpサーバーから取得したIPアドレスでeth1を外向きNATを設定します。
  722. #iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $DHCPCLIENT_IP
  723. # 内部の自IPアドレス以外の80番portをsquidのportへリダイレクトの設定をします。
  724. #iptables -t nat -A PREROUTING -i eth0 -s ! $IPADDR -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
  725. # eth0の80番portをsquidのportへリダイレクトの設定をします。
  726. #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
  727. # Passwordの再設定をします。
  728. #echo 'pepolinux' |passwd root --stdin
  729. # SSHのログインオプションの設定をします。
  730. # FDよりsshdの公開鍵を読み込み、公開鍵のみで認証するようにします。
  731. #mount /dev/fd0 /mnt/fd
  732. #cat /mnt/fd/peplinux/*.pub >/root/.ssh/authorized_keys
  733. #umount /mnt/fd
  734. #cat /etc/ssh/sshd_config |sed "s/PasswordAuthentication yes/PasswordAuthentication no/" > /etc/ssh/sshd_config
  735. #service sshd restart
  736. # OpenVPNのServe用の設定をします。
  737. # server xx.xx.xx.xx ← serverの内部ネットワークを定義
  738. cat >/etc/openvpn/server.conf<<Z
  739. # Server port 443,protocol tcp
  740. port 443
  741. proto tcp
  742. dev tun
  743. ca /etc/openvpn/easy-rsa/keys/ca.crt
  744. cert /etc/openvpn/easy-rsa/keys/server.crt
  745. key /etc/openvpn/easy-rsa/keys/server.key
  746. dh /etc/openvpn/easy-rsa/keys/dh1024.pem
  747. # OpeVPNで使用するDHCPのアドレスプールを指定します。サーバがx.x.x.1、VPNゲートゲートウェイがx.x.x.2になります。
  748. server 192.168.10.0 255.255.255.0
  749. # OpenVPN側のサーバー側のIPアドレスを固定する場合に指定します。(クライアントのデフォルトゲートウェイになります。)
  750. #ifconfig 192.168.10.199 255.255.255.0
  751. ifconfig-pool-persist ipp.txt
  752. # クライアントへ通知するサーバー側のネットワークアドレスを指定します。(サーバー側では適切なルーティングが必要です。)
  753. push "route 192.168.0.0 255.255.255.0"
  754. # push "route 192.168.1.0 255.255.255.0"
  755. # push "route 192.168.2.0 255.255.255.0"
  756. # DHCPクライアントとして接続してきたとき、DNSサーバのアドレスを通知します。
  757. # push "dhcp-option DNS 192.168.0.123"
  758. # DHCPクライアントとして接続してきたとき、WINSサーバのアドレスを通知します。
  759. # push "dhcp-option WINS 192.168.0.124"
  760. keepalive 10 120
  761. comp-lzo
  762. user nobody
  763. group nobody
  764. persist-key
  765. persist-tun
  766. status openvpn-status.log
  767. verb 3
  768. mute 20
  769. client-to-client
  770. up /etc/openvpn/openvpn_up.sh
  771. Z
  772. # OpenVPNサーバー側で事前に必要なUPスクリプトを設定します。
  773. cat >/etc/openvpn/openvpn_up.sh<<Z
  774. #!/bin/sh
  775. # eth0へもう一つIPアドレスを設定し、OpenVPNクライアントからのソースアドレスをこれに書き換えます。
  776. ifconfig eth0:1 192.168.0.254
  777. # OpenVPNの為のNATを設定します。(OpenVPNクライアントがサーバIPのフリをしてサーバネットワークにアクセスします。)
  778. iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.254
  779. # 接続してくるクライアントのLAN側のルーティングを設定します。(クライアントのネットワーク数必要)
  780. ip route add 192.168.1.0/24 via 192.168.10.2
  781. Z
  782. chmod +x /etc/openvpn/openvpn_up.sh
  783. # OpenVPNのClient、WindowsXP用の設定ファイルを作成します。
  784. # remote xx.xx.xx.xx ← serverのグローバルアドレスを指定
  785. # serveで作成された各ファイルをコピー client1.crt client1.key ca.crt と共に client_xp.ovpnを
  786. # WindowsXPのClientの C:\Program Files\OpenVPN\config\ へコピーします。
  787. cat>/etc/openvpn/client_xp.ovpn<<Z
  788. client
  789. port 443
  790. proto tcp
  791. dev tun
  792. ca ca.crt
  793. cert client1.crt
  794. key client1.key
  795. dh dh1024.pem
  796. # remoteでOpenVPNサーバのグローバルアドレスを指定します。
  797. remote 192.168.0.1
  798. keepalive 10 120
  799. comp-lzo
  800. persist-key
  801. persist-tun
  802. status openvpn-status.log
  803. verb 3
  804. mute 20
  805. # OpenVPNサーバのIPアドレスがデフォルトゲートウェイになります。
  806. redirect-gateway def1
  807. Z
  808. # OpenVPN起動します。
  809. #servie openvpn start
  810. # WebShellを起動します。
  811. #/var/www/html/WebShell-0.9.5/webshell.py &
  812. # PepoLinux world の始まり始まり楽しんでね。
  813. # Have a fun PepoLinux.