Witam,
Część (A) mojej wypowiedzi będzie być może pomocna dla innych użytkowników chcących łączyć się przez modem Globesurfer ICON USB EDGE/3G w systemach linux na przykładzie Mandriva 2007. Druga część (B) natomiast jest prośbą o "podrasowanie" skryptu startującego modem tak, aby połączenie było automatycznie dzielone dla laptopa z Vistą (przez skrosowaną skrętkę). Za pomoc z góry dzięki.
A) Część z opisem "jak połączyć" modem (na przykładzie sieci ORANGE)
1. Stwórz przy pomocy ulubionego edytora skrypt "necik" i umieść go np w /sbin (/sbin/necik)
#startuje modem
sudo modprobe usbserial vendor=0x0af0 product=0x6600
echo ''
echo ''
echo 'Startuje modem...'
sudo pppd call umts
nadaj mu atrybut "wykonywalny"
2. stwórz i umieść /etc/chatscripts/umts i nadaj "wykonywalny"
# usbserial device, some options:
/dev/ttyUSB0
460800
idle 7200
lock
crtscts
modem
noauth
# dns, routing
usepeerdns
# replacedefaultroute
defaultroute
noipdefault
# avoid compression:
noccp
nobsdcomp
novj
# usually doesnt matter for GPRS/UMTS connections:
user "idea"
password "idea"
# connect script
connect "/usr/sbin/umts-chat.sh"
# t-mobile specific?
ipcp-restart 8
ipcp-max-configure 50
ipcp-accept-local
ipcp-accept-remote
3. stwórz, umieść i nadaj "wykonywalny" dla /usr/sbin/umts-chat.sh
#!/bin/sh
# call the preparation chat script (with pin and if this fails without pin)
/usr/sbin/chat -V -f /etc/chatscripts/umts-prep || /usr/sbin/chat -V -f /etc/chatscripts/umts-prep-nopin
# wait to switch between GPRS/UMTS
sleep 20
# the final chat script:
/usr/sbin/chat -V -f /etc/chatscripts/umts
4. stwórz umieść i nadaj wykonywalny dla /etc/chatscripts/umts-prep
(w miejsce XXXX wpisz swój PIN)
ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" "AT+CSQ"
"" "ATZ"
OK "ATE1V1&D2&C1S0=0+IFC=2,2"
OK "AT+IPR=115200"
# replace XXXX with your PIN:
OK "AT+CPIN=XXXX"
OK "ATE1"
# different operating modes, comment/uncomment:
# GPRS
#OK "AT_OPSYS=0,2"
# UMTS
#OK "AT_OPSYS=1,2"
# GPRS, UMTS
#OK "AT_OPSYS=2,2"
# UMTS,GPRS
OK "AT_OPSYS=3,2"
OK "AT+CGDCONT=1,042IP042,042www.idea.pl042,042042,0,0"
SAY "nWaiting 20 Seconds to switch between UMTS/GPRS ...n"
5. stwórz, umieść i nadaj wykonywalny dla /etc/chatscripts/umts-prep-nopin
ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" "ATZ"
OK "ATE1V1&D2&C1S0=0+IFC=2,2"
OK "AT+IPR=115200"
OK "ATE1"
# different operating modes, comment/uncomment:
# GPRS
#OK "AT_OPSYS=0,2"
# UMTS
#OK "AT_OPSYS=1,2"
# GPRS, UMTS
#OK "AT_OPSYS=2,2"
# UMTS,GPRS
OK "AT_OPSYS=3,2"
OK "AT+CGDCONT=1,042IP042,042www.idea.pl042,042042,0,0"
SAY "nWaiting 20 Seconds to switch between UMTS/GPRS ...n"
6. stwórz, umieść i nadaj wykonywalny dla /etc/chatscripts/umts
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
SAY "Calling idea GPRSn"
TIMEOUT 60
"" "ATD*99*#"
CONNECT c
7. stwórz, umieść i nadaj... /etc/ppp/ip-up
#!/bin/sh
PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
export PATH
if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
rm -f /etc/ppp/resolv.prev
if [ -f /etc/resolv.conf ]; then
cp /etc/resolv.conf /etc/ppp/resolv.prev
grep domain /etc/ppp/resolv.prev > /etc/resolv.conf
grep search /etc/ppp/resolv.prev >> /etc/resolv.conf
cat /etc/ppp/resolv.conf >> /etc/resolv.conf
else
cp /etc/ppp/resolv.conf /etc
fi
chmod 0644 /etc/resolv.conf
fi
# these line change the default route the pppX
INTERFACE=$1
REMOTEIP=$5
/sbin/route add default gw $REMOTEIP dev $INTERFACE
8. stwórz, umieść i nadaj ... /etc/ppp/ip-down
#!/bin/sh
PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
export PATH
if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
if [ -f /etc/ppp/resolv.prev ]; then
rm -f /etc/resolv.conf
cp -f /etc/ppp/resolv.prev /etc/resolv.conf
chmod 0644 /etc/resolv.conf
else
rm -f /etc/resolv.conf
fi
fi
/sbin/route
9. stwórz, umieść i nadaj ... /usr/sbin/globesurfer-icon-switch-child
#!/bin/sh
# wait for the usb disk to settle
sleep 10
# for debugging:
# env >> /tmp/globe.log
# now run the real switch command, keep some logs
/usr/sbin/icon_switch >>/tmp/globe.log 2>&1 &
sleep 1
exit 0
10. stwórz, umieść i nadaj ... /usr/sbin/globesurfer-icon-switch.sh
#!/bin/sh
# make sure the box is active in storage mode,
# therefore trigger a scsi bus scan
modprobe sd_mod
echo "scsi add-single-device 0 1 2 3" > /proc/scsi/scsi
# run real switch in background
# (waits some seconds for the storage device to settle)
/usr/sbin/globesurfer-icon-switch-child.sh &
exit 0
11. w /etc/resolv.conf zmień zawartość na:
nameserver 194.9.223.79
nameserver 217.17.34.10
12. Teraz po napisaniu komendy /sbin/necik w konsoli i podaniu po prośbie hasła do sudo (hasło jak użytkownika, pod warunkiem, że dodany do listy sudoers - help szukajcie sami) wystartuje modem.
B) P O M O C Y - mój skrypt startowy "necik" wygląda nieco inaczej niż podałem na górze, bo próbowałem go rozbudować o reguły do automatycznego dzielenia łącza na interfejs eth0 dla laptopa.
Wygląda tak: /sbin/necik
#!/bin/sh
echo 'Wyłączenie shorewalla...'
sudo shorewall stop
echo 'Usuwam istniejace reguly filtra pakietow...'
sudo rm -f /etc/sysconfig/iptables
sudo iptables -F
echo 'Akceptuje ruch po interfejsie lokalnym i wychodzacy...'
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i eth0 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -j ACCEPT
echo 'Blokuje caly ruch niepasujacy do zadanych wzorcow...'
sudo iptables -A FORWARD -j DROP
sudo iptables -A INPUT -j DROP
echo 'Zapisuje konfiguracje...'
sudo service iptables save
echo 'Restartuje filtr pakietow...'
sudo service iptables restart
#startuje modem
sudo modprobe usbserial vendor=0x0af0 product=0x6600
echo ''
echo ''
echo 'Startuje modem...'
sudo pppd call umts
Wynik komendy "necik" jest następujący:
Wyłączenie shorewalla...
Password:
Stopping Shorewall...
WARNING: DISABLE_IPV6=Yes in shorewall.conf but this system does not appear to have ip6tables
done.
Usuwam istniejace reguly filtra pakietow...
Akceptuje ruch po interfejsie lokalnym i wychodzacy...
Blokuje caly ruch niepasujacy do zadanych wzorcow...
Zapisuje konfiguracje...
Zapisywanie bieżących reguł do /etc/sysconfig/iptables: [ OK ]
Restartuje filtr pakietow...
Stosowanie reguł iptables zapory ogniowej:
[ OK ]
Startuje modem...
AT+CSQ
+CSQ: 28,99
OK
ATZ
OK
ATE1V1&D2&C1S0=0+IFC=2,2
OK
AT+IPR=115200
OK
AT+CPIN=4511ATE1
OK
AT_OPSYS=3,2
OK
Waiting 20 Seconds to switch between UMTS/GPRS ...
Calling idea GPRS
AT+CGDCONT=1,"IP","
www.idea.pl","",0,0
OK
ATD*99*#
CONNECTchat: Jun 05 21:08:29 CONNECT 1800000
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
sent [LCP ConfReq id=0x1
]
rcvd [LCP ConfReq id=0x2 ]
sent [LCP ConfAck id=0x2 ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP DiscReq id=0x3 magic=0x6ec63736]
rcvd [CHAP Challenge id=0x1 <4e6a78a2367a8b8fdab8040e66f70358>, name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 , name = "idea"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 ]
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfNak id=0x2 ]
rcvd [IPCP ConfNak id=0x2 ]
sent [IPCP ConfReq id=0x3 ]
rcvd [IPCP ConfAck id=0x3 ]
rcvd [IPCP ConfReq id=0x3]
sent [IPCP ConfAck id=0x3]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 91.94.194.175
remote IP address 10.64.64.64
primary DNS address 194.9.223.79
secondary DNS address 217.17.34.10
Script /etc/ppp/ip-up started (pid 7524)
Script /etc/ppp/ip-up finished (pid 7524), status = 0x7
................................. i tu po dialogu pozostaje włączone połączenie - NIE KOŃCZY SKRYPTU i net działa. (za każdym razem jest oczywiście inne IP)
Wynik komendy route jest taki:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
169.254.0.0 * 255.255.0.0 U 0 0 0 lo
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.64.64.64 0.0.0.0 UG 0 0 0 ppp0
Jak udostępnić połączenie dla Visty z automatu?
Jak podrasować skrypt "necik"?
HELP bo dostaję kociokwiku....
EDIT:
Kiedy na uruchomionym necie wykonuje:
[root@localhost cos]# ifconfig eth0 192.168.0.1 netmask 255.255.255.0
[root@localhost cos]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@localhost cos]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
to w wyniku "route" otrzymuje:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 lo
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.64.64.64 0.0.0.0 UG 0 0 0 ppp0
i z windy mogę zpingować 192.168.0.1 (czyli stacjonarke)
i dalej nie ma netu na laptopie... (kabel scrossowany)
Wrrrrrrrrrr