介绍两个很方便的命令,rz和sz,这两个命令能在你使用Xshell SecureCRT登录时,执行rz可以上传文件到服务器,执行sz file可以下载文件到客户端,putty不支持这两个命令。 继续阅读Xshell SecureCRT rz sz上传下载命令
作者:Specs
virtualbox host-only网络设置
经过以上三步的设置,宿主机可以连接虚拟机,虚拟机也可以上网了。
防止端口扫描shell脚本
网上有现在的防端口工具,如psad、portsentry,但觉得配置有点麻烦,且服务器不想再装一个额外的软件。所以自己就写了个shell脚本实现这个功能。基本思路是:使用iptables的recent模块记录下在60秒钟内扫描超过10个端口的IP,并结合inotify-tools工具实时监控iptables的日志,一旦iptables日志文件有写入新的ip记录,则使用iptables封锁源ip,起到了防止端口扫描的功能。 继续阅读防止端口扫描shell脚本
远程密令临时开启ssh端口
linux服务器,我们一般是通过ssh通道远程管理,这就需要我们开启ssh端口,如22。但开启端口有被暴力破解的风险,你会说可以设置复杂的密码或使用证书避免。就算破解不了密码,但openssh也可能会有漏洞,你会说可以更改ssh端口,但还是有可能被扫描出来。还有一种选择,我们可以只允许指定IP访问ssh,通过vpn登录管理服务器,但局限很明显,万一紧急情况vpn登录不上去了怎么办。下面给出一种个人觉得比较满意的解决方案,即使用iptables的recent模块,通过密令临时开启ssh端口。当然,密令需要保管好,防止外泄。
1、iptables规则设定
- #指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入sshopen列表。
- iptables -A INPUT -p icmp –icmp-type 8 -m length –length 78 -m recent –set –name sshopen –rsource -j ACCEPT
- #检查sshopen列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。
- iptables -A INPUT -p tcp –dport 22 –syn -m recent –rcheck –seconds 15 –name sshopen –rsource -j ACCEPT
2、临时开启ssh端口密令
- linux下:ping -s 50 host
- windows下:ping -l 50 host
3、我目前使用的iptables规则
- -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
- -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
- -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
- -A INPUT -p tcp -m tcp –dport 123 -j ACCEPT
- -A INPUT -p icmp -m icmp –icmp-type 8 -m length –length 50 -m recent –set –name sshopen –rsource -j ACCEPT
- -A INPUT -p tcp -m tcp –dport 22 –syn -m recent –rcheck –seconds 15 –name sshopen –rsource -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
- -A INPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT
- -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
- -A OUTPUT -o lo -j ACCEPT
- -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
- -A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT
- -A OUTPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
- -A OUTPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT
tar增量备份
现在我们来展示一个使用tar工具来增量备份的例子。
一、增量备份
1、新建backup目录,里面新建file1,file2,file3文件
- mkdir backup/
- touch backup/{file1,file2,file3}
2、进行完整备份
- tar -g tarinfo -czf backup-full.tar.gz backup/
3、新增文件到backup
- touch backup/file4
4、进行增量备份
- tar -g tarinfo -czf backup-incre1.tar.gz backup/
5、查看增量备份文件
- tar -ztf backup-incre1.tar.gz
二、进行还原
1、删除backup目录
- rm -rf backup/
2、执行还原操作
- tar xzf backup-full.tar.gz
- tar xzf backup-incre1.tar.gz
现在已经完成tar的还原操作。其它tar的增量备份只需要指定-g参数,tarinfo文件则是用来记录备份的一些信息。
ubuntu安装mongodb数据库服务器
1、mongodb安装
- sudo apt-key adv –keyserver keyserver.ubuntu.com –recv 7F0CEB10
- sudo echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" > /etc/apt/sources.list.d/10gen.list
- sudo apt-get update
- sudo apt-get install mongodb-10gen
2、mongodb管理
- 启动:sudo /etc/init.d/mongodb start
- 关闭:sudo /etc/init.d/mongodb stop
ubuntu网络配置
一、dhcp自动获取IP
编辑/etc/network/interfaces
- auto lo # 开机自动激lo接口
- iface lo inet loopback # 配置lo接口为环回口
- # The primary network interface (配置主网络接口)
- auto eth0 #开机自动激活eth0接口
- iface eth0 inet dhcp #配置eth0接口为DHCP自动获取
重启网络:
- sudo /etc/init.d/networking restart
二、配置静态IP
编辑/etc/network/interfaces
- # The loopback network interface(配置环回口)
- auto lo # 开机自动激lo接口
- iface lo inet loopback # 配置lo接口为环回口
- # The primary network interface (配置主网络接口)
- auto eth0 #开机自动激活eth0接口
- iface eth0 inet static #配置eth0接口为静态设置IP地址
- address 10.16.3.99
- netmask 255.255.255.0
- gateway 10.16.3.1
重启网络:
- sudo /etc/init.d/networking restart
ubuntu 11.10 安装apache2 tomcat6(ajp)
一、安装apache2
- sudo apt-get install apache2
启动两个代理模块:
- sudo a2enmod proxy_ajp
- sudo a2enmod proxy
二、安装tomcat6
- sudo apt-get install tomcat6
三、安装sun-java6-jdk
- sudo apt-get install python-software-properties
- sudo add-apt-repository ppa:ferramroberto/java
- sudo apt-get update
- sudo apt-get install sun-java6-jdk
四、整合配置
1、打开/etc/apache2/sites-enabled/000-default,增加:
- ProxyPass / ajp://127.0.0.1:8009/
- ProxyPassReverse / ajp://127.0.0.1:8009/
2、打开/etc/tomcat6/server.xml,找到:
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true">
后面添加如下内容:
- <Context path="" docBase="/var/www" debug="0" reloadable="true" />
3、设置环境变量
- JAVA_HOME=/usr/lib/jvm/java-6-sun
- sudo echo "JAVA_HOME=/usr/lib/jvm/java-6-sun" >>/etc/environment
- /etc/environment
4、添加tomcat ajp支持
在/etc/tomcat6/server.xml中找到:
- <!–
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- –>
删除注释。
五、测试
可以下载jsp的探针测试:
http://devops.webres.wang/wp-content/uploads/2012/11/p.jsp.zip
ubuntu安装apache2 mysql5 php5
1、安装apache2
- apt-get install -y apache2
2、安装mysql5
- apt-get install -y mysql-server
3、安装php5
- apt-get install -y php5 libapache2-mod-php5 php5-mysql
4、安装更多php5模块
- apt-cache search ^php5
得到以下列表模块:
[……]
php5-mcrypt – MCrypt module for php5
php5-cli – command-line interpreter for the php5 scripting language
php5-common – Common files for packages built from the php5 source
php5-curl – CURL module for php5
php5-gd – GD module for php5
[……]
执行安装命令:
- apt-get install -y php5-mcrypt php5-cli php5-common php5-curl php5-gd
5、管理命令
apache2:/etc/init.d/apache2 start(stop|restart|reload)
mysql: /etc/init.d/mysql start(stop|restart|reload)
6、配置文件
apache2:/etc/apache2
php5:/etc/php5/apache2
mysql5:/etc/mysql/
Apt和dpkg快速参考
apt-cache search # ——(package 搜索包)
apt-cache show #——(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ——(package 安装包)
sudo apt-get install # —–(package – – reinstall 重新安装包)
sudo apt-get -f install # —–(强制安装?#”-f = –fix-missing”当是修复安装吧…)
sudo apt-get remove #—–(package 删除包)
sudo apt-get remove – – purge # ——(package 删除包,包括删除配置文件等)
sudo apt-get autoremove –purge # —-(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
sudo apt-get update #——更新源
sudo apt-get upgrade #——更新已安装的包
sudo apt-get dist-upgrade # ———升级系统
sudo apt-get dselect-upgrade #——使用 dselect 升级
apt-cache depends #——-(package 了解使用依赖)
apt-cache rdepends # ——(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧…)
sudo apt-get build-dep # ——(package 安装相关的编译环境)
apt-get source #——(package 下载该包的源代码)
sudo apt-get clean && sudo apt-get autoclean # ——–清理下载文件的存档 && 只清理过时的包
sudo apt-get check #——-检查是否有损坏的依赖
apt-get install
下载 以及所有倚赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。
apt-get remove [–purge]
移除 以及任何倚赖这个包裹的其它包裹。
–purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。
apt-get update
升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 后,必须执行。
apt-get upgrade [-u]
升级所以已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 hold。apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思)。请看下文如何手动设置包裹为 hold。我建议同时使用 ‘-u’ 选项,因为这样你就能看到哪些包裹将会被升级。
apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系。因此具有一定的危险性。
apt-cache search
搜索满足 的包裹和描述。
apt-cache show
显示 的完整的描述。
apt-cache showpkg
显示 许多细节,以及和其它包裹的关系。
dselect
console-apt
aptitude
gnome-apt
APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。
普通 Dpkg 用法
dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。
dpkg -c
列出 的内容。
dpkg -I
从 中提取包裹信息。
dpkg -r
移除一个已安装的包裹。
dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:
dpkg-reconfigure –frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)
echo ” hold” | dpkg –set-selections
设置 的状态为 hlod (命令行方式)
dpkg –get-selections “”
取的 的当前状态 (命令行方式)
支持通配符,如:
Debian:~# dpkg –get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold
例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:
方法一:
Debian:~# echo “gaim hold” | dpkg –set-selections
然后用下面命令检查一下:
Debian:~# dpkg –get-selections “gaim”
gaim hold
现在的状态标志是 hold,就不能被升级了。
如果想恢复怎么办呢?
Debian:~# echo “gaim install” | dpkg –set-selections
Debian:~# dpkg –get-selections “gaim”
gaim install
这时状态标志又被重置为 install,可以继续升级了。
同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。
有时你会发现有的软件状态标志是 purge,不要奇怪。
如:事先已经安装了 amsn,然后把它卸了。
apt-get remove –purge amsn
那么状态标志就从 install 变成 purge。
方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存
dpkg -S
在包裹数据库中查找 ,并告诉你哪个包裹包含了这个文件。(注:查找的是事先已经安装的包裹)
转自:http://wiki.ubuntu.org.cn/Apt%E5%92%8Cdpkg%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83