ancai 发表于 2002-12-13 10:12:02

请问在linux里实现防火墙和计划任务的方法,谢谢!

:-D防火墙要求包含两个子网(10.1.1.0/10.1.2.0)的局域网的全部内网主机都可以使用路由的linux服务器访问外网(200.99.123.1),实现HTTP浏览INTERNET,但其中只有一个子网(10.1.2.0)可以使用TELNET来访问外网,而内网中只有10.1.1.20和10.1.2.20两台机器可以使用S MTP访问外网。


类似于windows中的计划任务在linux中怎么实现
1。每周日凌晨2:00做磁盘检查,清楚log文件。
2。每天凌晨3:00检查各目录中是否存在某些文件,有即删除
3。每小时一次,对域名服务进程named运行状况做例行检查,若发现named没有运行,重新启动它。
能否帮助给出详细的思路、方法、步骤和详细的配置清单。

easypp 发表于 2002-12-15 13:45:37

安排用户使用at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才可以正常运行。at命令可以只指定时间,也可以时间和日期一起指定。需要注意的是,指定时间有个系统判别问题。比如说∶用户现在指定了一个执行时间∶凌晨3:20,而发出at命令的时间是头天晚上的20:00,那么究竟是在哪一天执行该命令呢?如果用户在3:20以前仍然在工作,那么该命令将在这个时候完成;如果用户3:20以前就退出了工作状态,那么该命令将在第二天凌晨才得到执行。下面是at命令的语法格式∶

  at [-V] [-q 队列] [-f 文件名] [-mldbv] 时间

  at -c 作业 [作业...]

  at允许使用一套相当复杂的指定时间的方法,它可以接受在当天的 hh:mm(小时:分钟)式的时间指定。如果该时间已经过去,那么就放在第二天执行。当然也可以使用 midnight(深夜), noon (中午), teatime(饮茶 时间,一般是下午 4点)等比较模糊的词语来指定时间。用户还可以采用12小时计时 制,即在时间后面加上AM (上午)或者 PM (下午)来说明是上午还是下午。也可以指定命令执行的具体日期,指定格式为 month day (月 日)或者 mm/dd/yy(月/日/年)或者 dd.mm.yy (日.月.年)。指定的日期必须跟在指定时间的后面。

  上面介绍的都是绝对计时法,其实还可以使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为∶now + count time-units ,now就是当前时间,time-units是时间单位,这里可以是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。

  还有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。下面通过一些例子来说明具体用法。

  [例] 指定在今天下午 5:30 执行某命令。假设现在时间是中午12:30,2001年2月24日,其命令格式如下∶

  at 5:30pm

  at 17:30

  at 17:30 today

  at now + 5 hours

  at now + 300 minutes

  at 17:30 24.2.99

  at 17:30 2/24/99

  at 17:30 Feb 24

  以上这些命令表达的意义是完全一样的,所以在安排时间的时候完全可以根据个人喜好和具体情况自由选择。一般采用绝对时间的24小时计时法可以避免由于用户自己的疏忽造成计时错误的情况发生,例如上例可以写成∶

  at 17:30 2/24/99

  这样非常清楚,而且别人也看得懂。

  对于at命令来说,需要定时执行的命令是从标准输入或者使用-f选项指定的文件中读取并执行的。如果at命令是从一个使用su命令切换到用户shell中执行的,那么当前用户被认为是执行用户,所有的错误和输出结果都会送给这个用户。但是如果有邮件送出的话,收到邮件的将是原来的用户,也就是登录时shell的所有者。在7月31日上午10点执行文件work中的作业。

  在任何情况下,超级用户都可以使用这个命令。对于其他用户来说,是否可以使用就取决于两个文件∶ /etc/at.allow 和 /etc/at.deny 。

