分享
 
 
 

linux常见命令(13)

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

7.5.6 设置原则(默认规则)

我们在前面讨论包是如何通过链的时候,已经解释了当包到达内建链的尾部时会发生什么。这时,链的原则就决定包的命运。只有内建的链(INPUT、OUTPUT和FORWARD)有原则,因为如果包到达用户定义链的尾部会返回到前面的链。

原则可以是ACCEPT或DROP,例如:

# iptables -P FORWARD DROP

8. 使用ipchains和ipfwadm

netflter发布中有ipchains.o和ipfwadm.o模块。把其中一个加载到你的内核(注意:他们和ip_tables.o不兼容)。然后你就可以像以前那样使用ipchains和ipfwadm了。

这在一段时间内仍然被支持。我认为合理的计算方式是 2*(替代发布 - 初始的稳定版本),超过了这个时间,就应当使用替代的稳定版本了。这意味着在Linux 2.6或2.8中对它们的支持很可能被放弃。

9. NAT和包过滤的混合使用

想要做网络地址转换(参见NAT HowTo)和包过滤的已很常见。好消息是他们可以混合起来使用的,而且工作得非常好。

你可以完全忽略你的NAT,来定义你的包过滤。包过滤看见的包的源及目标是“真正”的源和目标。例如,如果你将任何发往1.2.3.4 80端口的包DNAT到10.1.1.1的8080端口。包过滤器看见的是包发往10.1.1.1的8080端口(真正的目的地),而非1.2.3.4 的80端口。同样,你可以忽略伪装:看到的是包的真实外部IP地址(如10.1.1.1),而响应的则返回到那里。

你可以使用'state'匹配扩展,使包过滤器不需要做任何额外的工作,因为无论如何,NAT都会要求连接跟踪。扩展NAT HowTo中简单的伪装例子,以禁止任何来自ppp0接口的新的连接,你可以这样:

#对送至ppp0的包进行伪装

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# 禁止由ppp0进入的新的或不合适的包

iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP

iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP

# 开启IP转发

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

10. iptables和ipchains之间的差别

o 首先,内建链的名称从小写改成了大写,因为现在的INPUT和OUTPUT链只获取指向本地和本地生成的包。他们用来检查所有进入和发送的包。

o '-i'标志现在表示进入接口的意思,而且只适用于INPUT和FORWORD链。FORWORD或OUTPUT链中的规则应该将'-i'改为'-o'。

o TCP和UDP端口现在必须用--source-port或--sport(或者--destination-port/--dport)拼写,而且必须放在'-p tcp'或'-p udp'选项之后,因为TCP或UDP扩展是分别加载的。

o TCP -y 标志现在是 --syn,而且必须在'-p tcp'之后。

o DENY目标现在是DROP.

o 对单个链,可以在列出其工作同时清零。

o 清空内建链同时清除了原则计数器。

o 列出链给出的是一个计数器的微型的快照。

o REJECT和LOG现在是扩展目标,意思是他们是独立的内核模块。

o 链的名称最多可以是31个字符。

o MASQ现在是MASQUERADE而且使用不同的语法。REDRIRECT,在保留相同的名字时,也经历了语法的改变。参见NAT-HOWTO以获取配置它们的更多信息。

o -o选项不再用于将包传递给用户空间设备了(见上面的-i)。现在通过 QUEUE目标传递到用户空间。

o 很可能还有一些我也忘了。

11. 对制定包过滤器的建议

在计算机安全领域中,最明智的办法是阻挡所有东西,然后对需要的开启。这通常称为“凡是没有明确允许的都是禁止的”。我建议这样做如果安全是你最关心的。

不要运行任何你不需要的服务,即使你认为你已经阻碍了对它们的访问。

如果你创建专用防火墙,开始时不运行任何东西,并阻止所有包,然后添加服务并让需要的包通过。

我强调安全:结合tcp-wrappers(对于包过滤器本身的连接),代理(通过包过滤器的连接),路由验证和包过滤。路由验证是如果包来自未预期的接口那么将被删除:例如,如果你的内部网络地址是10.1.1.0/24,而一个包的源地址是你的外部接口,那么它将被丢弃。对一个接口如ppp0来说可以这样:

# echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter

或者对所有已有的或将有的接口:

# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do

# echo 1 > $f

# done

Debian在可能的范围了将这些设为默认。如果你使用非对称路由(如你期望包来自一个其他的方向),你可能需要在这些接口上禁止这一过滤。

记录对于当工作不正常时设置防火墙非常有用,但是在一个作为产品的防火墙上,总是应当将它与'limit'匹配结合,以防止有人充斥你的记录。

我极力推荐对安全系统使用连接追踪:它虽然会造成负担,因为所有连接都被追踪。但是对于控制对你的网络的访问非常有用。如果你的内核没有自动加载而且没有内建,你需要加载'ip_conntrack.o'这个模块。如果想要精确追踪复杂的协议,你需要加载合适的相关模块(如'ip_conntrack_ftp.o')。

# iptables -N no-conns-from-ppp0

# iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT

# iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"

# iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"

# iptables -A no-conns-from-ppp0 -j DROP

# iptables -A INPUT -j no-conns-from-ppp0

# iptables -A FORWARD -j no-conns-from-ppp0

建造一个好的防火墙超越了这个HOWTO的范围,不过我的建议是“一切从严”。请参见Security HOWTO获取更多信息,来测试和探索你的服务器。

all pages ended here.

kingpaul @ 09:50 AM 发表于 linux | 编辑 | 留言 (0) | TrackBack (0)

--

2004年04月22日

Linux一句话精彩问答

瀚海星云 -- Linux精华区文章阅读

发信人: noclouds (景天云飞), 信区: Linux

标 题: Linux一句话精彩问答--2004/03/16更新

发信站: 瀚海星云 (2004年03月21日07:45:16 星期天), 站内信件

编者按:鉴于目前中国Linux的发展现状,90%以上的问题都可以用一句话来回答,这便是本文的初衷。欢迎大家添加自己的“一句话”,收录后注明原始提供者。更详细的文

档,请浏览本版精华区或http://www.douzhe.com/linux/

(注:请对照自己使用的gnu/linux释放版本,因为有的解答并不支持所有版本)

----------------------------网络无关篇--------------------------

0001 修改主机名(bjchenxu)

vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令" hostname 主机名"。无论你是否重启,主机名修改成功了。

0002 Ret Hat Linux启动到文字界面(不启动xwindow)(bjchenxu)

vi /etc/inittab

id:x:initdefault:

x=3:文本方式 x=5:图形方式

0003 linux的自动升级更新问题(hutuworm,NetDC)

对于redhat,在www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有

一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完

成安装。

升级除kernel外的rpm: up2date -u

升级包括kernel在内的rpm: up2date -u -f

Debian跟别的发行版还是有很大的差别的,用Debian做服务器维护更加方便;红帽的升

级其实挺麻烦的,当然,如果你交钱给红帽的话,服务是会不一样的。

Debian下升级软件:

apt-get update

apt-get upgrade

前提:配置好网络和/etc/apt/sources.list,也可以用apt-setup设置。

0004 windows下看linux分区的软件(bjchenxu)

Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip

0005 mount用法(sakulagi)

fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom

ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom

iso文件 mount -o loop /abc.iso /mnt/cdrom

软盘 mount /dev/fd0 /mnt/floppy

USB闪存 mount /dev/sda1 /mnt/cdrom

所有/etc/fstab内容 mount -a

可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.

0006 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu)

将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fsta

b中:

//win_ip/D$ /mnt/d smbfs

defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb23

12 0 0

其中win_ip是你的windows的IP地址;

D$是你的windows里面共享的D盘的共享名;

/mnt/d是要将该分区mount到linux的目录;

win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密

码。

如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。

0007.a 删除名为-a的文件(bjchenxu)

rm ./-a

rm -- -a 告诉rm这是最后一个选项,参见getopt

ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm '{}' \;

0007.b 删除名为\a的文件(bjchenxu)

rm \\a

0007.c 删除名字带的/和‘\0'文件(bjchenxu)

