# -*- coding: utf-8 -*-
import requests #For get url source code
from bs4 import BeautifulSoup as bs # For search to answer
from Tkinter import * #For tkinter
def translate(Entry, Ask_Lang, Ret_Lang):
"""Return result from google, first configure for what lang to be check"""
url = 'http://translate.google.com/?sl={}&tl={}&text='.format(Ask_Lang, Ret_Lang)
q = '+{}'.format(Entry.encode("utf-8"))
full_url = '{}{}'.format(url, q)
soup = bs(requests.get(full_url).content, 'lxml')
result = soup.find('div', {'id': 'gt-res-content'}).find('span',
{'id': 'result_box'}).text
return result.encode("utf-8")
def test():
Entry = E.get()
if v.get() == 1:
Ask_Lang = 'bg'
Ret_Lang = 'en'
else:
Ask_Lang = 'en'
Ret_Lang = 'bg'
Translate_Entry = translate(Entry, Ask_Lang, Ret_Lang)
E_Result.insert(END, Translate_Entry)
def _enter(event):
"""Key Bind to function"""
test()
#Tkinter configure is here
root = Tk()
root.title("Google translate")
root.geometry("290x75+100+50")
root.bind('<Return>', _enter )
#First label
L = Label(root, text="Enter some word")
L.grid(row=0)
#Entry Label
E = Entry(root)
E.focus()
E.grid(row=0, column=1)
#Second Label
L_Result = Label(root, text="The result")
L_Result.grid(row=1, column=0, sticky=NW)
#Button
Translate = Button(root, text="Translate", command=test, bg='lightgreen', padx=2, pady=2, relief=RAISED)
Translate.grid(row=2,column=0, sticky=W)
#Check Box
v = IntVar()
Check_Box = Checkbutton( root, text="BG", variable= v, offvalue = 0, onvalue= 1 )
Check_Box.grid(row=0, column=2)
#View result is here
E_Result = Entry(root)
E_Result.grid(row=1, column=1)
if __name__ == "__main__":
root.mainloop()
12.10.2016 г.
17.09.2016 г.
Python scan for open port Tkinter
#####IMPORT SOME MODULE'S#####
from Tkinter import *
import socket, sys, time
from datetime import datetime
from threading import *
name = socket.gethostname()
name_pr = socket.gethostbyname(name)
firstclick = True
def on_entry_click(event):
"""function that gets called whenever enter_1 is clicked"""
global firstclick
if firstclick: # if this is the first time they clicked it
firstclick = False
enter_2.delete(0, "end") # delete all the text in the entry
#####GET HOST NAME AND PORT#####
class Scan_for_port:#####
def __init__(self, host, port):
self.host = host #HOSTNAME
self.port = port #PORTS COLECT
def rep(self):
#RETURN LIST WIT INCLUDE HOSTNAME AND PORT OR PORT'S
return [self.host, self.port]
#####CALLBACK FOR BUTTON IS HERE#####
def callback():
data1 = enter_1.get() #GET HOSTNAME
date2 = enter_2.get() #GET PORTS
if len(date2.split(",")) > 1: #IF USER USE COMMA FOR SEPARATE FOR PORTS
total_info = [str(data1), [int(i) for i in date2.split(",")]]
elif len(date2.split("-")) > 1: #IF USER USE - FOR SEPARATE FOR PORTS
total_info = [str(data1), [int(i) for i in (range(int(date2.split("-")[0]),\
(int(date2.split("-")[-1])+1)))]]
else: #IF USER WRITE ONLY ONE PORT
total_info = [str(data1), [int(date2)]]
total_info_result = Scan_for_port(total_info[0], total_info[1])
return total_info_result.rep()
#####SOCKET CONFIG IS HERE#####
def scan(host, ports):
lock_object = Semaphore(value=1)
t1 = datetime.now()
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,ports))
s.send("Hello\r\n")
result = s.recv(100)
lock_object.acquire()
mylist.insert(END, "[+]{port} is open {result}".format(port=ports,\
result=str(result)))
mylist.see(END)
mylist.update()
except:
lock_object.acquire()
finally:
lock_object.acquire()
s.close()
def main():
t1 = datetime.now()
host, ports = callback()
for port in ports:
socket.setdefaulttimeout(1)
t = Thread(target=scan, args=(host, int(port)))
t.start()
#####TKINTER CONFIGURATIONS IS HERE#####
root = Tk()
root.title("CHECK OPEN PORT'S")
root.geometry("280x350+100+100")
root.resizable(0,0) #DISABLE RESIZE FOR WINDOWS!!!
root.config(bg="#000000")
button1 = Button(root,text="RUN", padx=5, pady=5, command=main)
button1.config(bg="#D2691E", fg="#000000")
button1.config(font=('times', 10, 'underline italic'))
button1.config(bd=4, relief=RAISED)
button1.grid(row=1, column=3,rowspan=2, sticky=NE)
label = Label(root, text="Ente host ip ",bg="#000000", fg="#D2691E")
label.config(font='times')
label.grid(row=1,column=1, sticky=NW, padx=2)
enter_1 = Entry(root, bg='white', fg="black")
enter_1.insert(0, name_pr)
enter_1.focus()
enter_1.grid(row=1,column=2, sticky=N)
label2 = Label(root, text="Enter port's ",bg="#000000", fg="#D2691E")
label2.config(font='times')
label2.grid(row=2,column=1, sticky=NW, padx=2)
enter_2 = Entry(root, bg='white', fg="black")
enter_2.insert(0, "use 1,2 or 1-2 for range")
enter_2.bind('', on_entry_click)
enter_2.grid(row=2,column=2, sticky=N)
mylist = Listbox(root,bg="#000000",fg="#D2691E")
mylist.grid(row=3,column=1, columnspan=4 , rowspan=4, ipadx=80, ipady=100)
if __name__ == '__main__':
root.mainloop()
12.09.2016 г.
Show image, with options to resize it.
#IMPORT SOME MODULE NEED pip install pillow
#if not esists
import os, sys, Tkinter
from PIL import Image, ImageTk
#FIRST GLOBAL PARAM TO PATH
#USES Pictures folder of user that run script
PIC = os.path.expanduser('~')+"\Pictures"
#CALCULATE RESULT IS HERE
list_with_pic = []
old_label_image = None
#FUNCTION CLOSE PICTURE WHEN PUSH LEFT MOUSE BOTTON
def button_click_exit_mainloop (event):
"""FUNCTION CLOSE PICTURE WHEN PUSH LEFT MOUSE BOTTON"""
event.widget.quit() # this will cause mainloop to unblock.
#THIS SEARCH FOR PICTURES IN PIC FOLDER
#RETURN ABSOLUTE PATH
def search_picture(PATH):
"""THIS SEARCH FOR PICTURES IN PIC FOLDER / RETURN ABSOLUTE PATH"""
for root_p, dirname, filename in os.walk(PATH):
for file in filename:
if file.endswith(("jpg","png")):
yield os.path.join(root_p, file)
#RETURN RESULT SPARES MEMORY
def return_orig():
"""RETURN RESULT SPARES MEMORY"""
for result in search_picture(PIC):
yield result
#SHOW PICTURES USE TKINTER TO VISUALIZE
def show_pic():
"""SHOW PICTURES USE TKINTER TO VISUALIZE"""
len_of_pictures = [] #CALCULATE RESULT
for m in return_orig():
len_of_pictures.append(m)
print ""
#PRINT TOTAL LEN OF FOUND PICTURE'S
print "The total len of pictures is {}".format(len(len_of_pictures))
print ""
#ASK TO OPEN PICTURE FOR VIEW OR NOT, TKINTER CLOSE WHEN HIT N/n or somthing else
ask = raw_input("Do you want to open all image's : Y or N _\b" )
if ask == 'Y' or ask == 'y':
root = Tkinter.Tk()
root.bind("<Button>", button_click_exit_mainloop)
root.geometry('+%d+%d' % (200,200))
for root_d, dirname, filename in os.walk(PIC):
for file in filename:
if file.endswith(("jpg","png")):
list_with_pic.append(os.path.join(root_d, file))
for result in list_with_pic:
#OPEN IMAGE
image1 = Image.open(result)
#ORIGINAL GEOMETRY IS HERE TAKE FROM IMAGE
root.geometry('%dx%d' % (image1.size[0],image1.size[1]))
tk_pik = ImageTk.PhotoImage(image1)
#LABEL IS HERE SHOW IN TOP OF THE TKINTER CANVAS
label_image = Tkinter.Label(root, image=tk_pik)
#PLACE TO POSITION
label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1])
root.title(result)
if old_label_image is not None:
old_label_image.destroy()
odl_lavel_image = label_image
root.mainloop()
#IF ASK IS N/n exit from program
elif ask == 'N' or ask == 'n':
print "Refused by the user"
sys.exit()
else:
sys.exit()
#THIS USE TO RESIZE A PICTURE'S
def resize_pic():
"""THIS USE TO RESIZE A PICTURE'S"""
if os.path.exists(PIC):
TUMBNAILS = "thumbnail"
if os.path.exists(PIC+'\\'+TUMBNAILS):
TUMBNAILS = PIC+'\\'+TUMBNAILS
else:
os.makedirs(PIC+'/'+TUMBNAILS)
TUMBNAILS = PIC+'\\'+TUMBNAILS
#ASK TO USER PUSH WIDTH AND HEIGHT OF THUMBNAIL
width = raw_input("Enter width :")
height = raw_input("Enter height :")
for result in return_orig():
image = Image.open(result)
image = image.resize((int(width), int(height)), Image.ANTIALIAS)
image.save(TUMBNAILS+'\\'+result.split('\\')[-1], 'jpeg', quality=90)
def ask_for_what():
print "-------------------------------------------"
print "1 - For list pictures with original size -"
print "2 - Corect pictures to tumbnails -"
print "-------------------------------------------"
answer = raw_input('Choice whant you want :')
print ""
print "You choice {answer}".format(answer=answer)
if answer == '1':
show_pic()
elif answer == '2':
resize_pic()
else:
"???"
if __name__ == "__main__":
print "Default path is {path}".format(path=PIC)
print ""
PIC = raw_input("Enter for Default or write absolute path to pictures :")
if PIC == "":
PIC = os.path.expanduser('~')+"\Pictures"
else:
PIC = PIC
ask_for_what()
3.09.2016 г.
Show google passwords
# -*- coding: utf-8 -*-
#IMPORT SOME MODULE'S
import sqlite3
import win32crypt
import os
from collections import defaultdict
import pprint
#GLOBAL PARAM'S
GOOGLE_FILE = "Login Data"
GOOGLE_PATH = os.path.expanduser('~')+"\AppData\Local\Google\Chrome\User Data\Default"
STORE_RESULT = defaultdict(list)
#STORE PATH FOR "SEARCH_FOR_FILE" FUNCTION
Files = []
#FILE WHERE DRAW RESULT
OUTPUT_FILE = "RESULT.txt"
#SEARCH FOR GLOBAL PARAM IN PATH
def search_for_file():
for root, dirname, filename in os.walk(GOOGLE_PATH):
for file in filename:
if GOOGLE_FILE == file:
Files.append(os.path.join(root, file))
def sqlite_connect(Files):
for found in Files:
c = sqlite3.connect(found)
cursor = c.cursor()
select_statement = "SELECT origin_url, username_value, password_value FROM logins"
result = cursor.execute(select_statement)
main_res = result.fetchall()
for url, name, password in main_res:
username_and_pass = []
pwd = win32crypt.CryptUnprotectData(password, None, None, None, 0)
username_and_pass.append(tuple((name, pwd[1])))
STORE_RESULT[url] = username_and_pass
if __name__ == "__main__":
search_for_file()
sqlite_connect(Files)
with open(OUTPUT_FILE, 'w') as f:
for i, v in STORE_RESULT.items():
f.write(i)
f.write(str(v).encode("utf-8"))
f.write("\n")
pprint.pprint(dict(STORE_RESULT))
#IMPORT SOME MODULE'S
import sqlite3
import win32crypt
import os
from collections import defaultdict
import pprint
#GLOBAL PARAM'S
GOOGLE_FILE = "Login Data"
GOOGLE_PATH = os.path.expanduser('~')+"\AppData\Local\Google\Chrome\User Data\Default"
STORE_RESULT = defaultdict(list)
#STORE PATH FOR "SEARCH_FOR_FILE" FUNCTION
Files = []
#FILE WHERE DRAW RESULT
OUTPUT_FILE = "RESULT.txt"
#SEARCH FOR GLOBAL PARAM IN PATH
def search_for_file():
for root, dirname, filename in os.walk(GOOGLE_PATH):
for file in filename:
if GOOGLE_FILE == file:
Files.append(os.path.join(root, file))
def sqlite_connect(Files):
for found in Files:
c = sqlite3.connect(found)
cursor = c.cursor()
select_statement = "SELECT origin_url, username_value, password_value FROM logins"
result = cursor.execute(select_statement)
main_res = result.fetchall()
for url, name, password in main_res:
username_and_pass = []
pwd = win32crypt.CryptUnprotectData(password, None, None, None, 0)
username_and_pass.append(tuple((name, pwd[1])))
STORE_RESULT[url] = username_and_pass
if __name__ == "__main__":
search_for_file()
sqlite_connect(Files)
with open(OUTPUT_FILE, 'w') as f:
for i, v in STORE_RESULT.items():
f.write(i)
f.write(str(v).encode("utf-8"))
f.write("\n")
pprint.pprint(dict(STORE_RESULT))
26.08.2016 г.
Ping mashine with nbtscan
#!/bin/bash
#WORK ON DEBIAN BASE SYSTEM!
#CHECK USER IS ROOT OR NOT
if [ $UID -ne 0 ];then
echo "Must run with root privileg!!!"
exit
fi
#GET NETWORK INTERFACE
network=$(ifconfig | sed '1!d' | cut -d" " -f1)
#CHECK NETWORK INTERFACE IS ADD TO PARAM IN SCRIPT
if [ "$#" -ne 1 ];then
echo "Usage - ./ping.sh $network"
exit
fi
#CHECK NBTSCANEXISTS OR NOT
test `which nbtscan` || \
echo -e "Error nbtscan not exists\nTry to install!!!" `apt-get install nbtscan` >> /dev/null
interface=$1
echo "The interface is $interface"
prefix=$(ifconfig $interface | grep "inet addr" | cut -d ":" -f2 | cut -d " " -f1 | cut -d"." -f1-3)
echo "------------------------------------------------------------"
for addr in $(seq 1 254);do
nbtscan $prefix.$addr | grep -E "server" | awk -F" " '{printf "%-15s %-20s %s\n", $1,$2,$NF}' &
done
#WORK ON DEBIAN BASE SYSTEM!
#CHECK USER IS ROOT OR NOT
if [ $UID -ne 0 ];then
echo "Must run with root privileg!!!"
exit
fi
#GET NETWORK INTERFACE
network=$(ifconfig | sed '1!d' | cut -d" " -f1)
#CHECK NETWORK INTERFACE IS ADD TO PARAM IN SCRIPT
if [ "$#" -ne 1 ];then
echo "Usage - ./ping.sh $network"
exit
fi
#CHECK NBTSCANEXISTS OR NOT
test `which nbtscan` || \
echo -e "Error nbtscan not exists\nTry to install!!!" `apt-get install nbtscan` >> /dev/null
interface=$1
echo "The interface is $interface"
prefix=$(ifconfig $interface | grep "inet addr" | cut -d ":" -f2 | cut -d " " -f1 | cut -d"." -f1-3)
echo "------------------------------------------------------------"
for addr in $(seq 1 254);do
nbtscan $prefix.$addr | grep -E "server" | awk -F" " '{printf "%-15s %-20s %s\n", $1,$2,$NF}' &
done
22.08.2016 г.
Ban all IPs that attempted to access to ssh without success
grep sshd /var/log/auth.log | \
grep -Eo 'rhost=([1-2]?[0-9]{0,2}\.){3,3}[1-2]?[0-9]{0,2}' | \
awk -F"=" '{print $2}' | sort | uniq -c |sort -k2nr | \
awk '$1>3 {print $2}' |\
xargs -I% sudo iptables -A INPUT -s % -j DROP
grep -Eo 'rhost=([1-2]?[0-9]{0,2}\.){3,3}[1-2]?[0-9]{0,2}' | \
awk -F"=" '{print $2}' | sort | uniq -c |sort -k2nr | \
awk '$1>3 {print $2}' |\
xargs -I% sudo iptables -A INPUT -s % -j DROP
Serch for duplicated file's (!!!Not Erased only show!!!)
##################################################
# Search for duplicated files without, #
# meaningless file exstension #
# NOT EDIT BY HAND!!! ONLY Dir Param #
##################################################
#IMPORT MODULES FOR SCRIPT
import hashlib, os
from itertools import *
from operator import itemgetter
#THIS USE FOR GIVE MD5 FOR FILE'S
md = hashlib.md5()
#Directory = os.getcwd()
#ADD NEEDED LIST
Dir = "C:\\script\\"
_File = [] #CONTAINED PATH FOR FILE
_File_H = [] #CONTAINED MD5 CODE FOR FILE
_duplicated = [] #CONTAINED DUPLIATED
_duplicated_sravnqva = [] #NEED FOR ZIP
subdirlist = [] #MAY DELETED IF YOU WON USED FOR FUNCTION search_file
#SEARCH WITH OS.WALK
def search_os_walk(Dir):
for path,dirlist,filelist in os.walk(Dir):
for fn in filelist:
try:
yield os.path.join(path,fn)
except IOError, e:
print "Not allowed", e
#FUNCTION USE FOR ENCRIPT FILE TO MD5
def md_5(filePath):
try:
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
try:
data = fh.read(8192)
if not data:
break
m.update(data)
except IOError, e:
print "Not allowerd Basi", e
return m.hexdigest()
except IOError, e:
print "Not allowerd", e
#SEARCH FOR FILE AND APPEND THEM TO REQUIRED LIST (LOOKED ABOVE FOR #DESCRIPTION'S )
for file in search_os_walk(Dir):
_File.append(file)
_File_H.append(md_5(file))
for f,z in (izip(_File, _File_H)):
if z in _duplicated:
_duplicated_sravnqva.append(z)
_duplicated.append(z)
print "*"*80
_Dupliated = [x[0] for x in zip(_File, _File_H) if x[1] in _duplicated_sravnqva]
one= []
two= []
for i in _Dupliated:
one.append(i)
two.append(md_5(i))
#RESULT IN DICTIONARI, NEEDED FOR FUNCTION GROUPBY
d = dict(zip(one,two))
di = sorted(d.iteritems(), key=itemgetter(1))
for k, g in groupby(di, key=itemgetter(1)):
#IF YOU WHANT TO SHOW IN COLUMN UNCHECK BOTTOM ROW'S
# for i,z in enumerate(map(itemgetter(0), g)):
# print i,z
print "Duplicated ", map(itemgetter(0), g)
#raw_input()
14.08.2016 г.
Python generate file with password
# -*- coding:utf-8 -*-
#IMPORT MODULE
import itertools
from itertools import islice
#FILE TO WRITE RESULT
File = "password_list.txt"
#FUNCTION GENERATE PASSWORD WORD'S
def generate():
for z in xrange(3,9):
res = itertools.product('abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@', repeat=z)
for i in res:
r = "".join(i)
yield r
#WRITE WORD IN FILE
with open(File, 'w') as f:
for s in generate():
f.write("{}\n".format(s))
#IF YOU WANT TO READ A FILE SECOND FUNCTION DO THIS
#UNCOMENT ROW FOR WORK WITH!
# with open(File, 'r') as f:
# while True:
# next_line = list(islice(f, 1000))
# if not next_line:
# break
# for line in next_line:
# print line.strip()
12.08.2016 г.
Тест дали има пинг до масхина и изпращане на email при падане.
# -*- coding: utf-8 -*-
#IMPORT SOMTHING MODULES########################
import os, subprocess, time ##
from sys import platform ##
import smtplib ##
################################################
#HARDCORE CONST'S#########################################
PING='' ##
TARGET = '192.168.1.9' ##
MASHINE = ' ' ##
TAKE_STATUS = [] ##
TIME_TO_SLEEP = time.sleep(10) ##
sender = 'email address' ##
receivers = ['korea60@abv'] ##
message = """From: From Server - name
To: To Person
Subject: IP is down in {}
""".format(time.asctime(time.localtime(time.time())))
##########################################################
#DEFINE FUNCTION'S IS HERE
#1 TEST MASHINE VERSION
def check_mashine():
global MASHINE
global PING
if platform.startswith('lin'):
MASHINE = ' -c1'
PING='/bin/ping'
else:
MASHINE = ' -n1'
PING='ping'
#2 PING TARGET MASHINE AND COLLECT STATUS
def check_ping():
global TAKE_STATUS
check_mashine()
RESPONSE = os.system("{}{} {} > /dev/null".format(PING,MASHINE,TARGET))
if RESPONSE:
TAKE_STATUS.append("1")
else:
pass
#3 SEND EMAIL
def send_emain():
mailserver = smtplib.SMTP('smtp.gmail.com:587')
# Identifikaciq
mailserver.ehlo()
# secure our email
mailserver.starttls()
# re-identify ourselves as an encrypted connection
mailserver.ehlo()
mailserver.login('username is here!!!!', 'password is here !!!!')
mailserver.sendmail('from','to',message)
#ZATVARQME SYRVARA
mailserver.quit()
#TAKE THE MAGIC!!!
if __name__ == '__main__':
while len(TAKE_STATUS) < 5:
check_ping()
TIME_TO_SLEEP
send_emain()
print ("MAIL SEND")
9.08.2016 г.
VNC auto start
1 . x11vnc -auth /tmp/.Xauth1000 -forever -rfbauth /home/folder/x11vnc.pass -rfbport 5900
2 . x11vnc -nap -wait 5 -noxdamage -pasword "password" -display :0 -forever
2 . x11vnc -nap -wait 5 -noxdamage -pasword "password" -display :0 -forever
3.08.2016 г.
How long proccess is started.
ps -p `top -b -n1 | grep firebi* | awk '{print $1}'` -o etime=
if row is more then one:
ps -p `top -b -n1 | grep firebi* | sed '1!d' | awk '{print $1}'` -o etime=
if row is more then one:
ps -p `top -b -n1 | grep firebi* | sed '1!d' | awk '{print $1}'` -o etime=
8.05.2016 г.
Openvpn Server on Debian.
apt-get update
apt-get install openvpn easy-rsa
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
vim /etc/openvpn/server.conf
uncoment:
# dh dh1024.pem
# push "redirect-gateway def1 bypass-dhcp"
# push "dhcp-option DNS 208.67.222.222"
# push "dhcp-option DNS 208.67.220.220"
# user nobody
# group nogroup
echo 1 > /proc/sys/net/ipv4/ip_forward
vim /etc/sysctl.conf
uncoment:
# net.ipv4.ip_forward=1
cp -r /usr/share/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/easy-rsa/keys
vim /etc/openvpn/easy-rsa/vars
#export KEY_COUNTRY="BG"
#export KEY_PROVINCE="bg"
#export KEY_CITY="Velingrad"
#export KEY_ORG="Home"
#export KEY_EMAIL="email60@abv.bg"
#export KEY_OU="MYOrganizationalUnit"
#export KEY_NAME="server"
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
./build-key-server server
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
service openvpn start
./build-key client1
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn
#Configuration with script
#!/bin/bash
apt-get update &&
apt-get -y upgrade &&
apt-get -y install openvpn easy-rsa &&
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz \
> /etc/openvpn/server.conf &&
cd /etc/openvpn/ &&
sed -i.bak -e 's/dh dh1024.pem/dh dh2048.pem/' -e \
's/;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/' -e \
's/;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 208.67.222.222"/' -e \
's/;push "dhcp-option DNS 208.67.220.220"/push "dhcp-option DNS 208.67.220.220"/' -e \
's/;user nobody/user-nobody/' -e \
's/;group nogroup/group nogroup/' server.conf &&
echo 1 > /proc/sys/net/ipv4/ip_forward &&
sed -i.bak 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf &&
cp -r /usr/share/easy-rsa/ /etc/openvpn &&
mkdir -p /etc/openvpn/easy-rsa/keys &&
cd /etc/openvpn/easy-rsa &&
sed -i.bak 's/export KEY_NAME="EasyRSA"/export KEY_NAME="server"/' vars &&
openssl dhparam -out /etc/openvpn/dh2048.pem 2048 &&
cd /etc/openvpn/easy-rsa &&
. ./vars &&
./clean-all &&
./build-ca &&
./build-key-server server &&
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn &&
service openvpn start &&
./build-key client1 &&
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn
client.ovpn се редактира с името на сървара
apt-get install openvpn easy-rsa
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
vim /etc/openvpn/server.conf
uncoment:
# dh dh1024.pem
# push "redirect-gateway def1 bypass-dhcp"
# push "dhcp-option DNS 208.67.222.222"
# push "dhcp-option DNS 208.67.220.220"
# user nobody
# group nogroup
echo 1 > /proc/sys/net/ipv4/ip_forward
vim /etc/sysctl.conf
uncoment:
# net.ipv4.ip_forward=1
cp -r /usr/share/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/easy-rsa/keys
vim /etc/openvpn/easy-rsa/vars
#export KEY_COUNTRY="BG"
#export KEY_PROVINCE="bg"
#export KEY_CITY="Velingrad"
#export KEY_ORG="Home"
#export KEY_EMAIL="email60@abv.bg"
#export KEY_OU="MYOrganizationalUnit"
#export KEY_NAME="server"
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
./build-key-server server
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
service openvpn start
./build-key client1
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn
#Configuration with script
#!/bin/bash
apt-get update &&
apt-get -y upgrade &&
apt-get -y install openvpn easy-rsa &&
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz \
> /etc/openvpn/server.conf &&
cd /etc/openvpn/ &&
sed -i.bak -e 's/dh dh1024.pem/dh dh2048.pem/' -e \
's/;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/' -e \
's/;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 208.67.222.222"/' -e \
's/;push "dhcp-option DNS 208.67.220.220"/push "dhcp-option DNS 208.67.220.220"/' -e \
's/;user nobody/user-nobody/' -e \
's/;group nogroup/group nogroup/' server.conf &&
echo 1 > /proc/sys/net/ipv4/ip_forward &&
sed -i.bak 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf &&
cp -r /usr/share/easy-rsa/ /etc/openvpn &&
mkdir -p /etc/openvpn/easy-rsa/keys &&
cd /etc/openvpn/easy-rsa &&
sed -i.bak 's/export KEY_NAME="EasyRSA"/export KEY_NAME="server"/' vars &&
openssl dhparam -out /etc/openvpn/dh2048.pem 2048 &&
cd /etc/openvpn/easy-rsa &&
. ./vars &&
./clean-all &&
./build-ca &&
./build-key-server server &&
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn &&
service openvpn start &&
./build-key client1 &&
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn
client.ovpn се редактира с името на сървара
23.03.2016 г.
Make static arp with bash
#!/bin/bash
start=$1
end=$2
ar=/usr/bin/arping
arp=/usr/sbin/arp
echo "Start is $start and end is $end"
echo
start_end=${start##*.}
end_end=${end##*.}
for i in $(seq $start_end $end_end);do
$arp -s `$ar -I eth0 ${start%.*}.$i -c 1 |\
grep "Unicast" | awk -F" " '{print $4," ",$5}' |\
sed -e 's/\[//' -e 's/\]//'`
done
start=$1
end=$2
ar=/usr/bin/arping
arp=/usr/sbin/arp
echo "Start is $start and end is $end"
echo
start_end=${start##*.}
end_end=${end##*.}
for i in $(seq $start_end $end_end);do
$arp -s `$ar -I eth0 ${start%.*}.$i -c 1 |\
grep "Unicast" | awk -F" " '{print $4," ",$5}' |\
sed -e 's/\[//' -e 's/\]//'`
done
20.02.2016 г.
Remove empty space's from name of file
#!/bin/bash
DIRECTORY=/home/test
find $DIRECTORY -name "* *"|while read fname;do
new_name=`echo $fname | tr " " "_"`
if [ -e $new_name ];then
echo "Exists"
else
mv "$fname" $new_name
fi
done
DIRECTORY=/home/test
find $DIRECTORY -name "* *"|while read fname;do
new_name=`echo $fname | tr " " "_"`
if [ -e $new_name ];then
echo "Exists"
else
mv "$fname" $new_name
fi
done
Абонамент за:
Публикации
(
Atom
)