Monthly Archives: 8月 2014

「rubyの入門」rot13 暗号化アルゴリズムを実現するサンプルプログラム

rubyコード:
class String
def rot13
self.tr “A-Za-z”, “N-ZA-Mn-za-m”
end
end

#説明 : print ‘abcd’.rot13

「rubyの入門」rubyでscpを実現するサンプルプログラム

rubyコード:
#gem install net-ssh
#gem install net-sftp

require ‘rubygems’
require ‘net/ssh’
require ‘net/sftp’
Net::SSH.start(‘server’, ‘username’, ‘password’) do |ssh|
ssh.sftp.connect do |sftp|
Dir.foreach(‘.’) do |file|
puts file
end
end
end

RubyでAESの暗号化を行うサンプル

rubyコード:
#gem install fast-aes

require ‘rubygems’
require ‘fast-aes’

# key can be 128, 192, or 256 bits
key = ’42#3b%c$dxyT,7a5=+5fUI3fa7352&^:’

aes = FastAES.new(key)

text = “Hey there, how are you?”

data = aes.encrypt(text)

puts aes.decrypt(data) # “Hey there, how are you?”

「rubyの入門」rubyでadapter(継承) patter のサンプル

rubyコード:
class Connection
def request
raise “Abstract method”
end
end

class MysqlAdapter < Connection
attr_accessor :connection

def initialize
@connection = MysqlConnection.new
end

def request
@connection.request
end
end

class MysqlConnection
def initialize
end

def request
puts ‘ Mysqlのデータベースに接続要求’
end
end

mysql_adapter = MysqlAdapter.new
mysql_adapter.request

rubyでWindows-1251からutf8へ変換するサンプル

rubyコード:
function win_to_utf8 ($string) {

$in_arr = array (
chr(208), chr(192), chr(193), chr(194),
chr(195), chr(196), chr(197), chr(168),
chr(198), chr(199), chr(200), chr(201),
chr(202), chr(203), chr(204), chr(205),
chr(206), chr(207), chr(209), chr(210),
chr(211), chr(212), chr(213), chr(214),
chr(215), chr(216), chr(217), chr(218),
chr(219), chr(220), chr(221), chr(222),
chr(223), chr(224), chr(225), chr(226),
chr(227), chr(228), chr(229), chr(184),
chr(230), chr(231), chr(232), chr(233),
chr(234), chr(235), chr(236), chr(237),
chr(238), chr(239), chr(240), chr(241),
chr(242), chr(243), chr(244), chr(245),
chr(246), chr(247), chr(248), chr(249),
chr(250), chr(251), chr(252), chr(253),
chr(254), chr(255)
);

$out_arr = array (
chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
);

$out = str_replace($in_arr,$out_arr,$string);
return $out;
}

tapestryでimageを表示するサンプルプログラム

javaコード下記:
public class ImageTest {
@Inject
private ComponentResources _resources;

public Link getChart3() {
return _resources.createEventLink(“chart”, false, null);
}

public StreamResponse onChart(){
return new StreamResponse() {
public String getContentType(){
return “image/png”;
}
public InputStream getStream() throws IOException {
try {
return new ClasspathResource(“diagrams/vacation.png”).openStream();
} catch (IOException ex) {
throw new RuntimeException(“Cannot read image file.”, ex);
}
}
public void prepareResponse(Response response){}
};
}
}

ImageTest.tmlファイル

<html
xmlns:t=”http://tapestry.apache.org/schema/tapestry_5_3.xsd”
xmlns:p=”tapestry:parameter”>
<header>
<title>show image</title>
</header>
<body>
<img src=”${chart3}”/>
</body>
</html>

クリップボードの履歴を管理ソフトClibor 1.4.7の ダウンロード

ダウンロード:
vectorサイトからダウンロード
softpediaサイトからダウンロード
cnetサイトからダウンロード

更新内容:

  • add settings/ Play sound when clipboard text changes.

