问题:如何通过服务器上外网
服务器上外网执行操作(操作顺序可调):
(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