Zdarzyło się zapomnieliśmy hasła root`a do Mysql`a i co teraz? Spokojna głowa chwila przestoju i mamy ustawione nowe hasło do zarządzania serwerem.
Zatrzymujemy mysql`a
/etc/init.d/mysql stop
Sprawdzamy, czy jakieś procesy Mysql jeszcze żyją:
ps aux | grep mysql
root 6539 0.0 0.0 4336 1496 ? S 11:05 0:00 /bin/sh /usr/bin/mysqld_safe
mysql 6888 14.2 4.8 886556 191748 ? Sl 11:05 2:39 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
Zabijamy uruchomione procesy:
kill -9 6539 6888
Uruchamiamy mysql`a w trybie pomijania uprawnień
mysqld_safe --skip-grant-tables
160712 11:03:51 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
160712 11:03:51 mysqld_safe Logging to '/var/log/mysql/error.log'.
160712 11:03:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jeśli pojawiło się to co powyżej logujemy się do Mysql`a i zmieniamy hasło:
mysql --user=root mysql
update user set Password=PASSWORD('nowe-haslo') where user='root';
flush privileges;
Sprawdzamy PIDy procesów mysql`a
ps aux | grep mysql
root 6111 0.0 0.0 4336 1504 pts/3 S+ 11:03 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql 6473 0.3 1.1 493628 46328 pts/3 Sl+ 11:03 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
Zabijamy uruchomione procesy:
kill -9 6111 6473
Uruchamiamy demona w normalnym trybie
/etc/init.d/mysqld restart
Sprawdzamy, czy możemy się zalogować nowym hasłem
mysql -p
Jeśli wszystko zrobiliśmy dobrze, to właśnie zalogowaliśmy się zmienionym hasłem.
Pokazywanie postów oznaczonych etykietą problemy. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą problemy. Pokaż wszystkie posty
wtorek, 12 lipca 2016
środa, 25 maja 2016
APACHE, PHP i MYSQL brak polskich znaków po przeniesieniu na inny serwer
Przenosimy stronę ot taka fanaberia. Pliki skopiowane i przeniesione w miejsce docelowe, baza danych zaimportowana, virualka skonfigurowana. Pierwszy test. Wyświetla się strona, dane z bazy wyświetla, lecz polskie znaki się nie wyświetlają. Szybka instrukcja naprawy.
Edytujemy dwa pliki i zastępujemy na podkreślone wpisy fragmenty konfiguracji:
/etc/apache2/conf-available/charset.conf
# Read the documentation before enabling AddDefaultCharset.
# In general, it is only a good idea if you know that all your files
# have this encoding. It will override any encoding given in the files
# in meta http-equiv or xml encoding tags.
#AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-2
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Edytujemy dwa pliki i zastępujemy na podkreślone wpisy fragmenty konfiguracji:
/etc/apache2/conf-available/charset.conf
# Read the documentation before enabling AddDefaultCharset.
# In general, it is only a good idea if you know that all your files
# have this encoding. It will override any encoding given in the files
# in meta http-equiv or xml encoding tags.
#AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-2
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Następnie:
/etc/php5/apache2/php.ini
..
; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
;default_charset = "UTF-8"
default_charset = "ISO-8859-2"
..
Następnie przeładowujemy apache:
/etc/init.d/apache2 restart
Odświeżamy stronę i mamy już polskie znaki prawidłowo wyświetlone.
czwartek, 28 kwietnia 2016
GitLab zepsuł dodawanie w wiki pages podczas aktualizacji
Zainstalowałem sobie GitLaba na prośbę naszych programistów, i tak sobie przez pewien czas stał i się kurzył. Aż do czasu jak stwierdziliśmy, że sobie wiki na to przeniesiemy bo ładnie widać kto, co, kiedy zmienił/wpisał, itp. Przy okazji odkurzania na Debianie poszło aptitude upgrade, żeby wszystko ładnie działało. Niestaty trafiło na aktualizacje GitLab`a. Na pierwszy rzut oka działało bardzo ładnie, aż do pierwszej próby zaktualizowania wiki. 500 Error :/. Zaglądamy do logów i widzimy:
/var/log/gitlab/gitlab-rails/production.log
NoMethodError (undefined method `username' for #<Group:0x00000007e195b8>):
app/models/project_wiki.rb:158:in `default_message'
app/models/project_wiki.rb:152:in `commit_details'
app/models/project_wiki.rb:91:in `create_page'
app/models/wiki_page.rb:183:in `save'
app/models/wiki_page.rb:143:in `create'
app/services/wiki_pages/create_service.rb:6:in `execute'
app/controllers/projects/wikis_controller.rb:58:in `create'
lib/gitlab/middleware/go.rb:16:in `call'
Okazało się, że najnowsza wersja tak ma i już ..... Po godzinie czesania google udało się znaleźć rozwiązanie problemu przez społeczność.
W pierwszej kolejności sprawdzamy, czy z samym Gitlabem jest wsio ok
Sprawdzamy czy bazy wstały prawidłowo:
gitlab-rake db:migrate:status
database: gitlabhq_production
Status Migration ID Migration Name
--------------------------------------------------
up 20121220064453 Init schema
up 20130102143055 Rename owner to creator for project
up 20130110172407 Add public to project
up 20130123114545 Add issues tracker to project
up 20130125090214 Add user permissions
up 20130131070232 Remove private flag from project
up 20130206084024 Add description to namsespace
up 20130207104426 Add description to teams
up 20130211085435 Add issues tracker id to project
up 20130214154045 Rename state to merge status in milestone
up 20130218140952 Add state to issue
up 20130218141038 Add state to merge request
up 20130218141117 Add state to milestone
up 20130218141258 Convert closed to state in issue
up 20130218141327 Convert closed to state in merge request
up 20130218141344 Convert closed to state in milestone
up 20130218141444 Remove merged from merge request
up 20130218141507 Remove closed from issue
up 20130218141536 Remove closed from merge request
up 20130218141554 Remove closed from milestone
up 20130220124204 Add new merge status to merge request
up 20130220125544 Convert merge status in merge request
up 20130220125545 Remove merge status from merge request
up 20130220133245 Rename new merge status to merge status in milestone
up 20130304104623 Add state to user
up 20130304104740 Convert blocked to state
up 20130304105317 Remove blocked from user
up 20130315124931 User color scheme
up 20130318212250 Add snippets to features
up 20130319214458 Create forked project links
up 20130323174317 Add private to snippets
up 20130324151736 Add type to snippets
up 20130324172327 Change project id to null in snipepts
up 20130324203535 Add type value for snippets
up 20130325173941 Add notification level to user
up 20130326142630 Add index to users authentication token
up 20130403003950 Add last activity column into project
up 20130404164628 Add notification level to user project
up 20130410175022 Remove wiki table
up 20130419190306 Allow merges for forks
up 20130506085413 Add type to key
up 20130506090604 Create deploy keys projects
up 20130506095501 Remove project id from key
up 20130522141856 Add more fields to service
up 20130528184641 Add system to notes
up 20130611210815 Increase snippet text column size
up 20130613165816 Add password expires at to users
up 20130613173246 Add created by id to user
up 20130614132337 Add improted to project
up 20130617095603 Create users groups
up 20130621195223 Add notification level to user group
up 20130622115340 Add more db index
up 20130624162710 Add fingerprint to key
up 20130711063759 Create project group links
up 20130804151314 Add st diff to note
up 20130809124851 Add permission check to user
up 20130812143708 Add import url to project
up 20130819182730 Add internal ids to issues and mr
up 20130820102832 Add access to project group link
up 20130821090530 Remove deprecated tables
up 20130821090531 Add internal ids to milestones
up 20130909132950 Add description to merge request
up 20130926081215 Change owner id for group
up 20131005191208 Add avatar to users
up 20131009115346 Add confirmable to users
up 20131106151520 Remove default branch
up 20131112114325 Create broadcast messages
up 20131112220935 Add visibility level to projects
up 20131129154016 Add archived to projects
up 20131130165425 Add color and font to broadcast messages
up 20131202192556 Add event fields for web hook
up 20131214224427 Add hide no ssh key to users
up 20131217102743 Add recipients to service
up 20140116231608 Add website url to users
up 20140122112253 Create merge request diffs
up 20140122114406 Migrate mr diffs
up 20140122122549 Remove m rdiff fields
up 20140125162722 Add avatar to projects
up 20140127170938 Add group avatars
up 20140209025651 Create emails
up 20140214102325 Add api key to services
up 20140304005354 Add index merge request diffs on merge request
up 20140305193308 Add tag push hooks to project hook
up 20140312145357 Add import status to project
up 20140313092127 Migrate already imported projects
up 20140407135544 Fix namespaces
up 20140414131055 Change state to allow empty merge request diffs
up 20140415124820 Limits to mysql
up 20140416074002 Add index on iid
up 20140416185734 Index on current sign in at
up 20140428105831 Add notes index updated at
up 20140502115131 Add repo size to db
up 20140502125220 Migrate repo size
up 20140611135229 Add position to merge request
up 20140625115202 Create users star projects
up 20140729134820 Create labels
up 20140729140420 Create label links
up 20140729145339 Migrate project tags
up 20140729152420 Migrate taggable labels
up 20140730111702 Add index to labels
up 20140903115954 Migrate to new shell
up 20140907220153 Serialize service properties
up 20140914113604 Add members table
up 20140914145549 Migrate to new members model
up 20140914173417 Remove old member tables
up 20141006143943 Move slack service to webhook
up 20141007100818 Add visibility level to snippet
up 20141118150935 Add audit event
up 20141121133009 Add timestamps to members
up 20141121161704 Add identity table
up 20141205134006 Add locked at to merge request
up 20141216155758 Create doorkeeper tables
up 20141217125223 Add owner to application
up 20141223135007 Add import data to project table
up 20141226080412 Add developers can push to protected branches
up 20150108073740 Create application settings
up 20150116234544 Add home page url for application settings
up 20150116234545 Add gitlab access token to user
up 20150125163100 Add default branch protection setting
up 20150205211843 Add timestamps to identities
up 20150206181414 Add index to created at
up 20150206222854 Add notification email to user
up 20150209222013 Add missing index
up 20150211172122 Add template to service
up 20150211174341 Allow null in services project
up 20150213104043 Add twitter sharing enabled to application settings
up 20150213114800 Add hide no password to user
up 20150213121042 Add password automatically set to user
up 20150217123345 Add bitbucket access token and secret to user
up 20150219004514 Add events to services
up 20150223022001 Set missing last activity at
up 20150225065047 Add note events to services
up 20150301014758 Add restricted visibility levels to application settings
up 20150306023106 Fix namespace duplication
up 20150306023112 Add unique index to namespace
up 20150310194358 Add version check to application settings
up 20150313012111 Create subscriptions table
up 20150320234437 Add location to user
up 20150324155957 Set incorrect assignee id to null
up 20150327122227 Add public to key
up 20150327150017 Add import data to project
up 20150327223628 Add devise two factor to users
up 20150328132231 Add max attachment size to application settings
up 20150331183602 Add devise two factor backupable to users
up 20150406133311 Add invite data to member
up 20150411000035 Fix identities
up 20150411180045 Rename buildbox service
up 20150413192223 Add public email to users
up 20150417121913 Create project import data
up 20150417122318 Remove import data from project
up 20150421120000 Remove periods at ends of usernames
up 20150423033240 Add default project visibililty to application settings
up 20150425164646 Gitlab change collation for tag names.acts as taggable on engine
up 20150425164647 Remove duplicate tags
up 20150425164648 Add missing unique indices.acts as taggable on engine
up 20150425164649 Add taggings counter cache to tags.acts as taggable on engine
up 20150425164650 Add missing taggable index.acts as taggable on engine
up 20150425164651 Change collation for tag names.acts as taggable on engine
up 20150425173433 Add default snippet visibility to app settings
up 20150429002313 Remove abandoned group members records
up 20150502064022 Add restricted signup domains to application settings
up 20150509180749 Convert legacy reference notes
up 20150516060434 Add note events to web hooks
up 20150529111607 Add user oauth applications to application settings
up 20150529150354 Add after sign out path for application settings
up 20150609141121 Add session expire delay for application settings
up 20150610065936 Add dashboard to users
up 20150620233230 Add default otp required for login value
up 20150713160110 Add project view to users
up 20150717130904 Add commits count to project
up 20150730122406 Add updated by to issuables and notes
up 20150806104937 Create abuse reports
up 20150812080800 Add settings import sources
up 20150814065925 Remove oauth tokens from users
up 20150817163600 Deduplicate user identities
up 20150818213832 Add sent notifications
up 20150824002011 Add enable ssl verification
up 20150826001931 Add ci tables
up 20150902001023 Add template to label
up 20150914215247 Add ci tags
up 20150915001905 Enable ssl verification by default
up 20150916000405 Enable ssl verification for web hooks
up 20150916114643 Add help page text to application settings
up 20150916145038 Add index for committed at and
up 20150918084513 Add ci enabled to application settings
up 20150918161719 Remove invalid milestones from merge requests
up 20150920010715 Add consumed timestep to users
up 20150920161119 Add line code to sent notification
up 20150924125150 Add project id to ci commit
up 20150924125436 Migrate project id for ci commits
up 20150930001110 Merge request error field
up 20150930095736 Add null to name for ci projects
up 20150930110012 Add group share lock
up 20151002112914 Add stage idx to builds
up 20151002121400 Add index for builds
up 20151002122929 Add ref and tag to builds
up 20151002122943 Migrate ref and tag to build
up 20151005075649 Add user id to build
up 20151005150751 Add layout option for users
up 20151005162154 Remove ci enabled from application settings
up 20151007120511 Namespaces projects path lower indexes
up 20151008110232 Add users lower username email indexes
up 20151008123042 Add type and description to builds
up 20151008130321 Migrate name to description for builds
up 20151008143519 Add admin notification email setting
up 20151012173029 Set jira service api url
up 20151013092124 Add artifacts file to builds
up 20151016131433 Add ci projects gl project id index
up 20151016195451 Add ci builds and projects indexes
up 20151016195706 Add notes line code index
up 20151019111551 Fix build tags
up 20151019111703 Fail build without names
up 20151020145526 Add services template index
up 20151020173516 Ci limits to mysql
up 20151020173906 Add ci builds index for status
up 20151023112551 Fail build with empty name
up 20151023144219 Remove satellites
up 20151026182941 Add project path index
up 20151028152939 Add merge when build succeeds to merge request
up 20151103001141 Add public to group
up 20151103133339 Add shared runners setting
up 20151103134857 Create lfs objects
up 20151103134958 Create lfs objects projects
up 20151104105513 Add file to lfs objects
up 20151105094515 Create releases
up 20151106000015 Add is award to notes
up 20151109100728 Add max artifacts size to application settings
up 20151109134526 Add issues state index
up 20151109134916 Add projects visibility level index
up 20151110125604 Add import error to project
up 20151114113410 Add index for lfs oid and size
up 20151116144118 Add unique for lfs oid index
up 20151118162244 Add projects public index
up 20151201203948 Raise hook url limit
up 20151203162133 Add hide project limit to users
up 20151203162134 Add build events to services
up 20151209144329 Migrate ci web hooks
up 20151209145909 Migrate ci emails
up 20151210030143 Add unlock token to user
up 20151210072243 Add runners registration token to application settings
up 20151210125232 Migrate ci slack service
up 20151210125927 Migrate ci hip chat service
up 20151210125928 Add ci to project
up 20151210125929 Add project id to ci
up 20151210125930 Migrate ci to project
up 20151210125931 Add index to ci tables
up 20151210125932 Drop null for ci tables
up 20151218154042 Add tfa to application settings
up 20151221234414 Add tfa additional fields
up 20151224123230 Rename emojis
up 20151228111122 Remove public from namespace
up 20151228150906 Influxdb settings
up 20151228175719 Add recaptcha to application settings
up 20151229102248 Influxdb udp port setting
up 20151229112614 Influxdb remote database setting
up 20151230132518 Add artifacts metadata to ci build
up 20151231152326 Add akismet to application settings
up 20151231202530 Remove alert type from broadcast messages
up 20160106162223 Add index milestones title
up 20160106164438 Remove influxdb credentials
up 20160109054846 Create spam logs
up 20160113111034 Add metrics sample interval
up 20160118155830 Add sentry to application settings
up 20160118232755 Add ip blocking settings to application settings
up 20160119111158 Add services category
up 20160119112418 Add services default
up 20160119145451 Add ldap email to users
up 20160120172143 Add base commit sha to merge request diffs
up 20160121030729 Add email author in body to application settings
up 20160122185421 Add pending delete to project
up 20160128212447 Remove ip blocking settings from application settings
up 20160128233227 Change lfs objects size column
up 20160129135155 Remove dot atom path ending of projects
up 20160129155512 Add merge commit sha to merge requests
up 20160202091601 Add erasable to ci build
up 20160202164642 Add allow guest to access builds project
up 20160204144558 Add real size to merge request diffs
up 20160209130428 Add index to snippet
up 20160212123307 Create tasks
up 20160217100506 Add description to label
up 20160217174422 Add note to tasks
up 20160220123949 Rename tasks to todos
up 20160222153918 Create appearances ce
up 20160223192159 Add confidential to issues
up 20160225090018 Add delete at to issues
up 20160225101956 Add delete at to merge requests
up 20160226114608 Add trigram indexes for searching
up 20160227120001 Add event field for web hook
up 20160227120047 Add event to services
up 20160229193553 Add main language to repository
up 20160301124843 Add visibility level to groups
up 20160302151724 Add import credentials to project import data
up 20160302152808 Remove wrong import url from projects
up 20160305220806 Remove expires at from snippets
up 20160307221555 Disallow blank line code on note
up 20160308212903 Add default group visibility to application settings
up 20160309140734 Fix todos
up 20160310124959 Add due date to issues
up 20160310185910 Add external flag to users
up 20160314143402 Projects add pushes since gc
up 20160315135439 Project add repository check
up 20160316123110 Ci runners token index
up 20160316192622 Change target id to null on todos
up 20160316204731 Add commit id to todos
up 20160317092222 Add moved to to issue
up 20160320204112 Index namespaces on visibility level
up 20160324020319 Remove todos for deleted issues
up 20160328112808 Create notification settings
up 20160328115649 Migrate new notification setting
up 20160328121138 Add notification setting index
up 20160329144452 Add index on pending delete projects
up 20160331133914 Remove todos for deleted merge requests
up 20160331223143 Remove twitter sharing enabled from application settings
up 20160412140240 Add repository checks enabled setting
up 20160415133440 Add shared runners text to application settings
up 20160419120017 Add metrics packet size
up 20160421130527 Disable repository checks
/var/log/gitlab/gitlab-rails/production.log
NoMethodError (undefined method `username' for #<Group:0x00000007e195b8>):
app/models/project_wiki.rb:158:in `default_message'
app/models/project_wiki.rb:152:in `commit_details'
app/models/project_wiki.rb:91:in `create_page'
app/models/wiki_page.rb:183:in `save'
app/models/wiki_page.rb:143:in `create'
app/services/wiki_pages/create_service.rb:6:in `execute'
app/controllers/projects/wikis_controller.rb:58:in `create'
lib/gitlab/middleware/go.rb:16:in `call'
W pierwszej kolejności sprawdzamy, czy z samym Gitlabem jest wsio ok
Sprawdzamy czy bazy wstały prawidłowo:
gitlab-rake db:migrate:status
database: gitlabhq_production
Status Migration ID Migration Name
--------------------------------------------------
up 20121220064453 Init schema
up 20130102143055 Rename owner to creator for project
up 20130110172407 Add public to project
up 20130123114545 Add issues tracker to project
up 20130125090214 Add user permissions
up 20130131070232 Remove private flag from project
up 20130206084024 Add description to namsespace
up 20130207104426 Add description to teams
up 20130211085435 Add issues tracker id to project
up 20130214154045 Rename state to merge status in milestone
up 20130218140952 Add state to issue
up 20130218141038 Add state to merge request
up 20130218141117 Add state to milestone
up 20130218141258 Convert closed to state in issue
up 20130218141327 Convert closed to state in merge request
up 20130218141344 Convert closed to state in milestone
up 20130218141444 Remove merged from merge request
up 20130218141507 Remove closed from issue
up 20130218141536 Remove closed from merge request
up 20130218141554 Remove closed from milestone
up 20130220124204 Add new merge status to merge request
up 20130220125544 Convert merge status in merge request
up 20130220125545 Remove merge status from merge request
up 20130220133245 Rename new merge status to merge status in milestone
up 20130304104623 Add state to user
up 20130304104740 Convert blocked to state
up 20130304105317 Remove blocked from user
up 20130315124931 User color scheme
up 20130318212250 Add snippets to features
up 20130319214458 Create forked project links
up 20130323174317 Add private to snippets
up 20130324151736 Add type to snippets
up 20130324172327 Change project id to null in snipepts
up 20130324203535 Add type value for snippets
up 20130325173941 Add notification level to user
up 20130326142630 Add index to users authentication token
up 20130403003950 Add last activity column into project
up 20130404164628 Add notification level to user project
up 20130410175022 Remove wiki table
up 20130419190306 Allow merges for forks
up 20130506085413 Add type to key
up 20130506090604 Create deploy keys projects
up 20130506095501 Remove project id from key
up 20130522141856 Add more fields to service
up 20130528184641 Add system to notes
up 20130611210815 Increase snippet text column size
up 20130613165816 Add password expires at to users
up 20130613173246 Add created by id to user
up 20130614132337 Add improted to project
up 20130617095603 Create users groups
up 20130621195223 Add notification level to user group
up 20130622115340 Add more db index
up 20130624162710 Add fingerprint to key
up 20130711063759 Create project group links
up 20130804151314 Add st diff to note
up 20130809124851 Add permission check to user
up 20130812143708 Add import url to project
up 20130819182730 Add internal ids to issues and mr
up 20130820102832 Add access to project group link
up 20130821090530 Remove deprecated tables
up 20130821090531 Add internal ids to milestones
up 20130909132950 Add description to merge request
up 20130926081215 Change owner id for group
up 20131005191208 Add avatar to users
up 20131009115346 Add confirmable to users
up 20131106151520 Remove default branch
up 20131112114325 Create broadcast messages
up 20131112220935 Add visibility level to projects
up 20131129154016 Add archived to projects
up 20131130165425 Add color and font to broadcast messages
up 20131202192556 Add event fields for web hook
up 20131214224427 Add hide no ssh key to users
up 20131217102743 Add recipients to service
up 20140116231608 Add website url to users
up 20140122112253 Create merge request diffs
up 20140122114406 Migrate mr diffs
up 20140122122549 Remove m rdiff fields
up 20140125162722 Add avatar to projects
up 20140127170938 Add group avatars
up 20140209025651 Create emails
up 20140214102325 Add api key to services
up 20140304005354 Add index merge request diffs on merge request
up 20140305193308 Add tag push hooks to project hook
up 20140312145357 Add import status to project
up 20140313092127 Migrate already imported projects
up 20140407135544 Fix namespaces
up 20140414131055 Change state to allow empty merge request diffs
up 20140415124820 Limits to mysql
up 20140416074002 Add index on iid
up 20140416185734 Index on current sign in at
up 20140428105831 Add notes index updated at
up 20140502115131 Add repo size to db
up 20140502125220 Migrate repo size
up 20140611135229 Add position to merge request
up 20140625115202 Create users star projects
up 20140729134820 Create labels
up 20140729140420 Create label links
up 20140729145339 Migrate project tags
up 20140729152420 Migrate taggable labels
up 20140730111702 Add index to labels
up 20140903115954 Migrate to new shell
up 20140907220153 Serialize service properties
up 20140914113604 Add members table
up 20140914145549 Migrate to new members model
up 20140914173417 Remove old member tables
up 20141006143943 Move slack service to webhook
up 20141007100818 Add visibility level to snippet
up 20141118150935 Add audit event
up 20141121133009 Add timestamps to members
up 20141121161704 Add identity table
up 20141205134006 Add locked at to merge request
up 20141216155758 Create doorkeeper tables
up 20141217125223 Add owner to application
up 20141223135007 Add import data to project table
up 20141226080412 Add developers can push to protected branches
up 20150108073740 Create application settings
up 20150116234544 Add home page url for application settings
up 20150116234545 Add gitlab access token to user
up 20150125163100 Add default branch protection setting
up 20150205211843 Add timestamps to identities
up 20150206181414 Add index to created at
up 20150206222854 Add notification email to user
up 20150209222013 Add missing index
up 20150211172122 Add template to service
up 20150211174341 Allow null in services project
up 20150213104043 Add twitter sharing enabled to application settings
up 20150213114800 Add hide no password to user
up 20150213121042 Add password automatically set to user
up 20150217123345 Add bitbucket access token and secret to user
up 20150219004514 Add events to services
up 20150223022001 Set missing last activity at
up 20150225065047 Add note events to services
up 20150301014758 Add restricted visibility levels to application settings
up 20150306023106 Fix namespace duplication
up 20150306023112 Add unique index to namespace
up 20150310194358 Add version check to application settings
up 20150313012111 Create subscriptions table
up 20150320234437 Add location to user
up 20150324155957 Set incorrect assignee id to null
up 20150327122227 Add public to key
up 20150327150017 Add import data to project
up 20150327223628 Add devise two factor to users
up 20150328132231 Add max attachment size to application settings
up 20150331183602 Add devise two factor backupable to users
up 20150406133311 Add invite data to member
up 20150411000035 Fix identities
up 20150411180045 Rename buildbox service
up 20150413192223 Add public email to users
up 20150417121913 Create project import data
up 20150417122318 Remove import data from project
up 20150421120000 Remove periods at ends of usernames
up 20150423033240 Add default project visibililty to application settings
up 20150425164646 Gitlab change collation for tag names.acts as taggable on engine
up 20150425164647 Remove duplicate tags
up 20150425164648 Add missing unique indices.acts as taggable on engine
up 20150425164649 Add taggings counter cache to tags.acts as taggable on engine
up 20150425164650 Add missing taggable index.acts as taggable on engine
up 20150425164651 Change collation for tag names.acts as taggable on engine
up 20150425173433 Add default snippet visibility to app settings
up 20150429002313 Remove abandoned group members records
up 20150502064022 Add restricted signup domains to application settings
up 20150509180749 Convert legacy reference notes
up 20150516060434 Add note events to web hooks
up 20150529111607 Add user oauth applications to application settings
up 20150529150354 Add after sign out path for application settings
up 20150609141121 Add session expire delay for application settings
up 20150610065936 Add dashboard to users
up 20150620233230 Add default otp required for login value
up 20150713160110 Add project view to users
up 20150717130904 Add commits count to project
up 20150730122406 Add updated by to issuables and notes
up 20150806104937 Create abuse reports
up 20150812080800 Add settings import sources
up 20150814065925 Remove oauth tokens from users
up 20150817163600 Deduplicate user identities
up 20150818213832 Add sent notifications
up 20150824002011 Add enable ssl verification
up 20150826001931 Add ci tables
up 20150902001023 Add template to label
up 20150914215247 Add ci tags
up 20150915001905 Enable ssl verification by default
up 20150916000405 Enable ssl verification for web hooks
up 20150916114643 Add help page text to application settings
up 20150916145038 Add index for committed at and
up 20150918084513 Add ci enabled to application settings
up 20150918161719 Remove invalid milestones from merge requests
up 20150920010715 Add consumed timestep to users
up 20150920161119 Add line code to sent notification
up 20150924125150 Add project id to ci commit
up 20150924125436 Migrate project id for ci commits
up 20150930001110 Merge request error field
up 20150930095736 Add null to name for ci projects
up 20150930110012 Add group share lock
up 20151002112914 Add stage idx to builds
up 20151002121400 Add index for builds
up 20151002122929 Add ref and tag to builds
up 20151002122943 Migrate ref and tag to build
up 20151005075649 Add user id to build
up 20151005150751 Add layout option for users
up 20151005162154 Remove ci enabled from application settings
up 20151007120511 Namespaces projects path lower indexes
up 20151008110232 Add users lower username email indexes
up 20151008123042 Add type and description to builds
up 20151008130321 Migrate name to description for builds
up 20151008143519 Add admin notification email setting
up 20151012173029 Set jira service api url
up 20151013092124 Add artifacts file to builds
up 20151016131433 Add ci projects gl project id index
up 20151016195451 Add ci builds and projects indexes
up 20151016195706 Add notes line code index
up 20151019111551 Fix build tags
up 20151019111703 Fail build without names
up 20151020145526 Add services template index
up 20151020173516 Ci limits to mysql
up 20151020173906 Add ci builds index for status
up 20151023112551 Fail build with empty name
up 20151023144219 Remove satellites
up 20151026182941 Add project path index
up 20151028152939 Add merge when build succeeds to merge request
up 20151103001141 Add public to group
up 20151103133339 Add shared runners setting
up 20151103134857 Create lfs objects
up 20151103134958 Create lfs objects projects
up 20151104105513 Add file to lfs objects
up 20151105094515 Create releases
up 20151106000015 Add is award to notes
up 20151109100728 Add max artifacts size to application settings
up 20151109134526 Add issues state index
up 20151109134916 Add projects visibility level index
up 20151110125604 Add import error to project
up 20151114113410 Add index for lfs oid and size
up 20151116144118 Add unique for lfs oid index
up 20151118162244 Add projects public index
up 20151201203948 Raise hook url limit
up 20151203162133 Add hide project limit to users
up 20151203162134 Add build events to services
up 20151209144329 Migrate ci web hooks
up 20151209145909 Migrate ci emails
up 20151210030143 Add unlock token to user
up 20151210072243 Add runners registration token to application settings
up 20151210125232 Migrate ci slack service
up 20151210125927 Migrate ci hip chat service
up 20151210125928 Add ci to project
up 20151210125929 Add project id to ci
up 20151210125930 Migrate ci to project
up 20151210125931 Add index to ci tables
up 20151210125932 Drop null for ci tables
up 20151218154042 Add tfa to application settings
up 20151221234414 Add tfa additional fields
up 20151224123230 Rename emojis
up 20151228111122 Remove public from namespace
up 20151228150906 Influxdb settings
up 20151228175719 Add recaptcha to application settings
up 20151229102248 Influxdb udp port setting
up 20151229112614 Influxdb remote database setting
up 20151230132518 Add artifacts metadata to ci build
up 20151231152326 Add akismet to application settings
up 20151231202530 Remove alert type from broadcast messages
up 20160106162223 Add index milestones title
up 20160106164438 Remove influxdb credentials
up 20160109054846 Create spam logs
up 20160113111034 Add metrics sample interval
up 20160118155830 Add sentry to application settings
up 20160118232755 Add ip blocking settings to application settings
up 20160119111158 Add services category
up 20160119112418 Add services default
up 20160119145451 Add ldap email to users
up 20160120172143 Add base commit sha to merge request diffs
up 20160121030729 Add email author in body to application settings
up 20160122185421 Add pending delete to project
up 20160128212447 Remove ip blocking settings from application settings
up 20160128233227 Change lfs objects size column
up 20160129135155 Remove dot atom path ending of projects
up 20160129155512 Add merge commit sha to merge requests
up 20160202091601 Add erasable to ci build
up 20160202164642 Add allow guest to access builds project
up 20160204144558 Add real size to merge request diffs
up 20160209130428 Add index to snippet
up 20160212123307 Create tasks
up 20160217100506 Add description to label
up 20160217174422 Add note to tasks
up 20160220123949 Rename tasks to todos
up 20160222153918 Create appearances ce
up 20160223192159 Add confidential to issues
up 20160225090018 Add delete at to issues
up 20160225101956 Add delete at to merge requests
up 20160226114608 Add trigram indexes for searching
up 20160227120001 Add event field for web hook
up 20160227120047 Add event to services
up 20160229193553 Add main language to repository
up 20160301124843 Add visibility level to groups
up 20160302151724 Add import credentials to project import data
up 20160302152808 Remove wrong import url from projects
up 20160305220806 Remove expires at from snippets
up 20160307221555 Disallow blank line code on note
up 20160308212903 Add default group visibility to application settings
up 20160309140734 Fix todos
up 20160310124959 Add due date to issues
up 20160310185910 Add external flag to users
up 20160314143402 Projects add pushes since gc
up 20160315135439 Project add repository check
up 20160316123110 Ci runners token index
up 20160316192622 Change target id to null on todos
up 20160316204731 Add commit id to todos
up 20160317092222 Add moved to to issue
up 20160320204112 Index namespaces on visibility level
up 20160324020319 Remove todos for deleted issues
up 20160328112808 Create notification settings
up 20160328115649 Migrate new notification setting
up 20160328121138 Add notification setting index
up 20160329144452 Add index on pending delete projects
up 20160331133914 Remove todos for deleted merge requests
up 20160331223143 Remove twitter sharing enabled from application settings
up 20160412140240 Add repository checks enabled setting
up 20160415133440 Add shared runners text to application settings
up 20160419120017 Add metrics packet size
up 20160421130527 Disable repository checks
Jeśli są wszystkie up to jest ok. Jak nie trzeba je przemigrować ponownie:
gitlab-rake db:migrate
Następnie sprawdzamy poprawność całej "instancji" GitLaba:
gitlab-rake gitlab:check SANITIZE=true
Checking GitLab Shell ...
GitLab Shell version >= 2.7.2 ? ... OK (2.7.2)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
hooks directories in repos are links: ...
7/1 ... repository is empty
11/3 ... repository is empty
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Check GitLab API access: OK
Check directories and files:
/var/opt/gitlab/git-data/repositories: OK
/var/opt/gitlab/.ssh/authorized_keys: OK
Test redis-cli executable: redis-cli 2.8.24
Send ping to redis server: PONG
gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Sidekiq ...
Running? ... yes
Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking Reply by email ...
Reply by email is disabled in config/gitlab.yml
Checking Reply by email ... Finished
Checking LDAP ...
LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab ...
Git configured with autocrlf=input? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory setup correctly? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
projects have namespace: ...
7/1 ... yes
11/3 ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.1.0 ? ... yes (2.1.8)
Your git bin path is "/opt/gitlab/embedded/bin/git"
Git version >= 2.7.3 ? ... yes (2.7.4)
Active users: 6
Checking GitLab ... Finished
Jak tu nam wywali na czerwono jakiś błąd to od razu podpowie jak go naprawić. Naprawiamy puszczamy polecenie jeszcze raz i weryfikujemy. Jeśli to nie pomoże to zabieramy się za naprawę błędu. Edytujemy plik : /opt/gitlab/embedded/service/gitlab-rails/app/models/project_wiki.rb.
linie 158:
"#{@user.username} #{action} page: #{title}"
modyfikujemy tak:
"#{@user.name} #{action} page: #{title}"
Następnie edytujemy plik: /opt/gitlab/embedded/service/gitlab-rails/app/services/wiki_pages/create_service.rb
module WikiPages
class CreateService < WikiPages::BaseService
def execute
page = WikiPage.new(@project.wiki)
if page.create(@params)
execute_hooks(page, 'create')
end
page
end
end
end
Zamieniamy na:
module WikiPages
class UpdateService < WikiPages::BaseService
def execute(page)
if page.update(@params[:content], @params[:format], @params[:message])
execute_hooks(page, 'update')
end
page
end
end
end
Restartujemy GitLaba testujemy i powinno być Ok. źródło do rozwiązania (szczegóły w komentarzach są):
https://gitlab.com/gitlab-org/gitlab-ce/issues/15623#note_5054714
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3924/diffs#diff-2
piątek, 8 kwietnia 2016
Wyłączenie pojedynczych katalogów z zabezpieczenia hasłem w .htaccess
Tak się czasami za dzieje, że musimy witrynę zabezpieczyć hasłem całą, ale do malutkiego podfolderu musi być normalny dostęp. Przedstawię poniżej najprostszy sposób wprowadzony i przetestowany na Apache2 2.4.x. Tworzymy/modyfikujemy plik .htaccess który zabezpiecza naszą witrynę (nie będę opisywał składni pliku do zabezpieczania witryny). Jak już przy wchodzeniu na stronę wszędzie pyta się nam o hasło przechodzimy do odbezpieczania interesujących nas katalogów.
W subfolderach, które chcemy mieć wolne umieszczamy plik .htaccess o następującej składni:
Order Allow,Deny
Allow from all
Satisfy any
W subfolderach, które chcemy mieć wolne umieszczamy plik .htaccess o następującej składni:
Order Allow,Deny
Allow from all
Satisfy any
To powinno wystarczyć. Jeśli jednak ciągle prosi o hasło, to należy zobaczyć, czy po anulowaniu żądania hasła wyświetla nam jakiekolwiek treści. Jeśli tak to znaczy, że strona odwołuje się także do innych folderów, w których także powinniśmy umieścić powyższy plik .htaccess np folder z grafiką, lub stylem css.
czwartek, 26 lutego 2015
Jak usunąć adware right coupon/myapps, oraz inne "wirusy" ze swojego komputera
Ostatnio miałem nieprzyjemność spotkać się z tego typu adware, wobec którego adwcleaner, adblock ghostery i różnego rodzaju oprogramowanie nie potrafiło go usunąć. Na pewno jak piszą na wielu rodzaju stronach należy odinstalować z systemu wszelakiego rodzaju oprogramowanie, które wydaje się nam niepotrzebne lub niechciane. W przeglądarkach następnie należy usunąć niepotrzebne, nieużywane i niepożądane dodatki. Przechodzimy teraz do czyszczenia. Zrobimy to kompleksowo i pewnie przy okazji usuniemy dodatkowe niechciane programy szpiegujące, odpowiedzialne za dziwne zachowanie komputera i niechciane reklamy.
Najpierw ściągamy najnowszą wersję AdwCleaner`a ze strony: http://www.bleepingcomputer.com/download/adwcleaner/ i go uruchamiamy:
Zamykamy wszystkie otwarte przeglądarki internetowe, zapisujemy prace, których nie chcemy utracić i naciskamy "Scan" w aplikacji, a następnie cierpliwie czekamy na wyniki skanowania. Po ukończonym skanowaniu w zakładkach (Service, Folders, Files, itp) możemy sobie sprawdzić co nam program znalazł. Żeby wyczyścić komputer wciskamy "Clean". Po skończonym czyszczeniu komputer będzie się restartował. Jak już się ponownie uruchomi pokaże się nam raport z tego co usunął.
Następnym krokiem/aplikacją, której użyjemy jest RKill do pobrania ze strony: http://www.bleepingcomputer.com/download/rkill/ po uruchomieniu ukaże się nam okno:
Czekamy, az program skończy i przechodzimy do następnej aplikacji JRT dostępnej na stronie: http://www.bleepingcomputer.com/download/junkware-removal-tool/ Uruchamiamy aplikację:
Wciskamy "Spację". W trakcie skanowanie pozamyka przeglądarki internetowe jak są uruchomione.
Ostatnim programem, który posprzątać powinien całą resztę jest ComboFix dostępny: http://www.bleepingcomputer.com/download/combofix/
Dobrze przed uruchomieniem wyłączyć program antywirusowy, a najlepiej jeszcze uruchamiać go w trybie awaryjnym systemu Windows. Uruchamiamy aplikację:
Potwierdzamy "Zgadzam się"
Jeśli nie wyłączyliśmy antywirusa pojawi się nam taki komunikat:
Oraz "standardowy błąd" - potwierdzamy Ok
W tym miejscu jeśli nie mamy zainstalowanej konsoli odzyskiwanie systemu Windoww program będzie proponował ściągnięcie jej i instalację.
Po tych zabiegach uruchamiamy ponownie komputer i sprawdzamy czy pozbyliśmy sie nieproszonych gości. Powyższe programy przed użyciem powinny być "świeżo" ściągnięte z internetu ze względu, na to że nasze na dysku mogą być już nieaktualne i zainfekowane. Tą procedurę warto raz na jakiś czas profilaktycznie powtarzać na naszym komputerze. Dodatkowo warto zaopatrzyć nasze przeglądarki o wcześniej wspominane dodatki jak AdBlock i Ghostery, przez które komfort i bezpieczeństwo przeglądania internetu będzie poprawione, nie wspominając już o instalowaniu najnowszych poprawek do programów antywirusowych i systemu Windows. Nie zabezpieczymy sie tym nigdy na 100%, ale zawsze zmniejszymy prawdopodobieństwo załapania niechcianego typu adware itp.
Najpierw ściągamy najnowszą wersję AdwCleaner`a ze strony: http://www.bleepingcomputer.com/download/adwcleaner/ i go uruchamiamy:
Zamykamy wszystkie otwarte przeglądarki internetowe, zapisujemy prace, których nie chcemy utracić i naciskamy "Scan" w aplikacji, a następnie cierpliwie czekamy na wyniki skanowania. Po ukończonym skanowaniu w zakładkach (Service, Folders, Files, itp) możemy sobie sprawdzić co nam program znalazł. Żeby wyczyścić komputer wciskamy "Clean". Po skończonym czyszczeniu komputer będzie się restartował. Jak już się ponownie uruchomi pokaże się nam raport z tego co usunął.
Następnym krokiem/aplikacją, której użyjemy jest RKill do pobrania ze strony: http://www.bleepingcomputer.com/download/rkill/ po uruchomieniu ukaże się nam okno:
Czekamy, az program skończy i przechodzimy do następnej aplikacji JRT dostępnej na stronie: http://www.bleepingcomputer.com/download/junkware-removal-tool/ Uruchamiamy aplikację:
Wciskamy "Spację". W trakcie skanowanie pozamyka przeglądarki internetowe jak są uruchomione.
Ostatnim programem, który posprzątać powinien całą resztę jest ComboFix dostępny: http://www.bleepingcomputer.com/download/combofix/
Dobrze przed uruchomieniem wyłączyć program antywirusowy, a najlepiej jeszcze uruchamiać go w trybie awaryjnym systemu Windows. Uruchamiamy aplikację:
Potwierdzamy "Zgadzam się"
Jeśli nie wyłączyliśmy antywirusa pojawi się nam taki komunikat:
Oraz "standardowy błąd" - potwierdzamy Ok
W tym miejscu jeśli nie mamy zainstalowanej konsoli odzyskiwanie systemu Windoww program będzie proponował ściągnięcie jej i instalację.
Po tych zabiegach uruchamiamy ponownie komputer i sprawdzamy czy pozbyliśmy sie nieproszonych gości. Powyższe programy przed użyciem powinny być "świeżo" ściągnięte z internetu ze względu, na to że nasze na dysku mogą być już nieaktualne i zainfekowane. Tą procedurę warto raz na jakiś czas profilaktycznie powtarzać na naszym komputerze. Dodatkowo warto zaopatrzyć nasze przeglądarki o wcześniej wspominane dodatki jak AdBlock i Ghostery, przez które komfort i bezpieczeństwo przeglądania internetu będzie poprawione, nie wspominając już o instalowaniu najnowszych poprawek do programów antywirusowych i systemu Windows. Nie zabezpieczymy sie tym nigdy na 100%, ale zawsze zmniejszymy prawdopodobieństwo załapania niechcianego typu adware itp.
czwartek, 29 stycznia 2015
Samsung Galaxy Core Plus (SM-G3500) czyszczenie partycji Cache i dodawanie uprawnień root
Z czasem staje się tak, że telefon staje się zamulony aplikacje fiksują itp. Zanim wyczyścimy nasz telefon od nowa i będziemy męczyć się z konfiguracją i instalacją aplikacji, to w pierwszej kolejności warto wyczyścić partycje Cache. Ta operacja nie wiąże się z utratą danych. Żeby wykonać czyszczenie należy:
Lecz jeśli jednak ciągle żal nam danych i chcielibyśmy jednak zarchiwizować WSZYSTKIE dane, aplikacje i ustawienia, to potrzebujemy uprawnień root, żeby można było skorzystać z Titanium Backup.
Żeby zainstalować roota (szczególnie w najnowszej wersji systemu) to w pierwszej kolejności w systemie (Ustawienia -> Zabezpieczenia -> Nieznane źródła) zezwalamy na instalację aplikacji z poza Sklepu Play. Następnie ze strony: http://www.mgyun.com/m/en ściągamy aplikację iRoot i wgrywamy ją na kartę pamięci urządzenia i następnie instalujemy. Powita nas ekran z azjatyckimi znaczkami i klikamy na przycisk w którym pojawia się słowo "ROOT" i czekamy jak skończy i buźka będzie uśmiechnięta to znaczy, że się udało. Można doinstalować aplikację "SuperSu" do kompletu jakby się okazało, że jakaś aplikacja jej potrzebuje. Po tym instalujemy Titanium Backup i możemy sobie wykonać kopie danych (pamiętajmy, żeby pliki backupu wykonywały się na Karcie SD, więc trzeba to w programie ustawić), aplikacji i ustawień przed przywróceniem telefonu do ustawień fabrycznych. Po wyczyszczeniu telefony ponownie instalujemy iRoot i Titanium backup i odzyskujemy dane i aplikacje z backupu.
I cieszymy się odmuloną komórką
- Wyłączyć telefon
- Wcisnąć i przytrzymać przyciski: "Volume Up", "Home" and "Power" naraz
- Trzymamy je do czasu jak się pojawi logo Samsung, wtedy puszczamy przycisk "Power"
- Po chwili powinien ukazać się obrazek robocika z wykrzyknikiem i wtedy puszczamy wszystkie wciśnięte przyciski
- Wciskamy przycisk "Volume Up", "Home" i pojawia nam się Menu Recovery
- Za pomocą przycisku "Volume Down" zaznaczamy "wipe cache partition"
- Wciskamy przycisk "Power" żeby potwierdzić wybór
- Telefon po wykonanej operacji sam się zrestartuje
Lecz jeśli jednak ciągle żal nam danych i chcielibyśmy jednak zarchiwizować WSZYSTKIE dane, aplikacje i ustawienia, to potrzebujemy uprawnień root, żeby można było skorzystać z Titanium Backup.
Żeby zainstalować roota (szczególnie w najnowszej wersji systemu) to w pierwszej kolejności w systemie (Ustawienia -> Zabezpieczenia -> Nieznane źródła) zezwalamy na instalację aplikacji z poza Sklepu Play. Następnie ze strony: http://www.mgyun.com/m/en ściągamy aplikację iRoot i wgrywamy ją na kartę pamięci urządzenia i następnie instalujemy. Powita nas ekran z azjatyckimi znaczkami i klikamy na przycisk w którym pojawia się słowo "ROOT" i czekamy jak skończy i buźka będzie uśmiechnięta to znaczy, że się udało. Można doinstalować aplikację "SuperSu" do kompletu jakby się okazało, że jakaś aplikacja jej potrzebuje. Po tym instalujemy Titanium Backup i możemy sobie wykonać kopie danych (pamiętajmy, żeby pliki backupu wykonywały się na Karcie SD, więc trzeba to w programie ustawić), aplikacji i ustawień przed przywróceniem telefonu do ustawień fabrycznych. Po wyczyszczeniu telefony ponownie instalujemy iRoot i Titanium backup i odzyskujemy dane i aplikacje z backupu.
I cieszymy się odmuloną komórką
środa, 22 października 2014
CentOS 7 problem z autostartem klienta NRPE z innym użytkownikiem niż nrpe
CentOS 7 momentami przekleństwo, bo coś co zawsze działało nie działa wcale, albo od d***y strony. Jak zwykle coś musi być nie tak. Mamy zainstalowanego nrpe na hoście wszystko ładnie działa Nagios zbiera wszystko tak jak trzeba , ale .... do momentu restartu maszyny. Okazuje się, że usługa nie wstaje automatycznie. Sprawdzamy co się dzieje:
[root@localhost ~]# service nrpe start
[root@localhost ~]# systemctl status nrpe.service
nrpe.service - NRPE
Loaded: loaded (/usr/lib/systemd/system/nrpe.service; enabled)
Active: active (running) since Tue 2014-10-21 08:02:23 CEST; 1 day 1h ago
Main PID: 31220 (nrpe)
CGroup: /system.slice/nrpe.service
└─31220 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
Oct 21 08:02:22 localhost.localdomain nrpe[31220]: Starting up daemon
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Warning: Could not set effective GID=997
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Warning: Unable to change supplementary groups using initgroups()
Oct 21 08:02:23 dlocalhost.localdomain nrpe[31220]: Warning: Could not set effective UID=998
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Server listening on xxx.xxx.xxx.xxx port 5666.
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Listening for connections on port 0
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Allowing connections from: xxx.xxx.xxx.xxx
Oct 21 08:02:23 localhost.localdomain systemd[1]: Started NRPE.
Wychodzi na to, że NRPE nie może sobie poradzić, z uruchomieniem z innym użytkownikiem niż nrpe. Odpalmy wtakim razie nrpe z poziomu xinetd:
yum install xinetd
cd /etc/xintetd.d
Tworzymy plik startowy dla nrpe:
vi nrpe
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/sbin/nrpe
server_args = -c /etc/nagios/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 xxx.xxx.xxx.xxx
}
Musimy dodać jeszcze odpowiedni wpis w /etc/services, żeby xinetd odpowiedniouruchomił
vi /etc/services
Szukamy takiej linijki:
###UNAUTHORIZED USE: Port 5666 used by SAIC NRPE############
Jeśli jest to pod nią wpisujemy (jak nie to wpisujemy na wysokości, gdzie nasz port powinien się znaleźć):
nrpe<--><------>5666/tcp<------><------>#NRPE
Wyłączamy klasyczne startowanie nrpe i uruchamiamy je z poziomu xinetd, oraz automatyczny jej start:
chkconfig nrpe off
chkconfig xinetd on
service xinetd start
Sprawdzamy czy usługa odpowiednio wstała:
netstat -tulpn
jak pokazuje się wpis:
tcp6 0 0 :::5666 :::* LISTEN 807/xinetd
jest ok. Profilaktycznie można zrestartować maszynę i sprawdzić, czy wszystko działa tak jak potrzeba.
[root@localhost ~]# service nrpe start
[root@localhost ~]# systemctl status nrpe.service
nrpe.service - NRPE
Loaded: loaded (/usr/lib/systemd/system/nrpe.service; enabled)
Active: active (running) since Tue 2014-10-21 08:02:23 CEST; 1 day 1h ago
Main PID: 31220 (nrpe)
CGroup: /system.slice/nrpe.service
└─31220 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
Oct 21 08:02:22 localhost.localdomain nrpe[31220]: Starting up daemon
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Warning: Could not set effective GID=997
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Warning: Unable to change supplementary groups using initgroups()
Oct 21 08:02:23 dlocalhost.localdomain nrpe[31220]: Warning: Could not set effective UID=998
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Server listening on xxx.xxx.xxx.xxx port 5666.
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Listening for connections on port 0
Oct 21 08:02:23 localhost.localdomain nrpe[31220]: Allowing connections from: xxx.xxx.xxx.xxx
Oct 21 08:02:23 localhost.localdomain systemd[1]: Started NRPE.
Wychodzi na to, że NRPE nie może sobie poradzić, z uruchomieniem z innym użytkownikiem niż nrpe. Odpalmy wtakim razie nrpe z poziomu xinetd:
yum install xinetd
cd /etc/xintetd.d
Tworzymy plik startowy dla nrpe:
vi nrpe
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/sbin/nrpe
server_args = -c /etc/nagios/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 xxx.xxx.xxx.xxx
}
Musimy dodać jeszcze odpowiedni wpis w /etc/services, żeby xinetd odpowiedniouruchomił
vi /etc/services
Szukamy takiej linijki:
###UNAUTHORIZED USE: Port 5666 used by SAIC NRPE############
Jeśli jest to pod nią wpisujemy (jak nie to wpisujemy na wysokości, gdzie nasz port powinien się znaleźć):
nrpe<--><------>5666/tcp<------><------>#NRPE
Wyłączamy klasyczne startowanie nrpe i uruchamiamy je z poziomu xinetd, oraz automatyczny jej start:
chkconfig nrpe off
chkconfig xinetd on
service xinetd start
Sprawdzamy czy usługa odpowiednio wstała:
netstat -tulpn
jak pokazuje się wpis:
tcp6 0 0 :::5666 :::* LISTEN 807/xinetd
jest ok. Profilaktycznie można zrestartować maszynę i sprawdzić, czy wszystko działa tak jak potrzeba.
środa, 1 października 2014
Monitoring macierzy LSI MEGARAID SAS w Nagiosie.
Wracamy do kwestii macierzy RAID, teraz zajmiemy się rozwiązaniem firmy LSI MEGARAID SAS. Mamy już wcześniej zainstalowane MegaCli i chcemy teraz na bieżąco monitorować stan dysków w Nagiosie. Mega Cli może my poprać, ze strony: http://www.thomas-krenn.com/de/download.html I instalujemy. Instalacje jest prosta, więc nie będę opisywał tu tej procedury.
Pierwsze próby podpięcia wtyczki check_megaraid_sas zakończyły się tym, że po stronie serwera monitorowanego dostajemy prawidłowy output, lecz po stronie serwera nagiosa wynik się nie pokrywa (pokazuje, że jest ok, ale nie pokazuje stanu kontrolerów). Winne temu jest sudo. Musimy zmodyfikować odpowiednio plik sudoers.
Dodajemodpowiednie wpisy do sudo (pamiętajmy o sprawdzeniu ścieżki do MegaCli/MegaCli64):
visudo
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nagios ALL=(ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64
Następnie instalujemy plugin do nagiosa z:
wget http://www.techno-obscura.com/~delgado/code/check_megaraid_sas
Żeby prawidłowo nam zadziałał musimy zmodyfikować w nim linię:
my $megaclibin = '/opt/MegaRAID/MegaCli/MegaCli64'; # the full path to your MegaCli binary
na taką jak powyżej, lub inną ścieżkę w zależności, gdzie znajduje się plik MegaCli64/Megacli.
Wgrywamy go do katalogu pluginów Nagios`a /usr/lib/nagios/plugins/ lub /usr/lib64/nagios/plugins (w zależności od architektury)
W pliku /etc/nagios/nrpe.cfg na kliencie dodajemy (pamiętajmy, żeby nazwa użytkownika w tym pliku zgadzała się z nazwą użytkownika w sudoers, no i oczywiście prawidłowa ścieżka do pluginu):
command[check_megaraid_sas]=/usr/lib/nagios/plugins/check_megaraid_sas
Jeśli są pokazywane jakiekolwiek błędy dysków, a nie chcemy, żeby wiecznie wisiały w Nagiosie musimy w poleceniu użyć przełącznika, za pomocą którego je zignorujemy:
Usage: [-s number] [-m number] [-o number]
-s is how many hotspares are attached to the controller
-m is the number of media errors to ignore
-p is the predictive error count to ignore
-o is the number of other disk errors to ignore
Teraz po stronie serwera Nagios`a tworzymy/modyfikujemy plik konfiguracyjny hosta i zamieszczamy w nim wpis::
define service{
use graphed-service ; Name of service template to use
host_name Nasza_Nazwa
service_description Raid Status
check_command check_nrpe!5666!check_megaraid_sas
}
Może się jeszcze po stronie serwera nagios pojawić taka niespodzianka:
NRPE: Unable to read output
Po sprawdzeniu plików konfiguracyjnych, sudoers i pliku pluiginu i tam jest ok, to problem może tkwić po stronie sellinuxa to polecenie powinno naprawić (jak zwykle zwracamy uwagę na ścieżke do pliku):
restorecon -R -v /usr/lib64/nagios/plugins/check_megaraid_sas
Po tych zabiegach wszytko u mnie wróciło do normy i Nagios prawidłowo odczytuje wyniki z pluginu.
Następnym razem opisze w jaki sposób diagnozować dyski, w których pojawiają się błędy, a także jak rozwiąże jeden przypadek braku chęci współpracy sudo z pluginem.
Pierwsze próby podpięcia wtyczki check_megaraid_sas zakończyły się tym, że po stronie serwera monitorowanego dostajemy prawidłowy output, lecz po stronie serwera nagiosa wynik się nie pokrywa (pokazuje, że jest ok, ale nie pokazuje stanu kontrolerów). Winne temu jest sudo. Musimy zmodyfikować odpowiednio plik sudoers.
Dodajemodpowiednie wpisy do sudo (pamiętajmy o sprawdzeniu ścieżki do MegaCli/MegaCli64):
visudo
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nagios ALL=(ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64
Następnie instalujemy plugin do nagiosa z:
wget http://www.techno-obscura.com/~delgado/code/check_megaraid_sas
Żeby prawidłowo nam zadziałał musimy zmodyfikować w nim linię:
my $megaclibin = '/opt/MegaRAID/MegaCli/MegaCli64'; # the full path to your MegaCli binary
na taką jak powyżej, lub inną ścieżkę w zależności, gdzie znajduje się plik MegaCli64/Megacli.
Wgrywamy go do katalogu pluginów Nagios`a /usr/lib/nagios/plugins/ lub /usr/lib64/nagios/plugins (w zależności od architektury)
W pliku /etc/nagios/nrpe.cfg na kliencie dodajemy (pamiętajmy, żeby nazwa użytkownika w tym pliku zgadzała się z nazwą użytkownika w sudoers, no i oczywiście prawidłowa ścieżka do pluginu):
command[check_megaraid_sas]=/usr/lib/nagios/plugins/check_megaraid_sas
Jeśli są pokazywane jakiekolwiek błędy dysków, a nie chcemy, żeby wiecznie wisiały w Nagiosie musimy w poleceniu użyć przełącznika, za pomocą którego je zignorujemy:
Usage: [-s number] [-m number] [-o number]
-s is how many hotspares are attached to the controller
-m is the number of media errors to ignore
-p is the predictive error count to ignore
-o is the number of other disk errors to ignore
Teraz po stronie serwera Nagios`a tworzymy/modyfikujemy plik konfiguracyjny hosta i zamieszczamy w nim wpis::
define service{
use graphed-service ; Name of service template to use
host_name Nasza_Nazwa
service_description Raid Status
check_command check_nrpe!5666!check_megaraid_sas
}
Może się jeszcze po stronie serwera nagios pojawić taka niespodzianka:
NRPE: Unable to read output
Po sprawdzeniu plików konfiguracyjnych, sudoers i pliku pluiginu i tam jest ok, to problem może tkwić po stronie sellinuxa to polecenie powinno naprawić (jak zwykle zwracamy uwagę na ścieżke do pliku):
restorecon -R -v /usr/lib64/nagios/plugins/check_megaraid_sas
Po tych zabiegach wszytko u mnie wróciło do normy i Nagios prawidłowo odczytuje wyniki z pluginu.
Następnym razem opisze w jaki sposób diagnozować dyski, w których pojawiają się błędy, a także jak rozwiąże jeden przypadek braku chęci współpracy sudo z pluginem.
piątek, 19 września 2014
Apache + Tomcat + Cartyfikaty SSL (+ ew Alfresco) + htaccess = łatwo
Mamy już zainstalowane Alfresco (w tym przypadku wersja 5 Community Edition + system operacyjny CentOS 7), więc nie będę zagłębiał się w szczegóły instalacji i jego wstępnej konfiguracji. Na chwile obecną chcemy to ustawić, żeby wyglądało po ludzku i dodatkowo to zabezpieczyć, oraz nie męczyć się z zawiłościami konfiguracyjnymi certyfikatów i zabezpieczenia katalogów w Tomcat.
W pierwszej kolejności wywalamy zawartość katalogu /opt/alfresco/tomcat/webapps/ROOT i tworzymy tam plik index.jsp o następującej zawartości:
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Page Redirection</title>
</head>
<body>
<center>
<h1>Page Redirection</h1>
</center>
<%
// New location to be redirected
String site = new String("https://alfresco.domain.com");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);.
%>
</body>
</html>
Co przekieruje nam każde zapytanie z głównego katalogu Tomcata na wskazaną przez nas lokalizację.
Następnie instalujemy apache i konfigurujemy https i mod_jk.so, które pełni role łącznika pomiędzy Apachem a Tomcatem
To instalujemy z paczki:
yum install httpd httpd-devel mod_ssl gcc
A to musimy teraz ściągnąć i skompilować - tomcat connectors:
wget http://ftp.ps.pl/pub/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz
rozpakowywujemy:
tar xzf tomcat-connectors-1.2.40-src.tar.gz
cd tomcat-connectors-1.2.40-src
cd native
i kompilujemy (warto sprawdzic wcześniej lokalizacje pliku apxs):
./configure --with-apxs=/usr/bin/apxs
make
cd apache-2.0
Kopiujemy skompilowany moduł do odpowiedniej lokalizacji:
cp mod_jk.so /etc/httpd/modules/
Następnie konfigurujemy Apache tak, żeby nasza instalacja Alfresco działała w bezpiecznym połączeniu. Musimy dodać następujące wpisy do /etc/htps/conf.d/ssl.conf:
LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /opt/alfresco/tomcat/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
LoadModule auth_basic_module modules/mod_auth_basic.so
<VirtualHost alfresco.domain.com:443>
ServerName alfresco.domain.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/certyfikat.cert
SSLCertificateKeyFile /etc/httpd/ssl/certyfikat.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize -ForwardDirectories
JkMount /* tomcat
JkMount / tomcat
<Location "/share">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/share/users
Require user some_user
</Location>.
JkMount /share/* tomcat
JkMount /share tomcat
<Location "/alfresco">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/alfresco/users
Require user some_user
</Location>.
JkMount /alfresco tomcat
JkMount /alfresco/* tomcat
</VirtualHost>
Tworzymy plik workera dla Tomcata(trzeba zwrócić uwagę na port czy wpisujemy odpowiedni):
/opt/alfresco/tomcat.conf/worker.properties:
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
Tworzymy pliki users w lokalizacjach:
/opt/alfresco/tomcat/webapps/share/
/opt/alfresco/tomcat/webapps/alfresco/
A jego zawartość powinna wyglądać:
some_user:haslo_htpasswd
Restartujemy Apache:
service https restart
Teraz za pomocą ulubionej przeglądarki sprawdzamy, czy nasza konfiguracja działa tak jak potrzeba i jak chcieliśmy. W ten sposób mamy działającego Tomcat`a na warunkach Apache. Możemy teraz np. dodatkowo ustawić firewalla i przepuścić ruch tylko dla portów 80 i 443 i całkowicie odciąć od świata porty Tomcat`a.
W pierwszej kolejności wywalamy zawartość katalogu /opt/alfresco/tomcat/webapps/ROOT i tworzymy tam plik index.jsp o następującej zawartości:
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Page Redirection</title>
</head>
<body>
<center>
<h1>Page Redirection</h1>
</center>
<%
// New location to be redirected
String site = new String("https://alfresco.domain.com");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);.
%>
</body>
</html>
Co przekieruje nam każde zapytanie z głównego katalogu Tomcata na wskazaną przez nas lokalizację.
Następnie instalujemy apache i konfigurujemy https i mod_jk.so, które pełni role łącznika pomiędzy Apachem a Tomcatem
To instalujemy z paczki:
yum install httpd httpd-devel mod_ssl gcc
A to musimy teraz ściągnąć i skompilować - tomcat connectors:
wget http://ftp.ps.pl/pub/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz
rozpakowywujemy:
tar xzf tomcat-connectors-1.2.40-src.tar.gz
cd tomcat-connectors-1.2.40-src
cd native
i kompilujemy (warto sprawdzic wcześniej lokalizacje pliku apxs):
./configure --with-apxs=/usr/bin/apxs
make
cd apache-2.0
Kopiujemy skompilowany moduł do odpowiedniej lokalizacji:
cp mod_jk.so /etc/httpd/modules/
Następnie konfigurujemy Apache tak, żeby nasza instalacja Alfresco działała w bezpiecznym połączeniu. Musimy dodać następujące wpisy do /etc/htps/conf.d/ssl.conf:
LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /opt/alfresco/tomcat/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
LoadModule auth_basic_module modules/mod_auth_basic.so
<VirtualHost alfresco.domain.com:443>
ServerName alfresco.domain.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/certyfikat.cert
SSLCertificateKeyFile /etc/httpd/ssl/certyfikat.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize -ForwardDirectories
JkMount /* tomcat
JkMount / tomcat
<Location "/share">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/share/users
Require user some_user
</Location>.
JkMount /share/* tomcat
JkMount /share tomcat
<Location "/alfresco">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/alfresco/users
Require user some_user
</Location>.
JkMount /alfresco tomcat
JkMount /alfresco/* tomcat
</VirtualHost>
Tworzymy plik workera dla Tomcata(trzeba zwrócić uwagę na port czy wpisujemy odpowiedni):
/opt/alfresco/tomcat.conf/worker.properties:
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
Tworzymy pliki users w lokalizacjach:
/opt/alfresco/tomcat/webapps/share/
/opt/alfresco/tomcat/webapps/alfresco/
A jego zawartość powinna wyglądać:
some_user:haslo_htpasswd
Restartujemy Apache:
service https restart
Teraz za pomocą ulubionej przeglądarki sprawdzamy, czy nasza konfiguracja działa tak jak potrzeba i jak chcieliśmy. W ten sposób mamy działającego Tomcat`a na warunkach Apache. Możemy teraz np. dodatkowo ustawić firewalla i przepuścić ruch tylko dla portów 80 i 443 i całkowicie odciąć od świata porty Tomcat`a.
piątek, 12 września 2014
Problem z sshd - no such device
Siedzimy sobie grzebiemy w pliku sshd_config np zezwalamy nowemu userowi korzystać z dobrodziejstw logowania się przez demona sshd. Zapisujemy plik wydajemy polecenie:
/etc/init.d/sshd restart
Demon niby wstaje , ale ......... ssh nie działa. Patrzymy w logi a tam widzimy:
server sshd[11115]: fatal: daemon() failed: No such device
Sprawdzamy plik konfiguracyjny, cuda nie widy ...... ciągle nic.
Po małym rekonesansie w sieci znajdujemy winowajcę. Jest nim /dev/null.
Zeby naprawic problem wystarczy go skasowac i na nowo wygenerować:
rm /dev/null
mknod /dev/null c 1 3
sprawdżmy jeszcze czy plik ma odpowiednie prawa:
ls -l /dev/null
crw-rw-rw-. 1 root root 1, 3 Sep 11 13:54 /dev/null
to jest ok. Następnie restartujemy demona SSHD.
/etc/init.d/ssdh restart
Sprawdzamy czy proces sie odpalił np:
ps auxf | grep sshd
I jeśli mamy go na liście to problem z głowy.
/etc/init.d/sshd restart
Demon niby wstaje , ale ......... ssh nie działa. Patrzymy w logi a tam widzimy:
server sshd[11115]: fatal: daemon() failed: No such device
Sprawdzamy plik konfiguracyjny, cuda nie widy ...... ciągle nic.
Po małym rekonesansie w sieci znajdujemy winowajcę. Jest nim /dev/null.
Zeby naprawic problem wystarczy go skasowac i na nowo wygenerować:
rm /dev/null
mknod /dev/null c 1 3
sprawdżmy jeszcze czy plik ma odpowiednie prawa:
ls -l /dev/null
crw-rw-rw-. 1 root root 1, 3 Sep 11 13:54 /dev/null
to jest ok. Następnie restartujemy demona SSHD.
/etc/init.d/ssdh restart
Sprawdzamy czy proces sie odpalił np:
ps auxf | grep sshd
I jeśli mamy go na liście to problem z głowy.
poniedziałek, 9 czerwca 2014
Fail2ban i exim czyli jak zaprzęgnąć kombajn do walki ze spamerami.
Na przykładzie Centos.
Spamerzy to zmora każdego admina trzeba sprawdzać co jakiś czas czy nowe adresy się nie pojawiły i je blokować, co na dłuższą metę jest upierdliwe. Postanowiłem zaprząc do tego zadania fail2ban (posiada on już domyślnie wiele opcji więc polecam pokombinować z innymi - tu opisze tylko pod exima konfigurację). Fail2ban ma za zadanie przeglądać logi i na ich podstawie zablokować na określony czas za pomocą iptables delikwenta który chce na siłę zrobić coś, czego akurat nie chcemy, żeby robił.
W pierwszej kolejności instalujemy fail2ban
yum install fail2ban
następnie go konfigurujemy /etc/faul2ban/jail.conf:
[DEFAULT]
ignoreip = 127.0.0.1/8 # adresacja ip do wykluczenia z reguł
bantime = 600 # jak długo ma trwać
findtime = 600 # czas w którym muszą nastąpić błędne logowania określone w Maxretry w ilości bantime, żeby reguła się załączyła
maxretry = 20 # ilośc prób do zabanowania
backend = auto
[smtpauth-iptables] #Reguła dla exim
enabled = true
filter = smtpauth
action = iptables[name=SMTP, port=smtp, protocol=tcp]
logpath = /var/log/exim/main.log
maxretry = 3
Następnie musimy stworzyć regułę smtpauth
nano /etc/fail2ban/filterd/smtpauth.conf:
# Fail2Ban configuration file
#
# Author: Christoph Haas
# Modified by: Cyril Jaquier
#
# $Revision: 510 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
failregex = \[<HOST>\]: 535 Incorrect authentication data
Jak już mamy to skonfigurowane uruchamiamy fail2ban:
service fail2ban start
jeśli wszystko jest ok (trzeba sobie wyeksperymentować optymalne ustawienia), to uruchamiamy fail2ban na stałe:
chkconfig fail2ban on
Następnie obserwujemy sobie działanie programu w celu analizy konfiguracji:
tail -f /var/log/fail2ban.conf
2014-06-09 08:19:11,343 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.117.212.81
2014-06-09 08:19:12,355 fail2ban.actions: WARNING [smtpauth-iptables] Ban 178.127.149.245
2014-06-09 08:19:35,374 fail2ban.actions: WARNING [smtpauth-iptables] Ban 112.163.8.4
2014-06-09 08:19:47,389 fail2ban.actions: WARNING [smtpauth-iptables] Ban 110.175.241.141
2014-06-09 08:19:49,417 fail2ban.actions: WARNING [smtpauth-iptables] Ban 122.163.1.132
2014-06-09 08:19:52,436 fail2ban.actions: WARNING [smtpauth-iptables] Ban 36.238.173.119
2014-06-09 08:20:07,454 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.165.209.9
2014-06-09 08:20:10,470 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.226.38.61
2014-06-09 08:20:14,485 fail2ban.actions: WARNING [smtpauth-iptables] Ban 115.242.158.139
2014-06-09 08:20:14,504 fail2ban.actions: WARNING [smtpauth-iptables] Ban 118.165.207.142
2014-06-09 08:20:59,531 fail2ban.actions: WARNING [smtpauth-iptables] Unban 202.72.245.42
2014-06-09 08:21:53,558 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.172.20.62
2014-06-09 08:21:55,584 fail2ban.actions: WARNING [smtpauth-iptables] Unban 188.115.204.36
2014-06-09 08:21:55,596 fail2ban.actions: WARNING [smtpauth-iptables] Unban 115.74.75.131
2014-06-09 08:22:00,605 fail2ban.actions: WARNING [smtpauth-iptables] 92.47.46.222 already banned
2014-06-09 08:22:12,608 fail2ban.actions: WARNING [smtpauth-iptables] Ban 151.74.66.254
2014-06-09 08:22:24,624 fail2ban.actions: WARNING [smtpauth-iptables] Unban 113.186.89.228
2014-06-09 08:22:25,634 fail2ban.actions: WARNING [smtpauth-iptables] Ban 46.62.246.30
2014-06-09 08:22:25,645 fail2ban.actions: WARNING [smtpauth-iptables] Ban 222.254.10.105
2014-06-09 08:22:36,658 fail2ban.actions: WARNING [smtpauth-iptables] Ban 59.176.64.47
2014-06-09 08:22:42,671 fail2ban.actions: WARNING [smtpauth-iptables] Ban 201.255.40.43
2014-06-09 08:22:53,688 fail2ban.actions: WARNING [smtpauth-iptables] Ban 87.236.233.68
2014-06-09 08:22:58,702 fail2ban.actions: WARNING [smtpauth-iptables] Unban 81.21.97.199
2014-06-09 08:23:04,721 fail2ban.actions: WARNING [smtpauth-iptables] Ban 120.61.190.243
2014-06-09 08:23:11,737 fail2ban.actions: WARNING [smtpauth-iptables] Unban 182.68.65.167
2014-06-09 08:23:13,754 fail2ban.actions: WARNING [smtpauth-iptables] Ban 171.255.47.104
2014-06-09 08:23:33,772 fail2ban.actions: WARNING [smtpauth-iptables] Ban 183.81.45.125
2014-06-09 08:23:36,788 fail2ban.actions: WARNING [smtpauth-iptables] Ban 117.0.161.53
2014-06-09 08:23:44,812 fail2ban.actions: WARNING [smtpauth-iptables] Unban 123.21.192.65
2014-06-09 08:23:47,836 fail2ban.actions: WARNING [smtpauth-iptables] Unban 14.163.236.24
2014-06-09 08:24:09,856 fail2ban.actions: WARNING [smtpauth-iptables] Ban 181.66.156.21
Jeśli wszystko działa tak jak powinno to mamy święty spokój i "ajzatyckimi" spamerami.
Powodzenia.
Spamerzy to zmora każdego admina trzeba sprawdzać co jakiś czas czy nowe adresy się nie pojawiły i je blokować, co na dłuższą metę jest upierdliwe. Postanowiłem zaprząc do tego zadania fail2ban (posiada on już domyślnie wiele opcji więc polecam pokombinować z innymi - tu opisze tylko pod exima konfigurację). Fail2ban ma za zadanie przeglądać logi i na ich podstawie zablokować na określony czas za pomocą iptables delikwenta który chce na siłę zrobić coś, czego akurat nie chcemy, żeby robił.
W pierwszej kolejności instalujemy fail2ban
yum install fail2ban
następnie go konfigurujemy /etc/faul2ban/jail.conf:
[DEFAULT]
ignoreip = 127.0.0.1/8 # adresacja ip do wykluczenia z reguł
bantime = 600 # jak długo ma trwać
findtime = 600 # czas w którym muszą nastąpić błędne logowania określone w Maxretry w ilości bantime, żeby reguła się załączyła
maxretry = 20 # ilośc prób do zabanowania
backend = auto
[smtpauth-iptables] #Reguła dla exim
enabled = true
filter = smtpauth
action = iptables[name=SMTP, port=smtp, protocol=tcp]
logpath = /var/log/exim/main.log
maxretry = 3
Następnie musimy stworzyć regułę smtpauth
nano /etc/fail2ban/filterd/smtpauth.conf:
# Fail2Ban configuration file
#
# Author: Christoph Haas
# Modified by: Cyril Jaquier
#
# $Revision: 510 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
failregex = \[<HOST>\]: 535 Incorrect authentication data
Jak już mamy to skonfigurowane uruchamiamy fail2ban:
service fail2ban start
jeśli wszystko jest ok (trzeba sobie wyeksperymentować optymalne ustawienia), to uruchamiamy fail2ban na stałe:
chkconfig fail2ban on
Następnie obserwujemy sobie działanie programu w celu analizy konfiguracji:
tail -f /var/log/fail2ban.conf
2014-06-09 08:19:11,343 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.117.212.81
2014-06-09 08:19:12,355 fail2ban.actions: WARNING [smtpauth-iptables] Ban 178.127.149.245
2014-06-09 08:19:35,374 fail2ban.actions: WARNING [smtpauth-iptables] Ban 112.163.8.4
2014-06-09 08:19:47,389 fail2ban.actions: WARNING [smtpauth-iptables] Ban 110.175.241.141
2014-06-09 08:19:49,417 fail2ban.actions: WARNING [smtpauth-iptables] Ban 122.163.1.132
2014-06-09 08:19:52,436 fail2ban.actions: WARNING [smtpauth-iptables] Ban 36.238.173.119
2014-06-09 08:20:07,454 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.165.209.9
2014-06-09 08:20:10,470 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.226.38.61
2014-06-09 08:20:14,485 fail2ban.actions: WARNING [smtpauth-iptables] Ban 115.242.158.139
2014-06-09 08:20:14,504 fail2ban.actions: WARNING [smtpauth-iptables] Ban 118.165.207.142
2014-06-09 08:20:59,531 fail2ban.actions: WARNING [smtpauth-iptables] Unban 202.72.245.42
2014-06-09 08:21:53,558 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.172.20.62
2014-06-09 08:21:55,584 fail2ban.actions: WARNING [smtpauth-iptables] Unban 188.115.204.36
2014-06-09 08:21:55,596 fail2ban.actions: WARNING [smtpauth-iptables] Unban 115.74.75.131
2014-06-09 08:22:00,605 fail2ban.actions: WARNING [smtpauth-iptables] 92.47.46.222 already banned
2014-06-09 08:22:12,608 fail2ban.actions: WARNING [smtpauth-iptables] Ban 151.74.66.254
2014-06-09 08:22:24,624 fail2ban.actions: WARNING [smtpauth-iptables] Unban 113.186.89.228
2014-06-09 08:22:25,634 fail2ban.actions: WARNING [smtpauth-iptables] Ban 46.62.246.30
2014-06-09 08:22:25,645 fail2ban.actions: WARNING [smtpauth-iptables] Ban 222.254.10.105
2014-06-09 08:22:36,658 fail2ban.actions: WARNING [smtpauth-iptables] Ban 59.176.64.47
2014-06-09 08:22:42,671 fail2ban.actions: WARNING [smtpauth-iptables] Ban 201.255.40.43
2014-06-09 08:22:53,688 fail2ban.actions: WARNING [smtpauth-iptables] Ban 87.236.233.68
2014-06-09 08:22:58,702 fail2ban.actions: WARNING [smtpauth-iptables] Unban 81.21.97.199
2014-06-09 08:23:04,721 fail2ban.actions: WARNING [smtpauth-iptables] Ban 120.61.190.243
2014-06-09 08:23:11,737 fail2ban.actions: WARNING [smtpauth-iptables] Unban 182.68.65.167
2014-06-09 08:23:13,754 fail2ban.actions: WARNING [smtpauth-iptables] Ban 171.255.47.104
2014-06-09 08:23:33,772 fail2ban.actions: WARNING [smtpauth-iptables] Ban 183.81.45.125
2014-06-09 08:23:36,788 fail2ban.actions: WARNING [smtpauth-iptables] Ban 117.0.161.53
2014-06-09 08:23:44,812 fail2ban.actions: WARNING [smtpauth-iptables] Unban 123.21.192.65
2014-06-09 08:23:47,836 fail2ban.actions: WARNING [smtpauth-iptables] Unban 14.163.236.24
2014-06-09 08:24:09,856 fail2ban.actions: WARNING [smtpauth-iptables] Ban 181.66.156.21
Jeśli wszystko działa tak jak powinno to mamy święty spokój i "ajzatyckimi" spamerami.
Powodzenia.
środa, 28 listopada 2012
Jak rozpakować plik img z clockworkmod`a stworzony podczas backupu systemu Android
Przezornie przed instalacją nowego romu (CM, MIUI, czy jakiś inny) za pomocą clockworkmod zrobiliśmy sobie pełen backup systemu, backup niektórych aplikacji pewnie też, ale załóżmy, że, zapomnieliśmy zbackupować sobie jeden program, a dokładniej jego dane, itp. System nowy wgrany backupem jak go nadpiszemy nie wiadomo jak to wyjdzie trzeba się dobrać do pliku img zapisanego na karcie pamięci w katalogu /clockworkmod/backup/katalog_z_data/ tu znajdują się pliki img z obrazem naszego starego systemu. Nas interesuje w tym przypadku plik: data.img. W pierwszej kolejności musimy ściągnąć program, który nam go rozpakuje. Program do pobrania TUTAJ, trzeba także pobrać plik cygwin1.dll i umieścić go
w katalogu C:\Windows\System32 do pobrania TUTAJ (najpierw trzeba wypakować plik dll z archiwum). Tworzymy teraz folder na komputerze, w którym umieszczamy plik programu (unyaffs.exe) i nasz plik img. Uruchomiamy wiersz poleceń (Start -> Uruchom -> cmd) i przechodzimy do katalogu z programem i naszym plikem img: "cd c:\ścieżka_do_programu\". Następnie wydajemy polecenie "unyaffs.exe data.img" i czekamy, aż program przestanie działać. W katalogu w którym mieliśmy plik img i działał program znajdziemy jego rozpakowaną zawartość. Teraz wystarczy znaleźć interesujące nas pliki i wgrać na partycję systemową Androida w odpowiednie miejsca. Musimy pamiętać, że do wgrania czegokolwiek na partycje systemową potrzebne są nam prawa ROOT`a, no i oczywiście trzeba pamiętać, żeby robić to na spokojnie, bo inaczej skutki mogą być takie, że trzeba będzie cały system od nowa wgrywać.
w katalogu C:\Windows\System32 do pobrania TUTAJ (najpierw trzeba wypakować plik dll z archiwum). Tworzymy teraz folder na komputerze, w którym umieszczamy plik programu (unyaffs.exe) i nasz plik img. Uruchomiamy wiersz poleceń (Start -> Uruchom -> cmd) i przechodzimy do katalogu z programem i naszym plikem img: "cd c:\ścieżka_do_programu\". Następnie wydajemy polecenie "unyaffs.exe data.img" i czekamy, aż program przestanie działać. W katalogu w którym mieliśmy plik img i działał program znajdziemy jego rozpakowaną zawartość. Teraz wystarczy znaleźć interesujące nas pliki i wgrać na partycję systemową Androida w odpowiednie miejsca. Musimy pamiętać, że do wgrania czegokolwiek na partycje systemową potrzebne są nam prawa ROOT`a, no i oczywiście trzeba pamiętać, żeby robić to na spokojnie, bo inaczej skutki mogą być takie, że trzeba będzie cały system od nowa wgrywać.
wtorek, 27 listopada 2012
Ati2Dvag, czyli jak się pozbyć niebieskiego ekranu bez marnowania tygodni z serwisem.
Nowy (no prawie nowy) laptop system postawiony (Windows XP) od nowa instalujemy sterowniki i niezbędne oprogramowanie, poprawki do systemu. Reset ....... BSOD!!! Ati2Dvag się pojawia jako przyczyna naszego problemu. Zdarzyło mi się to wielokrotnie na laptopach firmy HP. Serwis po tygodniach wysyłania logów, zrzutów pamięci itp. nie był w stanie pomóc, dlatego dojście do winowajcy i rozwiązanie problemu nie było takie proste. Winowajcą był konflikt sterowników graficznych z oprogramowaniem antywirusowym. Sterownik sam w sobie pracuje bez zarzutu, a np. z oprogramowaniem Symantec Endpoint Protection już nie i wywala niebieski ekran przy każdorazowym uruchomieniu komputera. Rozwiązania są w sumie dwa. Pierwsze zmiana klienta antywirusowego na inny, a drugie to po prostu instalacja najnowszych sterowników graficznych i to na pewno nie ze strony producenta komputera/laptopa, lecz ze strony producenta układu graficznego. Na chwilę obecną wyleczalność problemu (problem ten dotyczył jak na razie 3 modeli laptopów HP - czyli kilku/kilkunastu sztuk) za pomocą odpowiednich sterowników wyniosła 100%. Serwis HP nie był wstanie dojść do przyczyny problemu, a na wieść o konflikcie umył ręce jako, że problem dotyczył SYMANTEC`a.
środa, 17 października 2012
Jak wyeksportować nie exportowalnie certyfikaty z Windowsa XP do importu w Windowsie 7
Czasem zdarza się potrzeba zrobienia rzeczy nie do zrobienia. Czyli exportu certyfikatu użytkownika w Windowsie XP, którego system nie pozwala zrobić. Z pomocą przychodzi nam program mimikatz 1.0 do pobrania tutaj: http://blog.gentilkiwi.com/mimikatz. Pobieramy program, następnie wyłączamy oprogramowanie antywirusowe. Dodajemy usera do grupy administratorów lokalnych i logujemy się na jego koncie (w systemie Windows XP). Teraz trzeba rozpakować pobrany program. W zależności z jakiej architektury korzystamy wybieramy katalog "x64", lub "win32" i uruchamiamy plik "mimikatz.exe". Teraz wystarczą dwa polecenia, żeby program wyeksportował nam zabezpieczone certyfikaty. W pierwszej kolejności wykonujemy komendę: crypto::patchcapi, która jest odpowiedzialna za to, żeby program zapisał certyfikaty, a następnie komenda: crypto::exportCertificates, która wydłubie je nam z systemu. Plików certyfikatu szukamy w katalogu, z którego uruchomiliśmy program. Wystarczy je skopiować np. na pendrive i zaimportować z poziomu danego usera (tego samego co w Windowsie XP) do systemu (Windows 7). Przy imporcie certyfikatu będzie się system pytał o hasło, wystarczy wpisać: mimikatz, i import zostanie dokończony.
piątek, 20 lipca 2012
Windows 7 problem z kopiowaniem większych plików przez sieć lokalną
Może się zdarzyć, że próbując skopiować sobie plik z udostępnionego katalogu w sieci komputer odmówi wam operacji takim oto komunikatem:
Problem został opisany dokładnie na stronie Microsoftu: http://support.microsoft.com/kb/900900/pl.
Ja poniżej opisz w jaki sposób szybko pozbyć się problemu i zwiększyć ograniczenie pliku do 2,5 GB.
1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz regedit i kliknij przycisk OK.
2. Zlokalizuj i kliknij następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
3. W prawym okienku kliknij prawym przyciskiem myszy wartość FileSizeLimitInBytes , a następnie kliknij przycisk Modyfikuj.
Jeśli wartość FileSizeLimitInBytes jest niewidoczny, kliknij prawym przyciskiem myszy pusty obszar w prawym okienku, kliknij przycisk Nowy, kliknij polecenie Wartość DWORD, wpisz FileSizeLimitInBytesi kliknij przycisk OK.
4. W polu Edytowanie wartości DWORD , kliknij opcję dziesiętny . W polu Dane wartości wpisz wartość, która jest większy niż rozmiar pliku, który chcesz pobrać. Kliknij przycisk OK.
Uwaga Domyślna wartość limitu rozmiaru pliku jest 50000000 bajtów.
Zamknij Edytor rejestru. Uruchom ponownie komputer.
Tak ja pisze powyżej domyślna wartość po przeliczeniu na MB daje nam 50MB maksymalnej wielkości pliku. Żeby zwiększyć sobie rozmiar do założonych wcześniej 2,5 GB (w sam raz, żeby przegrać sobie plik pst z Outlooka po sieci) to musimy przeliczyć sobie:
Problem został opisany dokładnie na stronie Microsoftu: http://support.microsoft.com/kb/900900/pl.
Ja poniżej opisz w jaki sposób szybko pozbyć się problemu i zwiększyć ograniczenie pliku do 2,5 GB.
1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz regedit i kliknij przycisk OK.
2. Zlokalizuj i kliknij następujący podklucz rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
3. W prawym okienku kliknij prawym przyciskiem myszy wartość FileSizeLimitInBytes , a następnie kliknij przycisk Modyfikuj.
Jeśli wartość FileSizeLimitInBytes jest niewidoczny, kliknij prawym przyciskiem myszy pusty obszar w prawym okienku, kliknij przycisk Nowy, kliknij polecenie Wartość DWORD, wpisz FileSizeLimitInBytesi kliknij przycisk OK.
4. W polu Edytowanie wartości DWORD , kliknij opcję dziesiętny . W polu Dane wartości wpisz wartość, która jest większy niż rozmiar pliku, który chcesz pobrać. Kliknij przycisk OK.
Uwaga Domyślna wartość limitu rozmiaru pliku jest 50000000 bajtów.
Zamknij Edytor rejestru. Uruchom ponownie komputer.
Tak ja pisze powyżej domyślna wartość po przeliczeniu na MB daje nam 50MB maksymalnej wielkości pliku. Żeby zwiększyć sobie rozmiar do założonych wcześniej 2,5 GB (w sam raz, żeby przegrać sobie plik pst z Outlooka po sieci) to musimy przeliczyć sobie:
"2,5 GB = 2684354560 bajtów = A0000000".
Jeśli interesuje nas inny zakres wielkości pliku to korzystając z przelicznika on line przeliczamy sobie dana wartość na bajty, a później za pomocą kalkulatora systemowego (widok naukowy) przeliczamy Bin na Hex.
I wprowadzamy zwróconą wartość do rejestru. Reset komputera i można kopiować większe pliki.czwartek, 28 czerwca 2012
Pobieranie aplikacji z marketu na dysk komputera w postaci pliku.
Android Market/Sklep Play to taki twór, który czasem twierdzi, że dana aplikacja nie może działać na naszym telefonie/tablecie pomimo, że są pewne szanse, że jednak zadziała. Co wtedy? Wtedy bierzemy urządzenie, które ma interesującą nas aplikacje w markecie.
Potrzebna będzie nam przeglądarka CHROME i dodatek APK DOWNLOADER. Za pomocą przeglądarki Chrome wchodzimy na stronę: http://apps.evozi.com/apk-downloader/ i instalujemy dodatek. Po instalacji pojawi się nam ekran proszący o parametry do Sklepu Play:
Musimy tu podać nazwę konta powiązanego z marketem i hasło no i Android Device ID. Żeby uzyskać nasze ID wystarczy z marketu zainstalować sobie aplikacje Device ID https://play.google.com/store/apps/details?id=com.redphx.deviceid&hl=pl po uruchomieniu której wyświetli się nam 16 znakowe ID i adres e-mail przypisany do telefonu/marketu. Wypełniamy te parametry i możemy ściągać pliki z marketu. Dla przykładu posłużymy się darmową nawigacją na Androida. Wchodzimy na stronę: https://play.google.com/store/apps/details?id=com.mapfactor.navigator. I klikamy na rysunek robota.
Otworzy się nam strona z takim komunikatem:
I rozpocznie się ściąganie pliku apk. Wystarczy później ten plik umieścić na karcie telefonu interesującego nas urządzenia (należy pamiętać, żeby w ustawieniach mieć zaznaczoną w zakładce aplikacje opcje pozwalającą na instalowanie aplikacji z nieznanych źródeł). I możemy się wtedy cieszyć aplikacjami, które niby nie są przeznaczone dla naszych urządzeń.
Potrzebna będzie nam przeglądarka CHROME i dodatek APK DOWNLOADER. Za pomocą przeglądarki Chrome wchodzimy na stronę: http://apps.evozi.com/apk-downloader/ i instalujemy dodatek. Po instalacji pojawi się nam ekran proszący o parametry do Sklepu Play:
Musimy tu podać nazwę konta powiązanego z marketem i hasło no i Android Device ID. Żeby uzyskać nasze ID wystarczy z marketu zainstalować sobie aplikacje Device ID https://play.google.com/store/apps/details?id=com.redphx.deviceid&hl=pl po uruchomieniu której wyświetli się nam 16 znakowe ID i adres e-mail przypisany do telefonu/marketu. Wypełniamy te parametry i możemy ściągać pliki z marketu. Dla przykładu posłużymy się darmową nawigacją na Androida. Wchodzimy na stronę: https://play.google.com/store/apps/details?id=com.mapfactor.navigator. I klikamy na rysunek robota.
Otworzy się nam strona z takim komunikatem:
I rozpocznie się ściąganie pliku apk. Wystarczy później ten plik umieścić na karcie telefonu interesującego nas urządzenia (należy pamiętać, żeby w ustawieniach mieć zaznaczoną w zakładce aplikacje opcje pozwalającą na instalowanie aplikacji z nieznanych źródeł). I możemy się wtedy cieszyć aplikacjami, które niby nie są przeznaczone dla naszych urządzeń.
poniedziałek, 11 czerwca 2012
Zmiana w BIOS nr seryjnego i product number w komputerach/laptopach HP
Jako, że czasem się zdarza, że pada coś tak istotnego jak płyta główna i trzeba ją wymienić, a takie rzeczy jak S/N i P/N są ważne z punktu ew dalszej gwarancji. Serwisanci są tez rożni i z różnym zasobem wiedzy. Sam ostatnio byłem świadkiem jak pan próbował te ustawienia zmienić i pomimo wskazówek wcześniej otrzymanych nie ogarnął tematu. Ten sposób powinien zadziałać na części komputerów/laptopów firmy HP. Osobiście przeprowadzałem tą operacje na komputerze serii HP Compaq 8000. Więc od początku. Uruchamiamy komputer i wciskamy klawisz F10 w celu wejścia do BIOS. Wybieramy język i wybieramy zakładkę "Security"
Interesować będzie nas w tym przypadku pozycja "System IDs", ale zanim wejdziemy w tą funkcję wciskamy najpierw kombinacje klawiszy "Ctrl+A", a następnie wchodzimy we wspomnianą funkcje.
Pierwsza pozycja "Enter Chassis Serial #" tam wpisujemy nr seryjny taki jaki powinniśmy mieć (starej płyty głównej), a w pozycji "Enter Product Name" wpisujemy Product Number/Model Number też ze starej płyty głównej. Zatwierdzamy klawiszem F10, wychodzimy z BIOS`u i mamy zmienione parametry.
Interesować będzie nas w tym przypadku pozycja "System IDs", ale zanim wejdziemy w tą funkcję wciskamy najpierw kombinacje klawiszy "Ctrl+A", a następnie wchodzimy we wspomnianą funkcje.
Pierwsza pozycja "Enter Chassis Serial #" tam wpisujemy nr seryjny taki jaki powinniśmy mieć (starej płyty głównej), a w pozycji "Enter Product Name" wpisujemy Product Number/Model Number też ze starej płyty głównej. Zatwierdzamy klawiszem F10, wychodzimy z BIOS`u i mamy zmienione parametry.
piątek, 1 czerwca 2012
Zdalne wyłączenie komputera w sieci LAN z Windowsem.
Pracując w sieci mamy czasem sporo komputerów, a niektóre ze względu na swoją wykonywaną prace czasem nie posiadają klawiatury, myszki i monitora, albo po prostu jesteśmy leniwi i nie chce nam się lecieć na drugi koniec sieci :). Windows ma to do siebie, ze czasem się zawiesza, wtedy nie mamy także dostępu do zdalnego pulpitu, ale może udać się próba zdalnego zresetowania maszyny, bez potrzeby udawania się na miejsce. Z pomoca przychodzi nam linia komend systemu Windows. Musimy posiadać uprawnienia administratora, i wtedy wydajemy polecenie:
shutdown /m \\NAZWA_SERWERA /r /c “Komentarz - przyczyna restartu serwera” /t 01
gdzie /m wskazuje z jaka maszyna będziemy działać, a /t 01 ustalamy czas po jakim nastąpi restart maszyny, /r mówi o tym, że chcemy aby maszyna się "zrestartowała", a /c pozwala na umieszczenie komentarza. Pozostałe parametry to:
-l Wylogowuje (nie można używać z opcją -m)
-s Zamyka komputer
-f Wymusza zamknięcie działających aplikacji bez ostrzeżenia
Pełny opis wszystkich opcji i składni uzyskamy wpisując z linii komend polecenie "shutdown /?"
shutdown /m \\NAZWA_SERWERA /r /c “Komentarz - przyczyna restartu serwera” /t 01
gdzie /m wskazuje z jaka maszyna będziemy działać, a /t 01 ustalamy czas po jakim nastąpi restart maszyny, /r mówi o tym, że chcemy aby maszyna się "zrestartowała", a /c pozwala na umieszczenie komentarza. Pozostałe parametry to:
-l Wylogowuje (nie można używać z opcją -m)
-s Zamyka komputer
-f Wymusza zamknięcie działających aplikacji bez ostrzeżenia
Pełny opis wszystkich opcji i składni uzyskamy wpisując z linii komend polecenie "shutdown /?"
poniedziałek, 7 maja 2012
Usuwanie hasła z pliku pst dla MS OFFICE 2003
Zapomniane hasło do pliku pst jak zwykle jest upierdliwe, ale takie sytuacje się zdarzają. Co dalej? Sciągamy program z tego linku: http://www.slipstick.com/files/pst19upg.zip. W pierwszej kolejności zamykamy Outlooka i zabezpieczony hasłem plik pst kopiujemy sobie w inne miejsce np. na pulpit i będziemy działać na kopii pliku. No to zaczynamy. Uruchamiamy za pomocą Start -> uruchom -> cmd linie komend. Następnie przechodzimy do katalogu, gdzie mamy rozpakowany już program pst19upg i wydajemy polecenie: pst19upg.exe -x filename.pst zostanie wykonana kopia pliku pst do pliku psx, następnie wykonujemy polecenie pst19upg.exe -i filename.psx, co stworzy nam plik bak, który już hasła nie posiada. Możemy się także posiłkować przed i po uruchomieniem pst19upg programem dołączonym do office o nazwie "scanpst.exe" w opcji repair. Program wyszukac można najszybciej za pomocą "wyszukaj pliki i foldery" w systemie Windows. Wystarczy zmienić mu nazwę na pst i skopiować go na swoje miejsce. Jeśli nie zadziała, mamy kopie oryginalnego pliku pst i możemy wtedy próbować innych sposobów. Innych czyli próbie wyłuskania hasła z pliku pst. Do tego pomocny jest program PstPassword do pobrania ze strony: www.nirsoft.net/utils/pst_password.html po ściągnięciu program uruchamiamy i wskazujemy plik pst, program pokaże nam opcjonalne hasła, w moim przypadku Password2 było prawidłowym hasłem do pliku poczty. No i następna osoba uszczęśliwiona.
czwartek, 26 kwietnia 2012
Jak dodać polskie sprawdzanie pisowni w Angielskim MS Office XP
Wreszcie coś co dało trochę do myślenia. Jak zrobić w angielskim Office, żeby po polsku sprawdzało pisownie? Potrzebować będziemy polskiej instalacji Office XP gdzieś, żeby skopiować sobie potrzebne pliki. Z komputera na którym jest zainstalowany Office XP kopiujemy cały katalog:
C:\Program Files\Common Files\Microsoft Shared\Proof na komputer z angielską wersją office (nie zapomnijmy o kopii zapasowej). Następnie na komputerze z angielską wersją uruchamiamy notatnik i wklejamy poniższą zawartość:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSGR_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHY_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSSP_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"=""
@="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\Vendor]
"Informatic"="c:\Program Files\Common Files\Microsoft Shared\Proof\MSPPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTH_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"
i zapisujemy plik jako np. slownik_pl.reg, a następnie go uruchamiamy. Uruchamiamy World`a i wykonuemy następujące kroki: tools - > language -> set language -> zaznaczamy polish. I mamy sprawdzanie pisowni w języku polskim
C:\Program Files\Common Files\Microsoft Shared\Proof na komputer z angielską wersją office (nie zapomnijmy o kopii zapasowej). Następnie na komputerze z angielską wersją uruchamiamy notatnik i wklejamy poniższą zawartość:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSGR_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Grammar\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\1045\\MSGRPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHY_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Hyphenation\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSHYPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSSP_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"=""
@="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSPPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Spelling\Vendor]
"Informatic"="c:\Program Files\Common Files\Microsoft Shared\Proof\MSPPL32.DLL"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045\Normal]
"Engine"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"
"Dictionary"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTH_PL.LEX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\1045\Normal\Clients]
"c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Proofing Tools\Thesaurus\Vendor]
"Informatic"="c:\\Program Files\\Common Files\\Microsoft Shared\\Proof\\MSTHPL32.DLL"
i zapisujemy plik jako np. slownik_pl.reg, a następnie go uruchamiamy. Uruchamiamy World`a i wykonuemy następujące kroki: tools - > language -> set language -> zaznaczamy polish. I mamy sprawdzanie pisowni w języku polskim
Subskrybuj:
Posty (Atom)



















