浏览模式: 标准 | 列表 2012年09月的文章

利用iptables仅允许某IP或者IP段连接

需求:为了保护SSH端口的安全,需要实现该端口仅允许某IP或者IP段连接。

通过linux下的iptables过滤规则即可实现:先写允许连接的规则,再写拒绝连接的规则。软件这样设置也是比较符合逻辑的,如果所连接的IP符合第一条规则则让其通过,如果不在第一条规则内的IP则跳到下一条规则进行匹配。

iptables -A INPUT -s IP -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -j DROP


封单个IP:iptables -I INPUT -s 211.1.1.1 -j DROP

封一个C段IP:iptables -I INPUT -s 211.1.0.0/16 -j DROP

封一个B段IP: iptables -I INPUT -s 211.0.0.0/8 -j DROP


iptables服务启动自运行有三个方法: 

  1. 把它加到/etc/rc.local中。
  2. iptables-save >/etc/sysconfig/iptables 可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。 
  3. service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。

建议选择2与3,更加方便,一般iptables服务会在network服务之前启来,更安全。

替换access数据库中数据的asp脚本代码

asp虽然是比较过时的脚本代码,微软也已经基本抛弃了它,但是因为它的轻便,还是深受很多人的喜爱。

翻阅电脑中找到一份几年前的asp程序和access数据库,闲来无事便想着把数据库中的数据整理一下,居然发现很多需要替换的数据。

网上找了一句sql一句进行替换操作,结果却显示表达式中replace,函数未定义,语句如下:

update table SET content=replace(content,"old","new")

更新table表设定字段content中将old替换为new。

懒人原则,找到最快的解决办法,网上找到一段可用的替换替换access数据库中数据的asp脚本代码如下: 

  • <%
  • Set Conn   = Server.CreateObject("ADODB.Connection")
  • Conn.Open  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("数据库名.mdb")
  • Set rs = Server.Createobject("ADODB.Recordset")
  • sql="Select * from [表名]"
  • rs.open sql,conn,1,3
  • while not rs.eof
  •  rs("字段名")=replace(rs("字段名"),"要被替代的字符串","替代后的字符串")
  •  rs.update
  •  rs.movenext
  • wend
  • rs.close
  • set rs=nothing
  • conn.close
  • set conn=nothing
  • %>

Tags: access, asp, 替换

解决CentOS下wget操作无法resolve(解析)问题

在某个VPS上执行wget操作结果超时,信息如下:

  • wget http://blog.is36.com/
  • --2012-09-15 09:13:14--  http://blog.is36.com/
  • Resolving  blog.is36.com... failed: Temporary failure in name resolution.
  • wget: unable to resolve host address `blog.is36.com'

返回的错误很明显,就是无法解析,出现这个问题与nameserver有关,修改/etc/resolv.conf文件即可。

查看/etc/resolv.conf文件内容如下:

  • nameserver 205.185.112.68
  • nameserver 205.185.112.69

改成OpenDNS的一组解析服务器即可:

  • nameserver 208.67.222.222
  • nameserver 208.67.220.220

Tags: centos, wget, resolve

解决CentOS下yum不能使用的错误(thread.error: can't ...

在某台15美元一年的OpenVZ虚拟化的VPS上安装pptpd服务,结果遭遇yum无法使用的问题。执行yum后的错误代码如下:

  • Loaded plugins: fastestmirror
  • Setting up Remove Process
  • No Match for argument: pptpd
  • Determining fastest mirrors
  • Traceback (most recent call last):
  •   File "/usr/bin/yum", line 29, in ?
  •     yummain.user_main(sys.argv[1:], exit_code=True)
  •   File "/usr/share/yum-cli/yummain.py", line 309, in user_main
  •     errcode = main(args)
  •   File "/usr/share/yum-cli/yummain.py", line 178, in main
  •     result, resultmsgs = base.doCommands()
  •   File "/usr/share/yum-cli/cli.py", line 349, in doCommands
  •     return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
  •   File "/usr/share/yum-cli/yumcommands.py", line 366, in doCommand
  •     return base.erasePkgs(extcmds)
  •   File "/usr/share/yum-cli/cli.py", line 638, in erasePkgs
  •     self._checkMaybeYouMeant(arg, always_output=False)
  •   File "/usr/share/yum-cli/cli.py", line 533, in _checkMaybeYouMeant
  •     matches = self.doPackageLists(patterns=[arg], ignore_case=False)
  •   File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 1632, in doPackageLists
  •     avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
  •   File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 662, in <lambda>
  •     pkgSack = property(fget=lambda self: self._getSacks(),
  •   File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 502, in _getSacks
  •     self.repos.populateSack(which=repos)
  •   File "/usr/lib/python2.4/site-packages/yum/repos.py", line 232, in populateSack
  •     self.doSetup()
  •   File "/usr/lib/python2.4/site-packages/yum/repos.py", line 79, in doSetup
  •     self.ayum.plugins.run('postreposetup')
  •   File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 179, in run
  •     func(conduitcls(self, self.base, conf, **kwargs))
  •   File "/usr/lib/yum-plugins/fastestmirror.py", line 181, in postreposetup_hook
  •     all_urls = FastestMirror(all_urls).get_mirrorlist()
  •   File "/usr/lib/yum-plugins/fastestmirror.py", line 333, in get_mirrorlist
  •     self._poll_mirrors()
  •   File "/usr/lib/yum-plugins/fastestmirror.py", line 376, in _poll_mirrors
  •     pollThread.start()
  •   File "/usr/lib/python2.4/threading.py", line 416, in start
  •     _start_new_thread(self.__bootstrap, ())
  • thread.error: can't start new thread

从下面这个博客中找到了解决方案:

http://www.tuccuay.com/2012/01/%E8%A7%A3%E5%86%B3thread-error-cant-start-new-thread%E9%94%99%E8%AF%AF/

在一些廉价VPS上运行Yum时可能会出 现:”thread.error: can’t start new thread”的错误, 原因就是因为内存太小了,以至于导致在寻找最快镜像的时候内存不足。

发生的原因在于fastestmirror,而禁用fastestmirror就可以解决这个问题,具体的解决办法是将fastestmirror.conf中的enabled=1改成enabled=0。

在登录SSH之后,编辑/etc/yum/pluginconf.d/fastestmirror.conf文件,把enabled从其中的把enabled=1改为enabled=0即可。

执行如下命令一键修改:

sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf

Tags: centos, yum, error