このLANカードはインストーラーが自動的に認識してくれました。(あの苦労はな んだったんだろう.. 徒労だ;-) ホストネームは`gw'。ドメインは `hogehoge.bogus'。IPアドレスとサブネットマスクは 192.168.1.254/255.255.255.0 に設定しました。DNSはプロバイダ指定の2つを設定 しました。これらはインストーラーが聞いてます。ここで設定できなくても後から /etc/sysconfig/network を編集すればそれで済むことです。
# dmesg | grep -i ttyS |
で、ttyS0(ttyS00)のメッセージがあればOKです。
# cu -l /dev/ttyS0 |
で接続して、AT と打ち込んで OK が返って来たら接続できています。「~.」で ターミナルソフトが終了します。接続出来ていたら次の節は飛ばしてくださ い。
(*1) cu がインストールされてない場合は uucp をインストールします。私は、 uucp-1.06.1-20.i386.rpm をインストールしました。
# setserial /dev/ttyS0 irq 4 autoconfig # setserial -a /dev/ttyS0 /dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test |
`-a'オプションで確認できます。16550UART とか表示されたらOKです。 前節の cu で TA 接続が出来るはずです。
(*2) setserial がインストールされてない場合は setserial をインストール
します。
私は setserial-2.17-1.i386.rpm をインストールしました。
# ppxp flets ppxp> connect : PPXP> bye (接続したまま抜けるには bye) # lynx http://www.yahoo.com/ |
# chkconfig --add ppxpd # chkconfig --level 35 ppxpd on |
#!/bin/sh # chkconfig: - 49 49 # description: Starts and stops the PPxP server daemons . /etc/sysconfig/network [ ${NETWORKING} = "no" ] && exit 0 # Check config file [ -f /etc/ppxp/conf/flets ] || exit 0 case "$1" in start) /usr/bin/ppxp flets -c by /bin/ping -c 1 www.yahoo.co.jp & ;; stop) /usr/bin/ppxp -c quit ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 |
# echo 1 > /proc/sys/net/ipv4/ip_forward |
このコマンドは /etc/rc.d/rc.local 中にで加えておくとよいでしょう。 それと、/etc/sysconfig/network の IP4_FORWARD を `yes' にします。
#/sbin/route add -net 192.168.1.0 gw 192.168.1.254 |
netconf(netconfig) や setup でも設定できます。
ipchains を実行する前にIPマスカレード用に必要なモジュールをインストール
する必要があります.
モジュールインストールとIPマスカレードの設定、及びファイアウォールの設定
は /etc/rc.d/rc.local 内に記述しておくとよいです。以下は追加分の例です。
# module for IP Masquerade kernel=`uname -a | awk '{ print $3 }'` for i in /lib/modules/$kernel/ipv4/ip_masq*.o do /sbin/insmod -s $i done # IP Masquerade, Firewall, ... localhost=127.0.0.1/32 localsubnet=192.168.1.0/24 portlist="21 22 23 25 53 98 110 111 113 119 123 137 138 139 161 194 515 518 901 1178 2010 3128 5680 6000:6010 6667 7000:7010 8080 22273 22289 22305 22321" acceptlist="80" # except IP Spoofing if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then for f in /proc/sys/net/ipv4/conf/*/rp_filter do echo 1 > $f done fi # Clear rule /sbin/ipchains -F # ping /sbin/ipchains -A input -p icmp -s $localhost --icmp-type ping -j ACCEPT /sbin/ipchains -A input -p icmp -s ! $localsubnet --icmp-type ping -j DENY # privent IP Spoofing via ul0(or ppp0..) /sbin/ipchains -A input -i ul0 -s $localsubnet -d 0/0 -l -j DENY # IP masquerade & forward echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -i ul0 -s $localsubnet -d 0/0 -j MASQ # accept list for i in $acceptlist do /sbin/ipchains -A forward -p tcp -s 0/0 -d 0/0 $i -j ACCEPT /sbin/ipchains -A forward -p udp -s 0/0 -d 0/0 $i -j ACCEPT done # portlist for i in $portlist do /sbin/ipchains -A input -p tcp -s $localhost -d 0/0 $i -j ACCEPT /sbin/ipchains -A input -p tcp -s ! $localsubnet -d 0/0 $i -j DENY /sbin/ipchains -A input -p udp -s $localhost -d 0/0 $i -j ACCEPT /sbin/ipchains -A input -p udp -s ! $localsubnet -d 0/0 $i -j DENY done |
ipchains はIPアドレス、ポート番号、インターフェイスを指定してフィルタ リングを行えます。 IP偽装もインターフェスとIPアドレスを指定することで行えます。
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then echo -n "Setting up IP spoofing protection..." for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f done echo "done." fi |
# chkconfig --list | grep squid |
で squid の行がなければ、chkconfig --add squid を実行. run level 3と 5の時に有効とするには
# chkconfig --level 35 squid on |
としておく。
そして、一番大切なのは`ポートリダイレクト'である。ローカルホストが発 する TCPプロトコルの宛先全ての wwwポート は、squid の決められたポート (3124)にリダイレクトされる必要がある。この設定を ipchains で行う。 これで透過的なプロキシサーバーの出来上がりである。
# tar xzvf ipmasqadm-0.4.2.tar.gz # cd ipmasqadm-0.4.2 # make KSRC=/usr/src/linux # make install |
# ipmasqadm portfr -f # ipmasqadm portfw -a -P tcp -L 111.222.333.444 80 -R 192.168.1.1 80 |
最初の行は一旦、ポートフォワードの設定をクリア(flush)します。
2行目がポートフォワードの設定です。これで、インターネットからローカルネットワーク内のWebサーバーにアクセ
スできます。
が、私はドメイン登録してないんで名前解決はできるわけないので、IPアド
レスを直接指定します。http://111.222.333.444/ という具合に;-P
start hogehoge |
hogehoge はこれから作るスクリプトで実際のファイル名は、hogehoge.rc で
す。これを /etc/ppxp/rc/ におきます。/etc/ppxp/rc/ には .rcファイルがデ
フォルトでいくつか容易されています。それら参考に hogehoge.rc を作成しま
す。実行属性を付与しておいて下さい。
UP の部分に、/usr/local/sbin/setipchains.sh を記述します。これで完了
です。
stop hogehoge2 |
hogehoge2 は /etc/ppxp/rc/hogehoge2.rc ですね。そして hogehoge2.rc の
DOWN の部分に処理させたいコマンドを記述します。
もちろん、接続・切断時で対応した処理をしたい場合は hogehoge.rc 一本で
UPと DOWN 部分にそれぞれのコマンドを書けばよいです。
# rpm -ivh nomail-0.4.10-1.i386.rpm |
# Nomail setting file localuser foo,bar localdomain hogehoge.bogus internetaddr foo@hogehoge.bogus smtphost smtp.xxxx.xxxx rewriteaddr yes #invalid_msgid yes #timeout 60 #local_mda /usr/bin/procmail -d |
# nomail foo@aaa.bbb.ccc < mail.txt |
mail.txt の冒頭に`Subject: お題目' を挿入するとメールサブジェクトが 「お題目」になる。
# nosend |
メールを書いて即、SMTPサーバーへ出したいときは、nomail, nosend を続け
て実行すればよい。
また、ダイヤルアップ環境であればダイヤルアップ接続が確立したときに
nosend を実行するようにスクリプトで設定しておけば楽である。例えば、PPxP
を使用している私の環境では、/etc/ppxp/rc/send_mail.rc を作成して、
/etc/ppxp/ip/drouteup の最後にの `start' から始まる行の最後に
`send_mail' を付与するだけでよい。`start'から始まる行がなければ、最後の
行に`start send_mail' と記述する。
# cd /usr/local/src # tar xzvf lft-2.4.3.tar.gz # cd lftp-2.4.3 # ./configure # make # make install |
以上で /usr/local/bin に lftp がインストールされる。
open -u foobar,hogehoge ftp.xxx.yyy.com cd test lcd /upload ascii put index.html |
/etc/.lftprc にはパスワードがベタで書かれているので不用意に他人に除か れないように属性を設定します。
# chmod 600 /etc/.lftprc |
# lftp -f /etc/.lftrc |
ダイヤルアップ環境であればダイヤルアップ接続が確立したときに上記を実 行するようにスクリプトで設定しておけば、毎回更新されることになる。Webペ ージの更新などに便利ですな。
Aug 31 06:45:59 gw modprobe: can't locate module net-pf-10 |
net-pf-10 は IPv6 のモジュール名らしく、/etc/modules.confに 以下を追 加して再起動すれば解消される。
alias net-pf-10 off |
2001/08 by masu
e-mail: massun.masumoto@nifty.ne.jp
URL : http://member.nifty.ne.jp/~masumoto/