2005年06月14日

#begin

iptables -F

echo 1 > /proc/sys/net/ipv4/ip_forward

modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp

iptables -F INPUT

iptables -F FORWARD

iptables -F POSTROUTING -t nat

iptables -t nat -F

iptables -P FORWARD DROP

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

iptables -A FORWARD -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT –to 61.233.18.26

/sbin/iptables -A INPUT -p tcp -d 61.233.18.26 –dport 22 -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 219.238.237.57 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d 61.233.18.26 –dport 161 -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -p udp -d 61.233.18.26 –dport 161 -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d 61.233.18.26 –dport 162 -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -p udp -d 61.233.18.26 –dport 162 -i eth0 -j ACCEPT

#/sbin/iptables -A INPUT -i eth0 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p tcp –dport 80 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p tcp –dport 443 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p tcp –dport 4000 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p tcp –dport 8000 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p udp –dport 4000 -j DROP
#/sbin/iptables -I FORWARD -i eth0 -p udp –dport 8000 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.96.170.164 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.96.170.165 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.96.170.175 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.96.170.188 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.135.131.240 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.141.194.203 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.141.194.231 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.141.194.224 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.18.95.165 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 219.133.40.15 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.144.238.137 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.144.238.145 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.144.238.146 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.144.238.150 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 61.144.238.151 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.254 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.252 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.253 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.251 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.242 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.104.129.246 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.103.190.61 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 202.103.149.40 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.18.95.165 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.18.95.140 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.18.95.153 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.17.209.23 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.17.217.103 -j DROP
#/sbin/iptables -I FORWARD -s 0/0 -d 218.17.209.42 -j DROP
#end

如何自动启动Apache

如何将后安装的apache服务器设置为和缺省安装一样的自启动和手工启动:

在redhat6.2环境下,编辑文件/etc/rc.d/init.d/functions将:
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin“
修改为:
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/apache/bin"
其中后面的/usr/local/apache/bin为你的apache的安装路径
然后在/etc/rc.d/init.d中创建文件内容为:
#!/bin/sh
#
# Startup script for the Apache Web Server
#
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server. It is used to serve
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf


# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "?$1" in
start)
echo -n "Starting httpd: "
daemon httpd
echo
touch /var/lock/subsys/httpd
;;
stop)
echo -n "Shutting down http: "
killproc httpd
echo
rm -f /var/lock/subsys/httpd
rm -f /var/run/httpd.pid
;;
status)
status httpd
;;
restart)
?$0 stop
?$0 start
;;
reload)
echo -n "Reloading httpd: "
killproc httpd -HUP
echo
;;
*)
echo "Usage: ?$0 {start|stop|restart|reload|status}"
exit 1
esac

exit 0


然后修改该文件的执行权限为:chmod +x httpd
然后就可以通过/etc/rc.d/init.d/httpd start 来察看是否能正确的启动httpd
若可以,则通过命令chkconfig来设置apache自启动:
chkconfig –level 35 httpd on
即可

如何一次添加大量系统用户

一次添加大量系统用户:
何一次建立大量用户
一. 使用内建的工具 newusers 及 chpasswd

先编辑帐号文件,每一列须按密码文件的格式书写.

(请善用文书编辑程序的拷贝复制功能来大量产生)

例: 一个帐号档名为 new_alist

stu001::600:600:stu:/home/stu001:/bin/bash
stu002::601:601:stu:/home/stu002:/bin/bash
stu003::602:602:stu:/home/stu003:/bin/bash
stu004::603:603:stu:/home/stu004:/bin/bash
stu005::604:604:stu:/home/stu005:/bin/bash
stu006::605:605:stu:/home/stu006:/bin/bash


建帐号:

newusers < new_alist


执行 pwunconv


编辑密码对照文件:

例: 建一个密码对照文件, 文件名为 new_plist

stu001:密码
stu002:密码
stu003:密码
stu004:密码
stu005:密码
stu006:密码


建密码:

chpasswd < new_plist


执行 pwconv


dd的应用:文件分割

dd的应用:文件分割
dd if=source of=target.1 bs=1M count=10
dd if=source of=target.2 bs=1M skip=10
source被分为target.1和target.2两个文件
其中target.1为source的前10M部分
target.2为source的减去10M后的部分
cat target.1 target.2 > othersource
source与othersource是同一个文件

如何删除文件"-a"

如何删除文件"-a" ?

(可以用 ?$echo "abcd" > -a 生成"-a"文件.)
如果直接用 ?$rm -a 是无法删除的!因为rm把-a解释为命令参数,而不是变量.正确的方法是:
?$rm — -a
或者是
?$rm ./-a

您如果有兴趣的,还可以编程序实现.
?$vi myrm.c