Clibor is a software application which can be used in order to save several items to the Clipboard, manage them and configure multiple parameters. 

Linuxサーバーのセキュリティ対策まとめ

1.アカウント管理

vim /etc/passwd
rootのuidを変更して普通のユーザーになる
普通のユーザーのuidを0に変更して、rootユーザになる
2 ポート管理
2.1 .vi /etc/ssh/sshd_config port 22を別のポートに変更
2.2 iptablesですべてのポートを拒否する,固定IP仁対して22を開放

3.pingリクエストを拒否
echo “1”> /proc/sys/net/ipv4/icmp_echo_ignore_all

4.Ctrl-Alt-Delete機能を禁止
[root@localhost ~]vi /etc/inittab
次の行をコメントアウトする
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

[root@localhost ~]
#telinit q

5.不要なユーザ、グループを削除
[root@localhost ~]
# userdel username

[root@localhost ~]
# groupdel groupname
6.selinuxを閉じる
[root@localhost ~]
#vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted – Only targeted network daemons are protected.
# strict – Full SELinux protection.
SELINUXTYPE=targeted
修正前:SELINUX=enforcing
修正後:SELINUX=disabled

Ubuntuにnthlogsをインストールして、各プロセスを使うトラフィックを調べる

1.nethogsをインストール

# yum install nethogs libpcap-dev libpcap
2.nethogsの使い方
[root@ip-172-31-27-223 ~]# nethogs -h
usage: nethogs [-V] [-b] [-d seconds] [-t] [-p] [device [device [device …]]]
-V : prints version.
-d : delay for update refresh rate in seconds. default is 1.
-t : tracemode.
-b : bughunt mode – implies tracemode.
-p : sniff in promiscious mode (not recommended).
device : device(s) to monitor. default is eth0

When nethogs is running, press:
q: quit
m: switch between total and kb/s mode

3.操作例
nethogs eth0 eth1 -t

apachetopはリアルタイムでwebサーバーの負荷状況を監視する

 

1.apachetopのインストール
# rpm -ivh http://mirrors.hustunique.com/epel/5/i386/epel-release-5-4.noarch.rpm
# yum install apachetop
2.apachetopの使い方
[root@ip-172-31-27-223 ~]# apachetop -h
ApacheTop v0.12.6 – Usage:
File options:
-f logfile open logfile (assumed common/combined) [/var/log/httpd/access_log]
(repeat option for more than one source)

URL/host/referrer munging options:
-q keep query strings [no]
-l lowercase all URLs [no]
-s num keep num path segments of URL [all]
-p preserve protocol at front of referrers [no]
-r resolve hostnames/IPs into each other [no]

Stats options:
Supply up to one of the following two. default: [-T 30]
-H hits remember stats for this many hits
-T secs remember stats for this many seconds

-d secs refresh delay in seconds [5]

-h this help

Compile Options: -HAVE_KQUEUE -HAVE_FAM -ENABLE_PCRE
Polling Method: stat

3.操作例
/usr/bin/apachetop -f  /var/log/apache/access.log
結果:
last hit: 09:33:24 atop runtime: 0 days, 00:01:00 09:33:25
All: 197 reqs ( 3.3/sec) 1394.5K ( 23.6K/sec) 7248.3B/req
2xx: 137 (69.5%) 3xx: 59 (29.9%) 4xx: 1 ( 0.5%) 5xx: 0 ( 0.0%)
R ( 30s): 61 reqs ( 2.0/sec) 314.8K ( 10.5K/sec) 5285.0B/req
2xx: 60 (98.4%) 3xx: 1 ( 1.6%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%)

REQS REQ/S KB KB/S URL
33 1.10 6.7 0.2*/misc.php
17 0.59 220.7 7.6 /forum.php
1 0.04 10.4 0.4 /forum-298-1.html
1 0.04 11.4 0.4 /thread-56035-1-1.html
1 0.03 8.7 0.3 /thread-317059-1-1.html
1 0.05 9.6 0.5 /thread-277892-1-1.html