2014年7月27日星期日

ubuntu 14.04 的 dns nameserver

ubuntu 14.04 的DNS设置不能再用 /etc/resolv.conf 来管理


If you are using ubuntu 14.04, you may find you can not setting dns on your /etc/resolv.conf
This is because ubuntu using resolvconf to manage the dns setting, every times system boot, resolvconf will regenerate resolv.conf file.

But there always have way to do this.
vim /etc/resolvconf/resolv.conf.d/head  

在最新的ubuntu 14.04中,/etc/resolv.conf 在系统重启之后,会被重新生成,这样你原来配置的DNS就消失了,但是,你可以设置

Linux iptables

http://vbird.dic.ksu.edu.tw/linux_server/0250simple_firewall_3.php#netfilter_chain

Linux 的 iptables 至少就有三个表格,包括管理本机进出的 filter 、管理后端主机 (防火墙内部的其他计算机) 的 nat 、管理特殊旗标使用的 mangle (较少使用) 。更有甚者,我们还可以自定义额外的链呢! 真是很神奇吧!每个表格与其中链的用途分别是这样的:
  • filter (过滤器):主要跟进入 Linux 本机的封包有关,这个是预设的 table 喔!
    • INPUT:主要与想要进入我们 Linux 本机的封包有关;
    • OUTPUT:主要与我们 Linux 本机所要送出的封包有关;
    • FORWARD:这个咚咚与 Linux 本机比较没有关系, 他可以『转递封包』到后端的计算机中,与下列 nat table 相关性较高。
  • nat (地址转换):是 Network Address Translation 的缩写, 这个表格主要在进行来源与目的之 IP 或 port 的转换,与 Linux 本机较无关,主要与 Linux 主机后的局域网络内计算机较有相关。
    • PREROUTING:在进行路由判断之前所要进行的规则(DNAT/REDIRECT)
    • POSTROUTING:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)
    • OUTPUT:与发送出去的封包有关
  • mangle (破坏者):这个表格主要是与特殊的封包的路由旗标有关, 早期仅有 PREROUTING 及 OUTPUT 链,不过从 kernel 2.4.18 之后加入了 INPUT 及 FORWARD 链。 由于这个表格与特殊旗标相关性较高,所以像咱们这种单纯的环境当中,较少使用 mangle 这个表格。

如果你在安装的时候选择没有防火墙的话,那么 iptables 在一开始的时候应该是没有规则的,不过, 可能因为你在安装的时候就有选择系统自动帮你建立防火墙机制,那系统就会有默认的防火墙规则了! 无论如何,我们先来看看目前本机的防火墙规则是如何吧!
[root@www ~]# iptables [-t tables] [-L] [-nv]
选项与参数:
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter
-L :列出目前的 table 的规则
-n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多!
-v :列出更多的信息,包括通过该规则的封包总位数、相关的网络接口等

范例:列出 filter table 三条链的规则
[root@www ~]# iptables -L -n
Chain INPUT (policy ACCEPT)   <==针对 INPUT 链,且预设政策为可接受
target  prot opt source     destination <==说明栏
ACCEPT  all  --  0.0.0.0/0  0.0.0.0/0   state RELATED,ESTABLISHED <==第 1 条规则
ACCEPT  icmp --  0.0.0.0/0  0.0.0.0/0                             <==第 2 条规则
ACCEPT  all  --  0.0.0.0/0  0.0.0.0/0                             <==第 3 条规则
ACCEPT  tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:22      <==以下类推
REJECT  all  --  0.0.0.0/0  0.0.0.0/0   reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)  <==针对 FORWARD 链,且预设政策为可接受
target  prot opt source     destination
REJECT  all  --  0.0.0.0/0  0.0.0.0/0   reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)  <==针对 OUTPUT 链,且预设政策为可接受
target  prot opt source     destination

范例:列出 nat table 三条链的规则
[root@www ~]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
在上表中,每一个 Chain 就是前面提到的每个链啰~ Chain 那一行里面括号的 policy 就是预设的政策, 那底下的 target, prot 代表什么呢?
  • target:代表进行的动作, ACCEPT 是放行,而 REJECT 则是拒绝,此外,尚有 DROP (丢弃) 的项目!
  • prot:代表使用的封包协议,主要有 tcp, udp 及 icmp 三种封包格式;
  • opt:额外的选项说明
  • source :代表此规则是针对哪个『来源 IP』进行限制?
  • destination :代表此规则是针对哪个『目标 IP』进行限制?
在输出结果中,第一个范例因为没有加上 -t 的选项,所以默认就是 filter 这个表格内的 INPUT, OUTPUT, FORWARD 三条链的规则啰。若针对单机来说,INPUT 与 FORWARD 算是比较重要的管制防火墙链, 所以你可以发现最后一条规则的政策是 REJECT (拒绝) 喔!虽然 INPUT 与 FORWARD 的政策是放行 (ACCEPT), 不过在最后一条规则就已经将全部的封包都拒绝了!
不过这个指令的观察只是作个格式化的查阅,要详细解释每个规则会比较不容易解析。举例来说, 我们将 INPUT 的 5 条规则依据输出结果来说明一下,结果会变成:
  1. 只要是封包状态为 RELATED,ESTABLISHED 就予以接受
  2. 只要封包协议是 icmp 类型的,就予以放行
  3. 无论任何来源 (0.0.0.0/0) 且要去任何目标的封包,不论任何封包格式 (prot 为 all),通通都接受
  4. 只要是传给 port 22 的主动式联机 tcp 封包就接受
  5. 全部的封包信息通通拒绝

2014年7月26日星期六

Ubuntu 开机 waiting for network configuration

安装好ubuntu server 之后,配置了两块网卡,ip配置是修改interface文件来完成,可是在启动的时候总是显示
“Waiting for network configuration…”和”Waiting up to 60 more seconds for network configuration…”,每次在这都要等待快2分钟,好是烦人,下面给出解决办法
在终端中输入
1
2
3
4
5
6
7
8
sudo vim /etc/init/failsafe.conf
 
 
$PLYMOUTH message --text="Waiting for network configuration..." || :
    sleep 1
 
    $PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
    sleep 1
将上面两处的sleep后面的数字修改成1,就是只等待1秒,这样就会快多了

2014年7月25日星期五

ubuntu 14.04 service networking restart 无法重启

更改了 /etc/network/interfaces

要重启一下网卡,使其生效

使用命令 service networking restart 无法重启,并报错

stop: Job failed while stopping
start: Job is already running: networking


原因:
This was never a supported way to bounce the network, starting with 14.04, we changed the init script to fail rather than possibly trash your machine.

If you look at upstart's log, you'll notice the following message:
Stopping or restarting the networking job is not supported.
Use ifdown & ifup to reconfigure desired interface.


在 14.04 版本中,取消了 service networking restart 的功能,只能使用 ifdown和ifup 来重新配置网卡接口