问题:如何通过服务器上外网

服务器上外网执行操作(操作顺序可调):

(1)iNode连接

(2)执行StartMyNetwork.sh    终端运行命令后会自动关闭

问题:有哪些自己写的脚本文件,存在什么路径下

服务器网络配置脚本存放位置: /bin/MyFireWall.sh     /bin/StartMyNetwork.sh

或者到/home/administrator/MyNetwork修改ln /bin/StartMyNetwork.sh /home/administrator/MyNetwork

ln /bin/MyFireWall.sh /home/administrtor/MyNetwork

ln /bin/StartMyNetwork.sh /home/administrator/桌面

问题:如何绑定新的MAC

添加MAC: sudo MyFireWall.sh 00:00:00:00:00:00  Tomy’sMAC

注:描述Tomy'sMAC中间无空格的字符串,也可不写,MAC位数不对会出错

或在桌面上addmac.txt文件中添加

添加MAC后重启iptables:sudo StartMyNetwork.sh 

或执行桌面上StartMyNetwork.sh脚本

问题:如何重启iptables

sudo StartMyNetwork.sh 

或执行桌面上的StartMyNetwork.sh脚本

 

1、iNode认证客户端安装

(1)学校网站下载linux版本。

(2)修改install.sh权限(755),执行install.sh。

(3)修改iNodeClient权限(755),运行iNodeClient认证。

2、MyFireWall.sh防火墙设置

#!/bin/bash
#written by *** 2012/3/29 QQ***

#1.主要作用:只有经过该脚本绑定的MAC才可通过本机访问外网,其余MAC一律拒绝访问外网。
#2.该脚本的$1和$2为新添加的MAC和描述,且重定向到addmac.txt中。

#打开IP转发功能,相当于让内核做路由
echo "1" > /proc/sys/net/ipv4/ip_forward

###清除iptables规则
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
###清除iptables规则

###设置默认规则
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP  #只有FORWARD链默认DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
###设置默认规则

###启动nat转发及FORWARD state允许转发外网对内网请求响应的包
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
###启动nat转发及FORWARD state允许转发外网对内网请求响应的包

###本脚本默认允许通过的MAC(其余允许通过的MAC在~/桌面/addmac.txt中)
iptables -A FORWARD -m mac --mac-source *** -j ACCEPT
iptables -A FORWARD -m mac --mac-source *** -j ACCEPT
###本脚本默认允许通过的MAC(其余允许通过的MAC在~/桌面/addmac.txt中)

###重定向脚本的$1 $2 
#eg:sudo MyFireWall.sh 00:00:00:00:00:00 ZhangSan
#意思是将00:00:00:00:00:00 ZhangSan作为一行添加到addmac.txt中
if [ $1 ];then
        #if [ $2 ];then
        #echo \# $2 >> /bin/MyFireWall.sh    #反斜杠\转义注释符号#
        #else
        #       :
        #fi
        #echo iptables -A FORWARD -m mac --mac-source $1 -j ACCEPT >> /bin/MyFireWall.sh
        echo $1 $2 >> /home/administrator/桌面/addmac.txt
else
        :               
fi
###重定向脚本的$1 $2 

 

###从addmac.txt读取用户添加的MAC,并允许其访问外网
#管道|  即读取cat 显示的文件的每一行,并将以行存在LINE变量中。

#read有读取一行的作用。
cat /home/administrator/桌面/addmac.txt | while read LINE  
do
usermac=`echo $LINE | awk '{print $1}'`
#username=`echo $LINE | awk '{print $2}'`
#echo \# $username >> /bin/MyFireWall.sh
#if else 语句的作用是避免将读到的空行作为MAC赋给iptables语句。
if [ $usermac ];then
        iptables -A FORWARD -m mac --mac-source $usermac -j ACCEPT
else
        :
fi
done
###从addmac.txt读取用户添加的MAC,并允许其访问外网

3、DHCP服务器

(1)

安装dhcp3-server:apt-get install dhcp3-server

(2)

a、gedit /etc/default/dhcp3-server

INTERFACES="eth1"

b、gedit /etc/dhcp3/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.254;
option domain-name-servers 218.30.19.40,202.117.112.3;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 86400;
max-lease-time 172800;
}