这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件

系统在Mac系统上使用

1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件

2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount

文件系统,

clri清除该目录的inum,fsck,mount,check your lost+found,rename the file

in it.

最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了!

0007.d 删除名字带不可见字符的文件(bjchenxu)

列出文件名并转储到文件:ls -l >aaa

然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式:

vi aaa

[rm -r *******

]

把文件加上执行权限 chmod +x aaa

执行 $aaa

0007.e 删除文件大小为零的文件(bjchenxu)

rm -i `find ./ -size 0`

find ./ -size 0 -exec rm {} \;

find ./ -size 0 | xargs rm -f &

for file in * #自己定义需要删除的文件类型

do

if [ ! -s ${file} ]

then

rm ${file}

echo "rm $file Success!"

fi

done

0008 redhat设置滚轮鼠标(mc1011)

进入X后,选择鼠标的配置,选择wheel mouse(ps/2)就可以了,

如果鼠标表现异常,重启计算机即可。

(或者su, vi /etc/X11/XF86Config, 把PS/2 改成 ImPS/2)

0009 加装xwindow(bjchenxu)

用linux光盘启动,选择升级,然后单独选择包,安装即可

0010 删除linux分区(bjchenxu)

做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后

删除.

0011 如何退出man(bjchenxu)

q

0012 不编译内核,mount ntfs分区(bjchenxu,hutuworm)

原装rh8,未升级或编译内核

1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm

2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm

3. mkdir /mnt/c

4. mount -t ntfs /dev/hda1 /mnt/c

Read only: http://linux-ntfs.sourceforge.net/

Read/Write: http://www.jankratochvil.net/project/captive/

0013 tar 分卷压缩和合并(WongMokin)

以每卷500M为例

tar分卷压缩:tar cvzpf - mytarfile.tar.gz | split -d -b 500m

tar多卷合并:cat x* > mytarfile.tar.gz

0014 使用lilo/grub时找回忘记了的root口令(bjchenxu)

三种办法:

1.在系统进入单用户状态,直接用passwd root去更改

2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:

cd /mnt

mkdir hd

mount -t auto /dev/hdaX(原来/分区所在的分区号) hd

cd hd

chroot ./

passwd root

这样可以搞定

3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同

rh8中

一. lilo

1. 在出现 lilo: 提示时键入 linux single

画面显示 lilo: linux single

2. 回车可直接进入linux命令行

3. #vi /etc/shadow

将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

第一行将类似于

root::......

保存

4. #reboot重启,root密码为空

二. grub

1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e

2. 再次用上下键选中你平时启动linux的那一项(类似于kernel

/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键

3. 修改你现在见到的命令行,加入single,结果如下:

kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

4. 回车返回,然后按b键启动,即可直接进入linux命令行

5. #vi /etc/shadow

将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

第一行将类似于

root::......

保存

6. #reboot重启,root密码为空

0015 使ctrl + alt + del失效(bjchenxu)

vi /etc/inittab

将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了

0016 如何看出redhat的版本是7还是8(hutuworm)

cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue

0017 文件在哪个rpm中(无双)

上www.rpmfind.net上搜,或者rpm -qf 文件名得到

0018 把man或info的信息存为文本文件(bjchenxu)

以 tcsh 为例:

man tcsh | col -b > tcsh.txt

info tcsh -o tcsh.txt -s

0019 利用现存两个文件,生成一个新的文件(bjchenxu)

1. 取出两个文件的并集(重复的行只保留一份)

2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)

3. 删除交集,留下其他的行

1. cat file1 file2 | sort | uniq

2. cat file1 file2 | sort | uniq -d

3. cat file1 file2 | sort | uniq -u

0020 设置com1口,让超级终端通过com1口进行登录(bjchenxu)

确认有/sbin/agetty,编辑/etc/inittab,添加

7:2345:respawn:/sbin/agetty /dev/ttyS0 9600

9600bps是因为联路由器缺省一般都是这种速率,也可以设成

19200、38400、57600、115200

修改/etc/securetty,添加一行:ttyS0,确保root用户能登录

重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了