int main(int argc, char *argv[])
{
while (*++argv) {
printf("%s ", *argv);
unlink(*argv);
}
}

?$cc myrm.c -o myrm
?$myrm -a

每次登录时自动挂上dos分区

编辑一个名为mystartshell的shell,内容为
/bin/bash
if grep hda6 /etc/mtab
then startx
else
then mount -t vfat /dev/hda6 /mnt/fat-e
fi
在profiles中加入sh mystartxshell 的命令可以在每次登录时自动挂上dos分区,hda6为fat分区,可根据分区变化.

使用压缩磁盘

Linux 下有一个类似 dos 里的 pklite 和 lzexe 的命令–gzexe。而且压缩率一般都可以超过 50%,在空间紧张时很有用。比如:
/dosc/temp# ls -al
total 148
-rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk
/dosc/temp# gzexe gawk
gawk: 54.5%
/dosc/temp# ls -al
total 216
-rwxr-xr-x 1 root root 68710 Dec 8 15:36 gawk
-rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk~
/dosc/temp#


如何处理整个目录

一次处理一整个目录 Linux/UNIX 的很多常用命令如rm,cp 等都有一个参数 -r,是递归的意思,命令里加了参数 -r 就可以对目标目录及其下所有子目录进行操作,如:rm -rf/test(f是 force 意为强行),该命令完全删除根目录下的子目录test,作用类似于dos下的deltree,当然使用这个命令时要特别小心。再如:cp -r/test/test1有类似dos下xcopy/s的作用。

如何断开网络

假如有紧急情况需要与网络断开,可采用以下方法:
1.拔掉网线 :)
2.执行 ifconfig interface down
如:ifconfig eth0 down
(以后用ifconfig interface up让其生效)
3.执行/etc/init.d/network stop
(以后用/etc/init.d/network start恢复)

如何终止所有的csh进程

假设我们需要终止所有的csh进程,
平常我们是:
1. ps -aux|grep csh
假设得到:
root 1345 1345 ……… /bin/csh
root 2434 2434 ……… /bin/csh
root 3678 3678 ……… grep csh
2.执行kill命令:
kill 1345 2434
而如果我们使用fuser命令就可以执行:
fuser -k /bin/csh
也一样完成了以上的工作!

允许启动某项服务

在redhat中如何实现 启动时是否允许启动某项服务:
1、可以使用 linuxconf的图形化界面 来定义是否在系统启动时启动某项服务
2、使用chkconfig命令 来定义在那个运行级别是否运行某个服务器进程 若你希望在345运行界别下在启动时自动启动httpd服务器,则使用命令:
chkconfig –level 345 httpd on
若希望关闭该服务:
chkconfig –level 345 httpd off

看看哪个进程占用的内存最大


ps -aux|sort +5n

LINUX调试——路由器的配置与实现

1、 网络拓扑

2、 IP分配
CLIENT:192.168.2.2
LINUX SERVER :
Eth0:192.168.2.1
Eth1:199.229.194.161
CISCO2514:202.99.30.66(合法地址)
SQUID SERVER:
Eth0:199.229.194.20
Eth0:1:202.99.30.67

3、 目的:
通过LINUX SERVER上的路由配置,使得CLINET可以找到去SQUID SERVER的代理;
然后,上INTERNET。

4、 LINUX SERVER上的配置:
1)、相关命令:
ifconfig route
2)、网卡配置(LINUX SERVER):
# ifconfig eth0 192.168.2.1 netmask 255.255.255.0
# ifconfig eth1 199.229.194.161 netmask 255.255.255.0
3)、配置路由:
#route add –net 192.168.2.0/24 gw 192.168.2.1 dev eth0
#route add –net 199.229.194.0/24 gw 199.229.194.0/24 dev eth1
#route add default gw 199.229.194.161
4)、设置启动
把上面几行命令加到:/etc/rc.d/rc.local中。
5)、简捷配置:
可以完全不用以上配置,在setup中启动routed进程。

5、 SUQID SERVER上的配置:
1)、相关命令:
ficonfig route
2)、网卡配置:
# ifconfig eth0 199.229.194.20 netmask 255.255.255.0
# ifconfig eth0:1 202.99.30.67 entmask 255.255.255.0
3)、配置路由:
# route add –net 192.168.2.0/24 gw 199.229.194.161 dev eth0
# route add default gw 202.99.30.66
4)、squid服务器配置:
文件/etc/squid/squid.conf中端口号为81

6、 CLIENT端的配置
添加代理服务器,指向199.229.194.20 端口是81(和DQUID SERVER中一致)。

7、 总结:
到目前为止客户端应该可以通过SQUID 服务器上网了。技术上的前提条件为:
1)、在/etc/sysconfig/network文件中必须有一项:FORWARD-IPV4=YES
2)、在/proc/sys/net/ipv4中显示“1”。