host WorkStation{
        hardware ethernet 2c:41:38:94:51:90;
        fixed-address 192.168.0.30;
注:主机名任意,若客户端手动配置,以客户端配置为准。

(3)

/etc/init.d/dhcp3-server start

 4、StartMyNetwork.s放在桌面上由用户执行的操作

执行需要输入密码

sudo /sbin/ifconfig eth0 hw ether **:**:**:**:**:**

sudo /home/administrator/MyNetwork/MyFireWall.sh

sudo /sbin/dhclient eth0

5、/etc/network/interfaces配置eth0 、eth1

auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether **:**:**:**:**:** #修改网卡为外网认证网卡

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0

6、/etc/rc.local设置开机启动项

开机修改网卡为外网认证网卡,开机启动iNode服务

/sbin/ifconfig eth0 down

/sbin/ifconfig eth0 hw ether **:**:**:**:**:**

/sbin/ifconfig eth0 up

/etc/init.d/iNodeAuthService start

exit 0

6、修改ubuntu10.10和windows XP双系统启动顺序

在windows xp操作系统下右击--我的电脑--属性--高级--启动和故障恢复--设置--默认操作系统下拉框选择默认启动操作系统和类表显示时间等。

7、服务器启用ssh

服务器安装openssh-server:sudo apt-get install openssh-server

8、卸载NetworkManager

9、服务器定时关机

gedit /etc/crontab

30 23 * * * root /sbin/shutdown -h now

每天23:30关机。

10、脚本StartMyNetwork.sh MyFireWall.sh作为命令执行

将StartMyNetwork.sh MyFireWall.sh拷贝到PATH标明的路径下(/bin)。

如:将这两个脚本拷贝到/bin文件夹下,则在终端的任意路径下都可执行这两个脚本。

补充:

PATH含义:在当前目录下找不到命令或脚本,则到PATH标明的路径下查找。

PATH环境变量查看:echo $PATH  或   export   (查看所有环境变量)

PATH修改:export PATH=**:**:**  

11、Xmanager切换中英文输入法(需要先在首选项--键盘输入法启用):shift

在首选项--键盘输入法里设置

12、查看DHCP的IP历史分配情况

cat /var/lib/dhcp3/dhcpd.leases 

注:无法查看固定分配的IP(客户端指定和服务端指定都无法查看)

推荐用管道查看日志

cat /var/log/messages | grep DHCPACK 

注:/var/log/messages存放的是一天的messages

     /var/log/messages.1存放的是?多长时间

13、查看正在使用的IP,即查看当前有哪些客户端连接到服务器

(1)arp             #所有接口

(2)arp –i eth1  #查看连到eth1接口的IP及对应MAC

注:如果/etc/dhcp3/dhcpd.conf中给特定MAC分配指定的IP,则ARP可以解析 该IP与对应MAC。(客户端指定可解析出)用ARP命令时是解析的当前在活动的包,所以有时客户端虽然连服务器,但解析不出客户端。

14、/var/lib/dhcp3/dhcpd.leases字段含义

{starts 6 2010/12/25 21:20:08; ends 6 2010/12/25 23:20:08; cltt 6 2010/12/25 21:20:08; binding state active; next binding state free;} {starts 0 2010/12/19 15:56:00; ends 0 2010/12/19 17:56:00; tstp 0 2010/12/19 17:56:00; cltt 0 2010/12/19 15:56:00; binding state free;}

start和end时间使用starts和ends语句记录。Tstp语句指定在使用失败恢复协议时,伴侣认为租约过期的时间,tsfp语句也用在失败恢复协议使用时,指定伴侣确认的租约过期时间。 binding state语句声明租约的绑定状态,当DHCP服务器没有配置使用失败恢复协议时,租约的绑定状态会是激活(active)和自由(free),失败恢复协议添加了一些新的传送状态 cltt 我找了下dhcp的英文介绍 这么解释的The time of the last transaction with the client on this lease. 大概就是客户端最后一次续约时。

FAQ

问题一:iNode一直认证失败(connect failed)

解决:用户权限问题?(将administrator UID设为0后会出现failed问题)

将UID改回1000,或者是该iNode的执行权限原因,改变其执行权限,或改变所有者,所属组?断开再连。或者重启iNode再连。

问题二:iNode连接超时(overtime)。

解决:断开再连。(或者重启再连。)

问题三:iNode连接时显示MAC不对。

解决:ifconfig eth0 hw ether **:**:**:**:**:**  (改为可连外网MAC)

问题四:iNode显示认证通过,但是无法ping通 www.baidu.com

解决:dhclient eth0 (未获取IP)

问题五:DHCP服务器不可用

解决:内网网卡eth1的IP配置为192.168.0.1

问题六:使用NetworkManager后eth0的MAC改变

解决:ifconfig eth0 hw ether **:**:**:**:**:**  (改为可连外网MAC)

或者直接执行MyFireWall.sh