Tag Archives: linux

Redhat 6 加入windows域

下面的配置在Redhat 6.4 Enterprise Linux 中测试,windows 服务器选择 Windows Server 2008 R2.  用windows Server 2012 也是可以的。

在这里我的域名信息如下:

Domain Name: javalinux
Domain Full Name: php-yhjhoo.rhclould.com
Domain Admin Account: administrator

1. 配置网络和DNS

确定你的redhat 可以连接到windows 服务器。

DNS

hostfile 也要加
host 确保hostname 跟hostfile 里面一致

2. 选择用户验证模式

# authconfig --update --kickstart --enablewinbind --smbsecurity=ads --smbworkgroup=JAVALINUX --smbrealm=JAVALINUX.ME --winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash --enablewinbindusedefaultdomain --enablelocauthorize --enablekrb5 --krb5realm=JAVALINUX.ME --enablekrb5kdcdns --enablekrb5realmdns --enablepamaccess --enablesssd --enablecache

3. 加入域

# net ads join -U Administrator
Enter Administrator's password:
Using short domain name -- JAVALINUX
Joined 'server' to realm 'JAVALINUX.ME'

4. Windows SSO

# net ads keytab create -U Administrator

5. 测试

# getent passwd Administrator
administrator:*:16777216:16777216:Administrator:/home/administrator:/bin/bash

重启Redhat, 然后跟普通ssh登陆一样测试。

6. 自动生成home 目录

# authconfig --enablemkhomedir --update 

SSH 控制用户登陆

此次测试环境为redhat 6.4,对于其他linux版本是一样的。

默认情况下,所有创建的系统用户都可以SSH远程登陆,只是权限问题而已。

假如你只想要用户testUser1 和用户testUser2远程SSH 登陆,在文件/etc/ssh/sshd_config里面加入下面一行。

AllowUsers testUser1 testUser2

重启 sshd。

 

 

假如你只想要在用户组testGroup1 和testGroup2 中的用户远程SSH 登陆。在文件/etc/ssh/sshd_config里面加入下面一行。

AllowUsers testGroup1 testGroup2

重启 sshd。

使用java来测试TCP和UDP端口

刚刚写了一篇用linux测试TCP和UDP端口的文章,但是这个例子有个缺点呀:

  1. 服务器端不能够一直监听
  2. 只适用于linux环境

咱们都是追求完美的人,怎么能够让这种不完美的情况发生呢? 于是乎下面的例子诞生了。

服务器端:

$ java -cp TCP_UDP.jar pd.jexxus.ServerTest 9003
Listening on port: 9003
Client Connected: 127.0.0.1
Received UDP from 127.0.0.1:49292
Received message: Hello TCP
Connection lost: jexxus.server.ServerConnection@9f293df

客户端:

$ java -cp TCP_UDP.jar pd.jexxus.ClientTest localhost 9003
Connecting using port: 9003
Connection lost: jexxus.client.ClientConnection@1dea34f3

源代码下载src.tar ,

TCP_UDP.jar 下载:TCP_UDP.jar

Linux UDP 和TCP 测试

在复杂的企业环境中,防火墙多过服务器,防火墙的维护也不在我们的维护范围之内。 测试端口使用telnet 显得有点力不从心。下面介绍一个linux下面的技巧。

假设服务器A(IP:192.168.56.101)和服务器B(IP:192.168.56.1),B服务器上有个服务跑在TCP端口6872上,服务器A需要用到服务器B上的这个服务。在服务器B上运行下面的命令来模仿:

nc -lv 192.168.56.1 6872

服务器A上运行下面命令来测试:

nc -vz 192.168.56.1 6872

如果你看到如下的信息,那么恭喜你,防火墙通过了

服务器B
$ nc -lv 192.168.56.1 6872
Listening on [192.168.56.1] (family 0, port 6872)
Connection from [192.168.56.1] port 6872 [tcp/*] accepted (family 2, sport 46848)

服务器A
$nc -vz 192.168.56.1 6872
Connection to 192.168.56.1 6872 port [tcp/*] succeeded!

 

 

假如是UDP 端口呢? 很简单,可以如下:

在服务器B上运行下面的命令来模仿:

nc -luv 192.168.56.1 6872

服务器A上运行下面命令来测试:

nc -vuz 192.168.56.1 6872

如果你看到如下的信息,那么恭喜你,防火墙通过了

服务器B
$ nc -luv 192.168.56.1 6872
Listening on [192.168.56.1] (family 0, port 6872)
XXXXX

服务器A
$ nc -vuz 192.168.56.1 6872
Connection to 192.168.56.1 6872 port [udp/*] succeeded!

用命令nc(Netcat)的缺点是跑过一次之后服务器端和客户端都要从新跑一次,服务器端不可以一直监听。