Category Archives: Linux




iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 10 -j DROP

# /proc/net/xt_recent/HTTPに作成したばかりリクエストを記録
iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –set –name HTTP

# 同じ送信元アドレス11回に達すると、LOGに記録される
iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –update –seconds 60 –hitcount 11 –name HHTP -j LOG –log-prefix “HHTP Attach: ”

# 同じ送信元アドレス11回に達すると、アクセスが拒否される
iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –update –seconds 60 –hitcount 11 –name SSH -j DROP




# 転送トルール
iptables -A FORWARD -d -p tcp –dport 80 -j ACCEPT
iptables -A FORWARD -s -p tcp –sport 80 -j ACCEPT
iptables -P FOREARD DROP

# ルールの最適化
iptables -A FORWARD -s -p tcp –sport 80 -m state –state NEW -j ACCEPT
iptables -P FOREARD DROP



iptables -N httpd_in
iptables -A httpd_in -m time ! –weekdays Mon -m string –algo kmp ! –string “admin” -m limit –limit 100/second -j ACCEPT
iptables -A httpd_in -j RETURN

iptables -N ftp_in
iptables -A INPUT -m time –weekdays 1,2,3,4 –start-time 09:30 –stop-time 19:00 -m limit –climit-rate 5/minute –modprobe=”modprobe nf_conntrack_ftp” -j ACCEPT
iptables -A ftp_in -j RETURN

iptables -N ssh_in
iptables -A ssh_in -m iprange –src-range -m limit –limit-rate 2/minute -j ACCEPT
iptables -A ftp_in -j RETURN

iptables -A INPUT -p tcp –dport 80 -d -j httpd_in
iptables -A INPUT -p tcp –dport 21 -d -j ftp_in
iptables -A INPUT -p tcp –dport 22 -d -j ssh_in

iptables -A INPUT -d -p icmp –icmp-type 8 -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL NONE. -j DROP

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -I OUTPUT 1 -m state –state ESTABLISED,RELATED -j ACCEPT


iptables -A INPUT -p tcp –dport 80 -m time ! –weekdays Mon -m string –algo kmp ! –string “admin” -m limit –limit 100/second -j ACCEPT

# CentOSで「/etc/sysconfig/iptables-config」のIPTABLES_MODULESを変更
iptables -A INPUT -p tcp –dport 21 -m time –weekdays 1,2,3,4 –start-time 09:30 –stop-time 18:00 -m limit –climit-rate 5/minute –modprobe=”modprobe nf_conntrack_ftp” -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -m iprange –src-range -m limit –limit-rate 2/minute -j ACCEPT

iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP

# Inputルールに入れる
iptables -I INPUT 1 -m state –state ESTABLISED,RELATED -j ACCEPT

iptables -A OUTPUT -s -p icmp –icmp-type 8 -j ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -I OUTPUT 1 -m state –state ESTABLISED,RELATED -j ACCEPT


Ubuntu 14.04.1 LTSでrootユーザのパスワードを取得する方法


startnews24_ubuntu@www9394uj:~$ uptime
15:21:04 up 15 days, 2:05, 1 user, load average: 0.00, 0.01, 0.05
startnews24_ubuntu@www9394uj:~$ sudo passwd
[sudo] password for startnews24_ubuntu:
新しいUNIX パスワードを再入力してください:Startnews24_com
passwd: パスワードは正しく更新されました
startnews24_ubuntu@www9394uj:~$ su – root
パスワード: Startnews24_com


$sudo apt-get install openssh-server

「ubuntu入門」ubuntu 12.04でSVN(Subversion)サーバーをインストール

sudo apt-get update
sudo apt-get install subversion

sudo mkdir /home/svn
sudo mkdir /home/svn/project_startnews24
sudo chmod -R 777 /home/svn/project_startnews24/

sudo svnadmin create /home/svn/project_startnews24

svnserve -d -r /home/svn
-d デーモンプロセスモデルで実行
-r ルートファイルシステムの場所を指定


$ sudo apt-get install ufw

$ sudo ufw enable

$ sudo ufw default allow|deny

$ sudo ufw enable
$ sudo ufw default deny

$ sudo ufw logging on|off

$ sudo ufw status
devadm@startnews24:~$ sudo ufw status
Status: active
To Action From
— —— —-
22/tcp ALLOW Anywhere
139/tcp ALLOW Anywhere
445/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere (v6)
139/tcp ALLOW Anywhere (v6)
445/tcp ALLOW Anywhere (v6)

$ sudo ufw allow|deny [サービス]
$ sudo ufw allow|deny [ポート/プロトコル]

$ sudo ufw allow smtp すべての外部IPからローカルsmtpを訪問するのを許可(ポート25)
$ sudo ufw allow 22/tcp すべての外部IPからローカルtcpを訪問するのを許可(SSH)
$ sudo ufw allow 53  すべての外部IPからローカルtcp/udポート53を訪問するのを許可(DNS)
$ sudo ufw deny smtp 外部IPからローカルsmtpを訪問するのを拒否
$ sudo ufw deny 80/tcp 外部IPからローカルtcp80を訪問するのを拒否(wwwサービス)
$ sudo ufw delete allow smtp allow smtpのルールを削除
$ sudo ufw allow from 特定IPからローカルのポートを訪問するのを許可
$ sudo ufw allow proto udp port 53 to port 53


