virtualbox host-only网络设置

  • 1、打开virtualbox,设置虚拟机的网络连接方式为host-only。
  • 2、在宿主机器的网卡上,如本地连接,右键属性,切换到共享,勾选允许共享网络,这样虚拟机才能可能连接互联网,这时VirtualBox Host-Only Network虚拟网卡ip会设置为192.168.137.1。
  • 3、开启虚拟机,设置虚拟机的网络的ip为192.168.137.x,子掩码255.255.255.0,网关192.168.137.1。
  • 经过以上三步的设置,宿主机可以连接虚拟机,虚拟机也可以上网了。

    防止端口扫描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规则设定

    1. #指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入sshopen列表。
    2. iptables -A INPUT -p icmp –icmp-type 8 -m length –length 78 -m recent –set –name sshopen –rsource -j ACCEPT
    3. #检查sshopen列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。
    4. iptables -A INPUT -p tcp –dport 22 –syn -m recent –rcheck –seconds 15 –name sshopen –rsource -j ACCEPT

    2、临时开启ssh端口密令

    1. linux下:ping -s 50 host
    2. windows下:ping -l 50 host

    3、我目前使用的iptables规则

    1. -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    2. -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
    3. -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
    4. -A INPUT -p tcp -m tcp –dport 123 -j ACCEPT
    5. -A INPUT -p icmp -m icmp –icmp-type 8 -m length –length 50 -m recent –set –name sshopen –rsource -j ACCEPT
    6. -A INPUT -p tcp -m tcp –dport 22 –syn -m recent –rcheck –seconds 15 –name sshopen –rsource -j ACCEPT
    7. -A INPUT -i lo -j ACCEPT
    8. -A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
    9. -A INPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT
    10. -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    11. -A OUTPUT -o lo -j ACCEPT
    12. -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
    13. -A OUTPUT -p tcp -m tcp –dport 443  -j ACCEPT
    14. -A OUTPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT
    15. -A OUTPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT

    参考:http://blog.onovps.com/archives/iptables-recent.html

    tar增量备份

    现在我们来展示一个使用tar工具来增量备份的例子。

    一、增量备份

    1、新建backup目录,里面新建file1,file2,file3文件

    1. mkdir backup/
    2. touch backup/{file1,file2,file3}

    2、进行完整备份

    1. tar -g tarinfo -czf backup-full.tar.gz backup/

    3、新增文件到backup

    1. touch backup/file4

    4、进行增量备份

    1. tar -g tarinfo -czf backup-incre1.tar.gz backup/

    5、查看增量备份文件

    1. tar -ztf backup-incre1.tar.gz

    二、进行还原

    1、删除backup目录

    1. rm -rf backup/

    2、执行还原操作

    1. tar xzf backup-full.tar.gz
    2. tar xzf backup-incre1.tar.gz

    现在已经完成tar的还原操作。其它tar的增量备份只需要指定-g参数,tarinfo文件则是用来记录备份的一些信息。

    ubuntu安装mongodb数据库服务器

    1、mongodb安装

    1. sudo apt-key adv –keyserver keyserver.ubuntu.com –recv 7F0CEB10
    2. sudo echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" > /etc/apt/sources.list.d/10gen.list
    3. sudo apt-get update
    4. sudo apt-get install mongodb-10gen

    2、mongodb管理

    1. 启动:sudo /etc/init.d/mongodb start
    2. 关闭:sudo /etc/init.d/mongodb stop

    ubuntu网络配置

    一、dhcp自动获取IP

    编辑/etc/network/interfaces

    1. auto lo                                       # 开机自动激lo接口
    2. iface lo inet loopback                        # 配置lo接口为环回口
    3. # The primary network interface (配置主网络接口)
    4. auto eth0                                     #开机自动激活eth0接口
    5. iface eth0 inet dhcp                          #配置eth0接口为DHCP自动获取

    重启网络:

    1. sudo /etc/init.d/networking restart

    二、配置静态IP

    编辑/etc/network/interfaces

    1. # The loopback network interface(配置环回口)
    2.   auto lo                                       # 开机自动激lo接口
    3.   iface lo inet loopback                        # 配置lo接口为环回口
    4.   # The primary network interface (配置主网络接口)
    5.   auto eth0                                     #开机自动激活eth0接口
    6.   iface eth0 inet static                        #配置eth0接口为静态设置IP地址
    7.   address 10.16.3.99
    8.   netmask 255.255.255.0
    9.   gateway 10.16.3.1

    重启网络:

    1. sudo /etc/init.d/networking restart

    ubuntu 11.10 安装apache2 tomcat6(ajp)

    一、安装apache2

    1. sudo apt-get install apache2

    启动两个代理模块:

    1. sudo a2enmod proxy_ajp
    2. sudo a2enmod proxy

    二、安装tomcat6

    1. sudo apt-get install tomcat6

    三、安装sun-java6-jdk

    1. sudo apt-get install python-software-properties
    2. sudo add-apt-repository ppa:ferramroberto/java
    3. sudo apt-get update
    4. sudo apt-get install sun-java6-jdk

    四、整合配置

    1、打开/etc/apache2/sites-enabled/000-default,增加:

    1. ProxyPass / ajp://127.0.0.1:8009/
    2. ProxyPassReverse / ajp://127.0.0.1:8009/

    2、打开/etc/tomcat6/server.xml,找到:

    1. <Host name="localhost" appBase="webapps"
    2.        unpackWARs="true" autoDeploy="true">

    后面添加如下内容:

    1. <Context path="" docBase="/var/www" debug="0" reloadable="true" />

    3、设置环境变量

    1. JAVA_HOME=/usr/lib/jvm/java-6-sun
    2. sudo echo "JAVA_HOME=/usr/lib/jvm/java-6-sun" >>/etc/environment
    3. /etc/environment

    4、添加tomcat ajp支持
    在/etc/tomcat6/server.xml中找到:

    1. <!–
    2.     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    3.     –>

    删除注释。

    五、测试

    可以下载jsp的探针测试:
    http://devops.webres.wang/wp-content/uploads/2012/11/p.jsp.zip

    ubuntu安装apache2 mysql5 php5

    1、安装apache2

    1. apt-get install -y apache2

    2、安装mysql5

    1. apt-get install -y mysql-server

    3、安装php5

    1. apt-get install -y php5 libapache2-mod-php5 php5-mysql

    4、安装更多php5模块

    1. 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
    [……]

    执行安装命令:

    1. 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