rpm是很多linux发行版使用的包管理器。本文将简单总结下其常用方法。
1. 使用rpm2cpio,cpio提取rpm包的中的特定文件
有些时候,我们需要提取rpm包中的一些文件,通过如下方法可以快速提取
首先查询rpm包中的文件
anaconda-11.4.1.62.tar.bz2
anaconda.spec
我们需要提取 anaconda-11.4.1.62.tar.bz2 这个文件,执行下面的命令,提取到当前目录
注意: cpio参数后的文件路径 "anaconda-11.4.1.62.tar.bz2" 必须和前面查询的相对路径一样,否则提取不成功。
相关知识说明
cpio参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包
2. rpm 数据库修复的方法
第一种方法:
当进行包安装、升级、卸载等操作时,可能损坏RPM DB,需要通过--rebuild参数来修复RPM DB,但有时会碰到这样的问题:
rpmdb: fatal region error detected; run recovery
error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index
此时需要手动删除/var/lib/rpm目录下的类似 __db.* 的文件
rm -fr /var/lib/rpm/__db*
然后再运行 rpm -v --rebuilddb 即可.
第二种方法 :
# mv rpm rpm.old
# mkdir rpm
# rpmdb --initdb
# cp rpm.old/Packages rpm
# rpmdb --rebuilddb
以上2中方法都可以修复rpm db,请参考使用!
我们经常发现,linux系统经常会把第一块网卡认出来为eth1,而第二块网卡为eth0,而在服务器的硬件标示不一样,这在我们的服务器管理过程中可能会产生错觉。
可以通过nameif命令来重新命名网络接口在系统中的名称。
1. 使用命令临时指定网卡名称
以root用户执行如下命令,就会将mac地址为 00:13:72:52:D9:48 的网卡名称改成eth0
2. 通过配置文件永久改变(重启后)也生效
将配置写进配置文件
在网卡配置文件中加入如下内容(通常是/etc/sysconfig/network-scripts/ifcfg-eth0)
修改完成后,重启服务器,mac地址为 00:13:72:52:D9:48 的网卡名称将会被系统识别为eth0。
本文转自:http://www.51know.info/system_base/mactab.html
文章作者:北方人
netstat -anp |grep 1
跳转内网
-A PREROUTING -d 222.66.99.201 -p tcp -m tcp --dport 8800 -j DNAT --to-destination 192.168.84.46:3389
-A POSTROUTING -d 192.168.84.46 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.84.48
-A PREROUTING -p tcp -d 外网IP --dport 8800 -j DNAT --to $内网IP:3389
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to WINIP:3389
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 内网卡的IP
端口跳转实例操作
-A PREROUTING -i eth1 -p tcp -m state --state NEW -m tcp --dport 80 -j REDIRECT --to-ports 8080
开放端口实例操作
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 6060 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
连续打开端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7070:7079 -j ACCEPT
将80端口指向到8080端口上的IPTABLES文件
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
也可以这样:
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s
限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables 屏蔽单个IP
iptables -I INPUT -s 203.231.1.191 -p tcp --dport 22 -j DROP
iptables -A FORWARD -d 218.241.156.95 -j DROP
iptables-save > /etc/sysconfig/iptables
iptables -A INPUT --dport 21 -s 219.142.192.187 -j ACCEPT //只允许一个IP访问
# Generated by iptables-save v1.2.8 on Tue Jan 23 14:49:09 2007
*nat
:PREROUTING ACCEPT [133:37589]
:POSTROUTING ACCEPT [26:2387]
:OUTPUT ACCEPT [26:2387]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
# Completed on Tue Jan 23 14:49:09 2007
# Generated by iptables-save v1.2.8 on Tue Jan 23 14:49:09 2007
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [62834:18310016]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Jan 23 14:49:09 2007
# 只允许211.93.113.33地址的用户访问 ftp 服务器(21 端口):
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -s 211.93.113.33 i eth1 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
#
封杀QQGAME:iptables -I FORWARD -m string --algo bm --string "qqgame" -j DROP
封杀QQ宠物:iptables -I FORWARD -m string --algo bm --string "qqpet" -j DROP
1)针对所有端口的完全封锁; iptables -I INPUT -s 65.55.44.100 -j DROP; (封锁65.55.44.100对本机所有端口的访问)
iptables -I OUTPUT -d 65.55.44.100 -j DROP; (封锁本机对65.55.44.100所有端口的访问)
2)针对特定协议及端口的完全封锁;iptables -I INPUT -p TCP --dport 25 -j DROP; (封锁25端口的INPUT,本机将不能接收邮件)
iptables -I OUTPUT -p TCP --dport 25 -j DROP; (封锁25端口的OUTPUT,本机将不能发送邮件)
iptables -I INPUT -s 65.55.44.100 -p TCP --dport 25 -j DROP; (封锁65.55.44.100对本机25端口的访问)
3)针对特定协议的部分封锁; #禁止所有TCP连接,只允许某些IP可以通过TCP访问本机:
iptables -I INPUT -p TCP -j DROP; (禁止所有通过TCP协议进入本机的连线)
iptables -I INPUT -s 137.189.3.8 -p TCP -j ACCEPT; (允许137.189.3.8通过TCP协议进入本机)
iptables -I INPUT -s ! 137.189.3.8 -p TCP -j DROP; (只允许137.189.3.8进入,等效于上两句,但只能开放一个IP)
#开放所有TCP连接,但禁止某 些IP可以通过TCP访问本机:
iptables -I INPUT -p TCP -j ACCEPT; (允许所有通过TCP协议进入本机的连线)
iptables -I INPUT -s 137.189.3.8 -p TCP -j DROP; (禁止137.189.3.8通过TCP协议进入本机)
iptables -I INPUT -s ! 137.189.3.8 -p TCP -j ACCEPT; (等效于前两句,但只能禁止一个IP)
4)针对特定协议及端口的部分封锁; #开放TCP连接80端口,但禁止某些IP通过TCP访问80端口:
iptables -I INPUT -p TCP --dport 80 -j ACCEPT; (允许所有IP对本机80端口的访问)
iptables -I INPUT -s 210.245.191.162 -p TCP --dport 80 -j DROP; (禁止210.245.191.162对80端口的访问)
iptables -I INPUT -s ! 210.245.191.162 -p TCP --dport 80 -j ACCEPT; (等效于前两句,但只能禁止一个IP)
#禁止TCP连接80端口,只开放某些IP通过TCP访问80端口:
iptables -I INPUT -p TCP --dport 80 -j DROP; (禁止所有IP对本机80端口的访问)
iptables -I INPUT -s 210.245.191.162 -p TCP --dport 80 -j ACCEPT; (允许210.245.191.162对80端口的访问)
iptables -I INPUT -s ! 210.245.191.162 -p TCP --dport 80 -j DROP; (等效于前两句,但只能开放一个IP进入)
#禁止本机通过TCP的80端口浏览外部网站,只允许访问203.194.162.10网站:
iptables -I OUTPUT -p tcp --dport 80 -j DROP; (封锁80端口的OUTPUT,本机将不能浏缆外部网站)
iptables -I OUTPUT -p tcp -d 203.194.162.10 --dport 80 -j ACCEPT; (允许本机访问203.194.162.10的80端口)
iptables -I OUTPUT -p tcp -d ! 203.194.162.10 --dport 80 -j DROP; (等效于前两句,但只能允许访问一个IP)
sysctl -w net.ipv4.icmp_echo_ignore_all=1(禁ping)
开启转发和映射
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.156:22
记得把要转发的机器的网关指定到转发机器
手动加网关
route add default gw xxx.xxx.xxx.xxx
您可能感兴趣的文章:
iptables 日志维护的方法分享
解析 iptables常用规则设置
iptables防火墙之limit限制方法分享
linux下关闭iptables防火墙及selinux的方法
使用iptables屏蔽IP段的方法举例
配置 iptables 静态防火墙
iptables实现路由转发的例子
iptables防火墙配置一例
iptables配置实例详解
一个实用的iptables shell脚本
linux iptables 开启关闭端口的方法
linux iptables入门教程