col File_Name format a40
select File_Name,
fs.phyrds Reads,
fs.phywrts Writes,
(fs.readtim/decode(fs.phyrds,0,-1,fs.phyrds)) Read_Time,
(fs.writetim/decode(fs.phywrts,0,-1,fs.phywrts)) Write_Time
v$datafile df,
v$filestat fs
where df.file#=fs.file#
order by;

col NAME for a50
select name,phyrds,phywrts,readtim,writetim
from v$filestat a,v$dbfile b
where a.file# = b.file#
order by readtim desc;


コマンド アクション Notes
vim file +54 open file and go to line 54 any : command can be run using + on command line
vim -O file1 file2 open file1 and file2 side by side
Insert enter insert mode so you can start typing. Alternatively one can use i ora.
Esc leave insert mode so you can issue commands. Note in VIM the cursor keys & {Home, End, Page{up,down}} and Delete and Backspace work as expected in any mode, so you don’t need to go back to command mode nearly as much as the origonal vi. Note even Ctrl+{left,right} jumps words like most other editors. Note also Ctrl+[ and Ctrl+c are equivalent to Esc and may be easier to type. Also Ctrl+o in insert mode will switch to normal mode for one command only and automatically switch back.
:command runs named command
:help word shows help on word Typing Ctrl+d after word shows all entries containing word
:echo &word shows value of word
:e set buffer for current window you can optionally specify a new file or existing buffer number (#3 for e.g.). Note if you specify a directory a file browser is started. E.g. :e . will start the browser in the current directory (which can be changed with the :cd command).
:sp new window above ditto
:vs new window to left ditto
:q close current window
:qa close all windows add trailing ! to force
Ctrl+w {left,right,up,down} move to window
Ctrl+w Ctrl+w toggle window focus
Ctrl+w = autosize windows to new terminal size for e.g.
:ba new window for all buffers “:vert ba” tiles windows vertically
:ls list buffers
gf open file under cursor
:bd delete buffer and any associated windows
:w save file Note :up[date] only writes file if changes made, but it’s more awkward to type
:sav filename save file as filename Note :w filename doesn’t switch to new file. Subsequent edits/saves happen to existing file
u undo
Ctrl+r redo
. repeat
gg Goto start of file
G Goto end of file
:54 Goto line 54
80| Goto column 80
Ctrl+g Show file info including your position in the file
ga Show character info g8 shows UTF8 encoding
Ctrl+e scroll up Ctrl+x needed first for insert mode
Ctrl+y scroll down Ctrl+x needed first for insert mode
zt scroll current line to top of window
w Goto next word Note Ctrl+{right} in newer vims (which work also in insert mode)
b Goto previous word Note Ctrl+{left} in newer vims
[{ Goto previous { of current scope
% Goto matching #if #else,{},(),[],/* */ must be one on line
zi toggle folds on/off
m {a-z} mark position as {a-z} E.g. m a
‘ {a-z} move to position {a-z} E.g. ‘ a
‘ ‘ move to previous position
‘0 open previous file handy after starting vim
v select visually use cursor keys, home, end etc.
Shift+v line select CTRL+v = column select
Delete cut selection
“_x delete selection without updating the clipboard or yank buffer. I remap x to this in my .vimrc
y copy selection
p paste (after cursor) P is paste before cursor
“Ay append selected lines to register a use lowercase a to initialise register
“ap paste contents of a
gq reformat selection justifies text and is useful with :set textwidth=70 (80 is default)
= reindent selection very useful to fix indentation for c code
> indent section useful with Shift+v%
< unindent section remember . to repeat and u to undo
:set list! toggle visible whitespace See also listchars in my .vimrc
clipboard shortcuts
dd cut current line
yy copy current line
D cut to end of line
y$ copy to end of line
/regexp searches forwards for regexp ? reverses direction
n repeat previous search N reverses direction
* searches forward for word under cursor # reverses direction
:%s/1/2/gc search for regexp 1 and replace with 2 in file c = confirm change
:s/1/2/g search for regexp 1 and replace with 2 in (visual) selection
K lookup word under cursor in man pages 2K means lookup in section 2
:make run make in current directory
Ctrl+] jump to tag Ctrl+t to jump back levels. I map these to Alt+⇦⇨ in my .vimrc
vim -t name Start editing where name is defined
Ctrl+{n,p} scroll forward,back through autocompletions for word before cursor uses words in current file (and included files) by default. You can change to a dictionary for e.g: set complete=k/usr/share/dicts/words Note only works in insert mode
Ctrl+x Ctrl+o scroll through language specific completions for text before cursor “Intellisense” for vim (7 & later). :help compl-omni for more info. Useful for python, css, javascript, ctags, … Note only works in insert mode
external filters
:%!filter put whole file through filter
:!filter put (visual) selection through filter
:,!command replace current line with command output
map <f9> :w<CR>:!python %<CR> run current file with external program