0021 删除目录下所有文件包括子目录(bjchenxu)

rm -rf 目录名

0022 查看系统信息(bjchenxu)

cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)

cat /proc/interrupts - 中断

cat /proc/ioports - 设备IO端口

cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)

cat /proc/partitions - 所有设备的所有分区

cat /proc/pci - PCI设备的信息

cat /proc/swaps - 所有Swap分区的信息

cat /proc/version - Linux的版本号 相当于 uname -r

uname -a - 看系统内核等信息

0023 去掉多余的回车符(bjchenxu)

sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的

或者 dos2unix filename

0024 切换X桌面(lnx3000)

如果你是以图形登录方式登录linux,那么点击登录界面上的session(任务)即可以选

择gnome和kde。如果你是以文本方式登录,那执行switchdesk gnome或switchdesk kde

,然后再startx就可以进入gnome或kde。

(或者vi ~/.xinitrc,添加或修改成exec gnome-session 或exec startkde,

然后用startx启动X)

0025 通用的声卡驱动程序(lnx3000)

OSS www.opensound.com/ ALSA www.alsa-project.org/

0026 改变redhat的系统语言/字符集(beming/mc1011)

修改 /etc/sysconfig/i18n 文件,如

LANG="en_US",xwindow会显示英文界面,

LANG="zh_CN.GB18030",xwindow会显示中文界面。

还有一种方法

cp /etc/sysconfig/i18n $HOME/.i18n

修改 $HOME/.i18n 文件,如

LANG="en_US",xwindow会显示英文界面,

LANG="zh_CN.GB18030",xwindow会显示中文界面。

这样就可以改变个人的界面语言,而不影响别的用户

(Debian不支持GB18030(RH的zysong字库是有版权的)

现在好像没有Free的GBK和GB18030字库

vi .bashrc

export LANG=zh_CN.GB2312

export LC_ALL=zh_CN.GB2312)

0027 把屏幕设置为90列(bjchenxu)

stty cols 90

0028 使用md5sum文件(bjchenxu)

md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值

是否一致 md5sum –c hashfile

0029 一次解压多个zip文件(bjchenxu)

unzip "*",注意引号不能少

0030 看pdf文件(bjchenxu)

使用xpdf或者安装acrobat reader for linux

0031 查找权限位为S的文件(bjchenxu)

find . -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;

0032 装中文输入法(bjchenxu)

以redhat8为例,xwindow及其终端下的不用说了吧,缺省就安装了,用ctrl-space呼出。

现在讨论纯console,请下载zhcon.gnuchina.org/download/src/zhcon-0.2.1.tar.gz,

放在任一目录中,tar xvfz zhcon-0.2.1.tar.gz, cd zhcon-0.2.1, ./configure,

make, make install。安装结束,要想使用,请运行zhcon,想退出,运行exit。

0033 把弹出的光盘收回来(beike)

#eject -t

0034 cd光盘做成iso文件(弱智)

cp /dev/cdrom xxxx.iso

0035 快速观看开机的硬件检测(弱智)

dmesg | more

0036 查看硬盘的使用情况(bjchenxu)

df -k 以K为单位显示

df -h 以人性化单位显示,可以是b,k,m,g,t..

0037 查看目录的大小(bjchenxu)

du -sh dirname

-s 仅显示总计

-h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以1024为换算单 位, -H以100

0为换算单位。

0038 查找或删除正在使用某文件的进程(wwwzc)

fuser filename

fuser -k filename

0039 安装软件(bjchenxu)

rpm -ivh aaa.rpm

tar xvfz aaa.tar.gz; cd aaa; ./configure; make; make install

0040 字符模式下设置/删除环境变量(bjchenxu)

bash下

设置:export 变量名=变量值

删除:unset 变量名

csh下

设置:setenv 变量名 变量值

删除:unsetenv 变量名

第一頁    上一頁    第13頁/共15頁    下一頁    最後頁
第01頁 第02頁 第03頁 第04頁 第05頁 第06頁 第07頁 第08頁 第09頁 第10頁 
第11頁 第12頁 第13頁 第14頁 第15頁 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有