Posts Tagged ‘Linux’

DirectAdmin ProFTPD 上传下载大小限制问题

星期六, 七月 24th, 2010

DirectAdmin ProFTPD 上传下载大小限制问题

因为有运营一个测试中的中文免费空间网站
发现有的是拿来备份用的
几个G的文件在上传 郁闷

查了下ProFTPD的docs文档
发现了不少高级参数
发现自己还是啥都不会啊…. (全文 …)

Linux系统分区 『建议』

星期六, 七月 17th, 2010

Linux系统分区
这个看什么情况下
我看美国的机房给服务器分区 都是差不多的

/boot  启动分区 这个建议独立出来 修复系统什么的时候方便很多
/tmp  如果是跑web服务器 这个建议分出来 大小为1G或者2G
/             这个是剩余的
/home  这个是网站文件存放的位置 部分人可能习惯放在 /var/www/html里
但是安装cPanel或者directadmin 目录归属都是/home  所以还是建议放在这里
/var  这个下级文件夹 默认存放mysql数据库的 不建议移动

这个要根据实际需求
这个只能作为一个建议而已….

route 命令 Linux 内核路由表维护 『详细版』

星期一, 三月 29th, 2010

使用下面的 route 命令可以查看 Linux 内核路由表

# route
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

route 命令的输出项说明

输出项 说明
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:
  U — 路由是活动的
  H — 目标是一个主机
  G — 路由指向网关
  R — 恢复动态路由产生的表项
  D — 由路由的后台程序动态地安装
  M — 由路由的后台程序修改
  ! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 路由表项对应的输出接口

3 种路由类型

主机路由

主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。

Destination    Gateway       Genmask        Flags     Metric    Ref    Use    Iface
-----------    -------     -------            -----     ------    ---    ---    -----
10.0.0.10     192.168.1.1    255.255.255.255   UH       0    0      0    eth0

网络路由

网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。

Destination    Gateway       Genmask      Flags    Metric    Ref     Use    Iface
-----------    -------     -------         -----    -----   ---    ---    -----
192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0

默认路由

当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。

Destination    Gateway       Genmask    Flags     Metric    Ref    Use    Iface
-----------    -------     ------- -----      ------    ---    ---    -----
default       192.168.1.1     0.0.0.0    UG       0        0     0    eth0

配置静态路由

route 命令

设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:

# route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

  • add : 添加一条路由规则
  • del : 删除一条路由规则
  • -net : 目的地址是一个网络
  • -host : 目的地址是一个主机
  • target : 目的网络或主机
  • netmask : 目的地址的网络掩码
  • gw : 路由数据包通过的网关
  • dev : 为路由指定的网络接口

route 命令使用举例

添加到主机的路由

# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40

添加到网络的路由

# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1

添加默认路由

# route add default gw 192.168.1.1

删除路由

# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1

设置包转发

在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。

# sysctl -w net.ipv4.ip_forward=1

这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

用户还可以使用如下的命令查看当前系统是否支持包转发。

# sysctl  net.ipv4.ip_forward

Linux的服务器安全

星期日, 一月 24th, 2010

玩了一段时间linux
遇到不少入侵和攻击的情况 但是都解决了
其实linux系统的安全性 真的不错
可能没遇到高手来搞我吧

如果大家了解了linux的入侵思路
针对思路来解决安全问题 就事半功倍了

主要安全隐患体现在
第一个
/tmp  这个缓存的目录里
可以看一些webshell   我收集了10多个俄罗斯和美国圈子里 商业的vip webshell
在市场上出售的这些
每个都测试过 大部分都是针对/tmp 写文件进行执行 来进行提权操作的
另外就是perl的安全 遇到过2次 利用perl 写/tmp 利用httpd进行服务器ddos的情况
这个在web服务器上经常遇到 默认生成的虚拟主机用户和组 是可运行apache默认运行组的权限
可执行cgi 和 pl  进入写/tmp的操作 
这个最简单的解决办法就是在fstab里 设置/tmp 只有读写权限 没有执行权限
这样 就是用户被入侵 上传了再多的webshell 无法执行 也是白忙活
大家可以尝试一下 设置无执行权限后  在下个需要编译安装的东西
看看编译 是不是提示错误 执行也会提示错误 显示无权限

第二个 mysql数据库
这个遇到过1次   这东西默认设置为禁止外部调用
只运行本地调用 就是localhost 127.0.0.1
内部可以使用 这样差不多就解决大部分安全问题了
注意要删除掉默认生成的root等账户 那个可能引起各种安全问题

第三个 ssh暴力破解和欺骗
这个关闭掉一些旧的ssh协议 生成一个密匙为自己的
即可解决大部分问题
对于暴力破解的 使用防火墙来保护 设置为尝试多少次失败后 ip锁定即可

第四个 php的安全问题
这个问题可能是最严重 也是最容易被忽略的
因为一些webshell 都是先入侵网站 上传webshell才能进行下一步的入侵
so 应该特别注意
enable_dl   =  默认为on 应该设置为off  很多都是这个导致内存溢出
disable_functions =  关闭一些危险的函数
这些都是不需要使用的
show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open,
建议大家安装 Suhosin
http://www.hardened-php.net/suhosin/
这个是一个php安全代码扫描的东西
Suhosin是php增强型安全补丁,可以编译到静态内核中,也可以编译成php动态扩展。
这个可以在一定的情况下 可以增强php的安全性能

第五个 bind8-9的安全
这个一般应用不建议安装 最近几年爆出不少漏洞
建议购买其他公司的商业dns解析服务

其他待续

最后建议一点 防火墙安全一下 是没坏处的

Linux Nginx 信号类型

星期一, 八月 3rd, 2009

1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联.   
2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出   
3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号.   
4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段. 堆栈溢出时也有可能产生这个信号.   
5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用.   
6) SIGABRT 程序自己发现错误并调用abort时产生.   
7) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.   
8) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长的整数, 但其地址不是4的倍数.   
9) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误.   
10) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.    (全文 …)