cron命令
  前面介绍的两条命令都会在一定时间内完成一定任务,但是要注意它们都只能 执行一次。也就是说,当指定了运行命令后,系统在指定时间完成任务,一切就结束了。但是在很多时候需要不断重复一些命令,比如∶某公司每周一自动向员工报告头一周公司的活动情况,这时候就需要使用cron命令来完成任务了。实际上,cron命令是不应该手工启动的。cron命令在系统启动时就由一个shell脚本自动启动,进入后台(所以不需要使用&符号)。一般的用户没有运行该命令的权限,虽然超级用户可以手工启动cron,不过还是建议将其放到shell脚本中由系统自行启动。

  首先cron命令会搜索/var/spool/cron目录,寻找以/etc/passwd文件中 的用户名命名的crontab文件,被找到的这种文件将载入内存。例如一个用户名为foxy的用户,它所对应的crontab文件就应该是/var/spool/cron/foxy。也就是说,以该用户命名的crontab文件存放在/var/spool/cron目录下面。cron命令还将搜索/etc/crontab文件,这个文件是用不同的格式写成的。cron启动以后,它将首先检查是否有用户设置了crontab文件,如果没有就转入“休眠”状态,释放系统资源。所以该后台进程占用资源极少。它每分钟“醒”过来一次,查看当前是否有需要运行的命令。命令执行结束后,任何输出都将作为邮件发送给crontab的所有者,或者是/etc/crontab文件中MAILTO环境变量中指定的用户。上面简单介绍了一些cron的工作原理,但是cron命令的执行不需要用户干涉;需要用户修改的是crontab中要执行的命令序列,所以下面介绍crontab命令。

ancai 发表于 2002-12-25 23:52:09

你好,我根据你的文章,对自己的问题写了下述的IPCHAINS防火墙,请帮我看看是否有致命的错误好么?谢谢!


题:防火墙要求包含两个子网(10.1.1.0/10.1.2.0)的局域网的全部内网主机都可以使用作为路由的linux服务器(内部地址10.1.1.1,外部地址为200.99.123.1)访问外网,实现HTTP浏览INTERNET,但其中只有一个子网(10.1.2.0)可以使用TELNET来访问外网,而内网中只有10.1.1.20和10.1.2.20两台机器可以使用S MTP访问外网。
答案:刷新所有的ipchains
#!/bin/sh
echo "Starting ipchains rules..."
#Refresh all chains
/sbin/ipchains -F
3.设置WWW包过滤
说明:WWW端口为80,采用tcp协议。
#Define HTTP packets
#Deny the SYN attacks
/sbin/ ipchains –A forward –p tcp –s 0/0 www –d 10.1.0.0/16 –y –j DENY
#Allow www request packets from Intranet clients to www servers
#Allow response from www servers to request Internet clients
/sbin/ ipchains –A forward –p tcp –s 10.1.0.0/16 –d 0/0 www -b –j ACCEPT
4.设置telnet包过滤
说明:telnet端口为21,采用tcp协议。
#Define telnet packets
#Deny the SYN attacks
/sbin/ipchains –A forward –p tcp –s 0/0 telnet –d 10.1.0.0/16 –y –j DENY
#Allow telnet request packets from Intranet clients to Internet bbs server
#Allow telnet response packets from bbs server to Intranet clients
/sbin/ipchains –A forward –p tcp –s 10.1.2.0/24 –d 0/0 telnet -b –j ACCEPT
5.设置smtp包过滤
说明:smtp端口为21,采用tcp协议。
#Define smtp packets
#Deny the SYN attacks
/sbin/ipchains –A forward –p tcp –s 0/0 smtp –d 10.1.0.0/16 –y –j DENY
#Allow smtp request packets from Intranet smtp servers to Intranet email server
#Allow smtp response packets from Internet email server to Intranet smtp servers
/sbin/ ipchains –A forward –p tcp –s 10.1.1.20//24 –d 0/0 smtp -b –j ACCEPT
/sbin/ ipchains –A forward –p tcp –s 10.1.2.20//24 –d 0/0 smtp -b –j ACCEPT
6.设置缺省包过滤规则
说明:除了以上所允许通过的包以外,禁止其他包通过。
#Define all rules on input chain
/sbin/ ipchains –p forward DENY
页: [1]
查看完整版本: 请问在linux里实现防火墙和计划任务的方法,谢谢!